Logo Logo
GitHub Designed by Logto

什麼是身分提供者 (Identity provider, IdP)?

身分與存取管理 (Identity and access management, IAM) 的領域中,身分提供者 (IdP) 是用於管理身分的核心服務。它負責對用戶進行身份驗證,發行身分 token 並向 服務提供者 (例如應用程序、服務、API)提供用戶信息。

除了 認證 (Authentication) ,現代的身分提供者還負責 授權 (Authorization) (執行 存取控制 (Access control) 政策)並支持一些先進特性,例如 單一登入 (Single sign-on, SSO) 多租户 (Multi-tenancy)

身分提供者的標準

由於身分管理的特性以及互操作性的需求,不採用標準來構建身分提供者是不切實際且效率低下的。以下是一些典型的場景:

  • 兩個身分提供者需要彼此通訊來交換用戶信息(例如,社會登錄)。
  • 一個應用需要使用多個身分提供者進行用戶 authentication (例如,聯邦身份)。
  • 一個身分提供者需要支持多種類型的 client(例如,網頁、移動、IoT)。

為了解決這些場景,行業中開發了幾個熱門標準:

對於新應用程序,OpenID Connect (OIDC) 是建議用來構建身分提供者或與現有身分提供者集成的標準。

身分提供者的架構

“身分提供者”這個術語並不指特定的架構或實現。也就是說,身分提供者可以是單體應用程序、一個微服務或者是一個雲服務。

由於身分管理的複雜性和關鍵性,現代應用程式趨向於使用專門的身分提供者作為獨立的服務或供應商方案。

身分提供者的特徵

現代的身分提供者提供了範圍廣泛的功能來支持各種用例和需求。以下是一些常見功能:

另見