個人訪問權杖、機器對機器驗證和 API 金鑰的定義及其實際應用場景
了解個人訪問權杖 (PATs)、機器對機器 (M2M) 驗證和 API 金鑰之間的差異,以及它們的使用方式。
了解個人訪問權杖 (PATs)、機器對機器 (M2M) 驗證和 API 金鑰之間的差異,以及它們的使用方式。
如果你在構建一個軟體或 SaaS 產品,你經常會遇到一個廣泛的用例或功能需求:API 請求。尤其是大型企業客戶,可能希望在個人或組織層面上以程式化方式訪問資源。
在這些情況下,通常需要 API 金鑰、個人訪問權杖 (PATs) 和機器對機器 (M2M) 驗證。在本文中,我們將探討這些方法之間的差異,以及在 B2B 產品開發中,這些方法如何被開發者使用。
首先來看看這三者之間的相似性。
瞭解這些相似之處有助於認識到這些驗證方法的共同基礎。它們的差異允許你為特定的用例和安全需求選擇最合適的解決方案。
現在,讓我們討論它們的差異,聚焦于它們的用例以及何時使用每種方法。
API 金鑰用於識別和授權呼叫應用或服務。它們通常是長期有效且靜態的,直到進行旋轉,並且通常具有固定的一組權限。它們主要用於服務器對服務器的通信或訪問公共數據,這些令牌通常不代表特定用戶。
API 金鑰由 API 提供商發行並提供給註冊的 API 使用者 [1],該消費者在每次請求時都會包含在內。API 服務器然後檢查 API 金鑰以驗證消費者的身份,然後返回請求的數據。
API 金鑰不像其他 API 驗證 形式那麼有效,例如 OAuth 和 JWT,但它們仍然在幫助 API 生產者監控使用情況同時保持敏感數據安全方面發揮重要作用。
[1]: API 使用者是與 API 互動以訪問其功能或數據的任何應用、服務或用戶。他們向 API 發送請求以執行操作,例如檢索、創建、更新或刪除資源。API 使用者可以是 Web 應用、移動應用、其他服務器,甚至是個別開發人員,他們使用 API 來集成其他服務或在現有平臺上構建新功能。
Postman: 什麼是 API 金鑰?
當提到 API 金鑰的用例時,經常提到自動化、數據共享、測試、開發和安全控制。然而,這些相當技術化。在現實世界的場景中,構建產品時最常見的目的是集成。
Zapier: 添加 API 金鑰進行驗證
Zapier 是一個流行的自動化工具,可以連接不同的 web 應用。在與 Zapier 整合應用時,API 金鑰用於驗證和授權對應用 API 的訪問。例如,如果你想在 CRM 系統和電子郵件行銷工具之間自動化任務,你將從 CRM 系統生成一個 API 金鑰並提供給 Zapier。這個金鑰然後被用來驗證從 Zapier 到 CRM 的 API 請求,允許兩個系統之間的数据安全流动。

Stripe 利用 API 金鑰來安全地與各種平臺和應用整合。使用 開發者儀錶板 創建、揭示、刪除和轉動 API 金鑰。

個人訪問權杖是另一個類似的概念,但代表特定用戶的身份和權限,它是在成功驗證或登入時動態生成的,通常具有有限的壽命但可以刷新。它們為用戶特定數據和能力提供精細的訪問控制,並且通常用於 CLI 工具、腳本或個人 API 訪問。
有兩個典型場景,
自動化和腳本編寫
這意味著當開發者使用 PAT 自動化將代碼從存儲庫部署到生產環境時,減少手動干預並確保一致性。
例如,GitHub 用戶可以創建 PATs 來驗證 HTTPS 上的 Git 操作並與 GitHub 的 REST API 互動。這對需要自動化任務如克隆存儲庫、推送提交或管理問題和拉取請求的開發者很有用。
與外部應用整合
這意味著使不同系統和應用之間的安全通信成為可能。這看起來與 API 金鑰集成的場景相似,但 PAT 代表的是用戶,而不是客戶端或應用。
例如,專案經理使用 PAT 將專案管理工具與外部問題追蹤系統整合,允許無縫的数据交換和同步,如 Atlassian(Jira 和 Confluence)。
以上場景更像是開發工具。PATs 僅適用於這些類型的產品嗎?不。這裡有兩個額外的例子:一個是 CMS 系統,一個是生產力工具。
Contentful: 個人訪問權杖
Contentful 是一個 headless CMS 平臺,提供 PATs 作為訪問其內容管理 API (CMA) 的 OAuth 令牌替代品。
主要特點包括:

Airtable——一個雲端協作平臺,為 API 訪問實施 PATs。
其系統允許:

M2M 是為服務對服務的通信而設計的,不需要人工干預。它源於用戶名和密碼不足以保護服務,且對有效的自動化而言效率不足的理念。
機器對機器 (M2M) 應用現在採用客戶端信任流,這在 OAuth 2.0 RFC 6749 授權協議 中定義。它還可以支持類似的標準協議。是的,與 PATs 和 API 金鑰相比,M2M 驗證對開放標准更為嚴格。
它驗證應用或服務本身,而不是用戶,並且通常實施 JSON Web Tokens (JWT) 進行無狀態驗證。這為服務之間在分佈式系統中的互動提供了一個安全的方式。
它遵循類似的過程:
這裡有一個後端對後端通信中使用機器對機器 (M2M) 驗證的簡明例子:
場景:服務 A 需要訪問服務 B 的 API 數據。
設置:
驗證:
服務 A 向授權服務器請求訪問令牌:
令牌發行:
API 請求:
服務 A 使用此令牌向服務 B 請求數據:
驗證:
回應:
此過程允許服務 A 和服務 B 之間在無需用戶干預的情況下進行安全、自動的通信,使用 OAuth 2.0 客戶端憑證流。
設備對設備通信
設備對設備通信,尤其是在物聯網 (IoT) 的背景下,嚴重依賴於機器對機器 (M2M) 驗證以確保數據交換的安全和高效。
例如,像智能家居設備,一個智能恒溫器與中央家庭自動化中心通信,以根據用戶偏好調整溫度設置。恒溫器使用 M2M 驗證來安全地向中心發送數據并接收命令,確保只有授權的設備可以與家庭的加熱系統互動。
好的,你已經到達本文的結尾。我能得到一個快速摘要嗎?當然!這裡是重點的快速瀏覽: