[英]ASP.NET Core 3.1 Azure AD Authentication throws OptionsValidationException
[英]Register a single ASP.NET Core 3.1 application with Azure AD and share authentication with many different ASP.NET 3.1 core applications
我創建了一個ASP.NET Core 3.1應用程序,並實現了 Azure AD OpenID Connect基於身份驗證。 我想與其他ASP.NET Core 3.1應用程序共享此身份驗證機制,而不是為每個應用程序創建此邏輯。 所有應用程序都將駐留在同一個 IIS 服務器上。
將與 Azure AD 相關的Startup.cs
代碼中的邏輯提取到一個應用程序中是否有意義,該應用程序僅包含 Azure AD 身份驗證代碼,其他應用程序重定向到此應用程序進行身份驗證? 做這個的最好方式是什么? 還是應該在 Azure AD 中明確注冊每個應用程序,並在Startup.cs
文件中擁有自己的 Azure AD 代碼? 或者我是否必須以某種方式實施與 Azure AD OpenID Connect 集成的本地身份服務器?
傑里米的觀點非常好,所以我會將他標記為已接受的答案。 不過,這里有更多細節。
共享 OIDC 管道
通常的選擇是使用通用管道生成一個小型共享 C# 庫,然后將其插入每個應用程序。
每個應用程序都需要能夠處理 OIDC 重定向和響應,以及身份驗證 cookies、處理到期等。
標准“單點登錄”選項
這是最標准和推薦的方法:
如果用戶從 App A 導航到 App B,他們會被重定向但登錄是自動的,因為授權服務器 Session Cookie,所以體驗是無縫的。
集成 WEB 平台選項
在某些情況下,您可能希望以與 Google 相同的方式避免額外的重定向:
要在 OIDC 中實現這一點,您可以這樣做:
Auth cookie 屬性將包括以下內容:
不過,我通常建議不要使用此選項,因為隨着時間的推移,它很容易導致比它解決的問題更多的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.