簡體   English   中英

Azure AD B2C 聲明能否用於 .NET Core Web 應用程序中的授權目的?

[英]Can Azure AD B2C Claims be used for authorization purposes in a .NET Core Web App?

使用 Microsoft 身份平台設置 Azure AD B2C 身份驗證時,可以選擇為用戶存儲和返回自定義聲明。 該問題專門針對開發使用應用注冊來登錄用戶的 .NET Core Web 應用程序。

編輯:在這種情況下,Web 應用程序不調用下游 API - 有一個 Web 應用程序 (MVC),用戶針對 AAD B2C 進行身份驗證,他們使用 Web 應用程序,后端的控制器使用 Authorize 屬性

您可以定義自定義屬性“TeamId”並將其作為聲明返回給用戶登錄的應用程序 - 在這種情況下,它將位於名為“extension_TeamId”的聲明中,並且在 ClaimsPrincipal 上可用。

使用該聲明中的值來確定用戶屬於哪個租戶是否安全,或者該值是否可能被用戶欺騙,使他們看起來在另一個租戶中 - 我會將其歸類為授權信息Microsoft 聲明您永遠不應該從 ID 令牌中檢索,而只能從訪問令牌中檢索:

ID 令牌由授權服務器發布,並包含攜帶有關用戶信息的聲明。 它們可以與訪問令牌一起發送或代替訪問令牌發送。 ID 令牌中的信息允許客戶端驗證用戶是否是他們聲稱的身份。 ID 令牌旨在被第三方應用程序理解。 ID 令牌不應用於授權目的。 訪問令牌用於授權。 ID 令牌提供的聲明可用於應用程序內部的 UX,作為數據庫中的鍵,並提供對客戶端應用程序的訪問。

https://docs.microsoft.com/en-us/azure/active-directory/develop/id-tokens

另一種方法是將數據存儲在將用戶鏈接到團隊的表中,其中用戶 B2C ID (Guid) 用於首先從數據庫中查找其分配的團隊,而不是直接從他們的聲明中獲取並查找信息關於那支球隊。

我可能對 ID 令牌和訪問令牌感到困惑,並想了解 Microsoft 身份平台在這種情況下返回的內容。 從 .NET Core Web 應用程序前端發送到后端的令牌是 ID 令牌還是訪問令牌?

返回的 ID 令牌通知接收客戶端應用程序有關用戶如何進行身份驗證以及他是誰的詳細信息。 然后根據 ID 令牌創建本地“會話/身份”。 ID 令牌不打算傳遞給其他服務,通常它的生命周期很短。

接收客戶端使用接收到的訪問令牌來訪問 API 和資源。 客戶端應用程序不需要查看訪問令牌內部。

ID-token 中的聲明(可選地與來自 UserInfo 端點的聲明)在本地用戶會話中結束,並可用於授權客戶端應用程序中的各種功能。

因此,是的,來自提供者的聲明可用於授權用戶,但您需要了解 ID 和訪問令牌的不同用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM