Authentication
管理 REST API 的身份驗證
場景是,我想在部署在不同環境中的多個 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 更符合您的需求,因為它是一個通用的身份提供者。
您正在尋找的模式是這樣的:
- API 客戶端向身份提供者進行身份驗證
- 他們得到“東西”作為回報,通常是簽名的 JSON Web Token (JWT)
- 他們在 REST API 呼叫的 Authorization http 標頭中發送 JWT
- 無論哪個 REST API 接收到請求,都會使用身份提供者的公鑰驗證 JWT 簽名