Authentication

管理 REST API 的身份驗證

  • April 16, 2021

場景是,我想在部署在不同環境中的多個 REST API 中管理身份驗證。

我一直在閱讀有關Vault的資訊,顯然它具有此功能。

使用 Vault,我的應用程序可能只需要向 Vault 發出請求並能夠僅使用別名對外部 API(正確配置)進行身份驗證?無需在我的應用程序中儲存外部 API 的使用者/密碼/令牌?

我想知道是否有人有過以這種方式使用 Vault 的經驗,有什麼優點和缺點

或者,如果有人推薦其他東西來實現這一目標

更新:

我在 SO https://stackoverflow.com/questions/57703943/how-to-allow-single-sign-on-for-al-clients-in-keycloak上找到了一個我正在尋找的問題

Vault 可以對其服務的客戶端進行身份驗證。它還可以將身份驗證委託給其服務,例如 GitHub 或某些 OpenID 連接提供商。

但無論您選擇哪種方法/協議,模式始終是客戶端向 Vault 進行身份驗證,而不是向您的 REST API 進行身份驗證。

Keycloak 更符合您的需求,因為它是一個通用的身份提供者。

您正在尋找的模式是這樣的:

  1. API 客戶端向身份提供者進行身份驗證
  2. 他們得到“東西”作為回報,通常是簽名的 JSON Web Token (JWT)
  3. 他們在 REST API 呼叫的 Authorization http 標頭中發送 JWT
  4. 無論哪個 REST API 接收到請求,都會使用身份提供者的公鑰驗證 JWT 簽名

引用自:https://serverfault.com/questions/1056310