通用架構是所謂的聯合網關。在此方法中,IdentityServer充當一個或多個外部身份提供商的網關。 該架構具有以下優點: 您的應用程式只需要瞭解一個令牌服務(網關),並且屏蔽了有關連接到外部提供程式的所有詳細信息。這也意味著您可以添加或更改這些外部提供程式,而無需更新您的應用程式。 您控制網關( ...
通用架構是所謂的聯合網關。在此方法中,IdentityServer充當一個或多個外部身份提供商的網關。
該架構具有以下優點:
- 您的應用程式只需要瞭解一個令牌服務(網關),並且屏蔽了有關連接到外部提供程式的所有詳細信息。這也意味著您可以添加或更改這些外部提供程式,而無需更新您的應用程式。
- 您控制網關(而不是某些外部服務提供商) - 這意味著您可以對其進行任何更改,並保護您的應用程式免受外部提供程式可能對其自己的服務所做的更改。
- 大多數外部提供商僅支持一組固定的聲明和聲明類型 - 中間有一個網關允許對提供商的響應進行後處理,以轉換/添加/修改特定於域的身份信息。
- 某些提供商不支持訪問令牌(例如社交提供商) - 因為網關知道您的API,它可以根據外部身份發出訪問令牌。
- 某些提供商根據您連接的應用程式數量收費。網關充當外部提供程式的單個應用程式。在內部,您可以根據需要連接任意數量的應用程式。
- 一些提供商使用專有協議或對標準協議進行專有修改 - 通過網關,您只需要處理一個地方。
- 通過一個地方強制進行每次身份驗證(內部或外部),可以為身份映射提供極大的靈活性,為所有應用程式提供穩定的身份並處理新的需求
換句話說 - 擁有聯合網關可以讓您對身份基礎結構進行大量控制。由於您的用戶身份是您最重要的資產之一,我們建議您控制網關。
27.1 實現
我們的快速入門UI使用了以下一些功能。另請參閱外部身份驗證快速入門和有關外部提供程式的文檔。
- 您可以通過向IdentityServer應用程式添加身份驗證處理程式來添加對外部身份提供程式的支持。
- 你可以通過調用程式查詢這些外部供應商
IAuthenticationSchemeProvider
。這允許基於已註冊的外部提供程式動態呈現您的登錄頁面。 - 我們的客戶端配置模型允許基於每個客戶端限制可用的提供者(使用該
IdentityProviderRestrictions
屬性)。 - 您還可以使用
EnableLocalLogin
客戶端上的屬性告訴您的UI是否應該呈現用戶名/密碼輸入。 - 我們的快速啟動UI漏斗通過一個回調所有外部認證調用(見
ExternalLoginCallback
的AccountController
類)。這允許單點進行後處理。