什麼是 API 金鑰?
API 金鑰是 API 開發人員用於控制其 API 存取的英數字元字串。API 是一種允許兩個軟體模組之間進行資料交換的通訊機制。為您的模組建立 API 後,其他應用程式開發人員即可呼叫您的 API,將您的功能整合至其程式碼中。例如,您可以開發一個模組,將商品清單做為輸入,並傳回商店清單,您可以在這些商店以最低價購買商品。然後,電子商務應用程式可以使用您的 API,為其客戶產生每日雜貨交易清單。做為 API 建立者,您可以使用 API 金鑰來限制和監控您的 API 存取。API 金鑰可識別授權的 API 用量,以便您可以更有效地維護、管理 API 並從中獲利。
API 金鑰有哪些使用案例?
軟體發展人員使用 API 金鑰管理所建立 API 的存取方式。API 金鑰透過多種方式為現代雲端應用程式的開發做出貢獻。
監控 API 用量
API 供應商使用 API 金鑰追蹤用量和管理 API 耗用,特別是對於商業應用程式。這些供應商按照 API 耗用的運算資源向使用者收費。
作為 API 供應商,您可以使用唯一的 API 金鑰限制對 API 服務的存取。透過只允許合法流量通過,可以最佳化 API 的資源利用率和頻寬容量。還可以分析每個金鑰的用量統計資訊,以調整不同計劃的配額。
疑難排解 API 整合
雲端應用程式可能會因為使用的 API 而遇到技術問題。軟體開發人員使用 API 金鑰偵測異常的資料模式,並將 API 流量與各自的供應商進行比對。這樣,他們就可以辨識和隔離阻止應用程式正常運轉的特定 API。
辨識專案
軟體應用程式透過 API 與外部服務交換敏感性資料。API 金鑰充當專案授權機制,用於規範所允許專案的用量。要使用 API,專案必須提供正確的 API 憑證,才能存取抽象的軟體函數。請務必注意,API 金鑰不會對特定使用者進行身分驗證。相反,它們會粗略地辨識與特定金鑰相關的組織。
API 金鑰如何運作?
API 金鑰由隨機產生的字母和數字字元組成。您可以將特定 API 金鑰與特定 API 用戶端建立關聯。由於 API 的使用本質上是一個軟體模組與另一個軟體模組通訊,因此金鑰與想要與 API 通訊的不同軟體模組或應用程式相關聯。
應用程式傳送 API 請求時,工作流程如下所示:
- API 伺服器使用唯一的 API 金鑰驗證請求者的真實性
- 如果 API 金鑰與任何允許的金鑰都不相符,則伺服器會拒絕 API 呼叫並傳送拒絕訊息
- 如果 API 金鑰相符,伺服器將履行請求並傳回預期的回應
這樣,API 金鑰就允許 API 伺服器辨識每個 API 呼叫的來源。然後,伺服器可以執行後續驗證,以授權存取 API 的資料和服務。
限制 API 呼叫
API 供應商可以使用 API 金鑰規範對其 API 服務的不同程度的存取權限。驗證請求後,API 伺服器可以檢查一些參數,之後再允許進一步存取其服務。
服務範圍
伺服器決定它可以向請求的應用程式授予的服務範圍。例如,某些 API 金鑰允許請求者新增、刪除和讀取 API 資料儲存中的資訊。其他 API 金鑰可能將 API 呼叫限制為僅讀取資訊。
功能選擇
伺服器決定並強制執行 API 呼叫的範圍,以自訂其 API 服務。例如,可以使用 API 金鑰將電子商務應用程式限制為在特定國家/地區搜尋產品資料。還可以將特定的 API 金鑰關聯到某些資料庫參數篩選條件,例如書籍和服裝。
呼叫次數
API 供應商還使用 API 金鑰來嚴格規範 API 存取權限。某些供應商會對其 API 套用時間或請求限制。在這種情況下,用戶端應用程式只能在規定的持續時間內使用 API,或者每天最多使用一定的次數。一旦超過這些限制,伺服器就會拒絕來自相關 API 金鑰的任何請求。
API 金鑰和 API 字符有什麼區別?
API 金鑰是一串唯一識別碼,主要用來識別來自 API 用戶端的應用程式流量。API 金鑰通常與部署呼叫應用程式的特定伺服器相關聯。當應用程式提出 API 請求時,伺服器會透過 API 金鑰識別呼叫應用程式。
相比之下,API 字符是一串程式碼,包含用於識別特定使用者的綜合性資料。API 字符還包含授予特定使用者的存取權限範圍。借助 API 字符,伺服器既可以對呼叫使用者的請求進行身分驗證,又可以驗證 API 的使用範圍。例如,使用者可以使用單一登入字符存取一組 API。
由於 API 金鑰在使用者授權中的作用有限,因此產生 API 金鑰更加簡單。相反,在授予 API 字符時會有更多的限制和程序,因為 API 字符包含身分識別和身分驗證資料。
在 Amazon Web Services (AWS) 上,API 字符也稱為身分驗證字符或安全字符。開發人員可以使用 IAM 許可、Lambda 授權方或 Amazon Cognito 使用者集區來建立 API 字符並管理 API 的存取權。
有哪些 API 金鑰最佳實務?
使用 API 金鑰時,請牢記一些最佳實務。
避免使用 API 金鑰進行用戶身分驗證。API 金鑰並非用於規範使用者存取權限。同樣,不得在 API 金鑰中包含機密資訊,因為這些資訊可能會在傳輸過程中洩露。
不得將 API 金鑰直接嵌入到原始程式碼或儲存庫中。如果您忘記移除 API 金鑰,則它們可能會在您發佈應用程式時向公眾公開。
當 API 金鑰不再使用時,應將其刪除。考慮為金鑰新增到期時間,以實現更強大的 API 安全性。
AWS 如何協助您管理 API 金鑰?
Amazon Web Services (AWS) 針對您的 API 金鑰管理需求提供 Amazon API Gateway。
可以使用 API Gateway 建立、發佈、維護、監控和保護任意規模的 REST、HTTP 和 WebSocket API。API 開發人員可以建立 API 來存取 AWS 或其他 Web 服務,以及存放在 AWS 雲端中的資料。
建立、測試和部署 API 後,可以使用 API Gateway 使用計劃將其作為產品提供給客戶。可以設定使用計劃和 API 金鑰,讓客戶存取選定的 API。而且,可以根據定義的限制和配額開始限制對這些 API 的請求。
立即建立帳戶,開始使用 AWS 上的 API 金鑰管理