【发布时间】:2018-08-17 01:56:44
【问题描述】:
我正在开发一个带有 Azure AD 身份验证的 ASP.Net 核心 Web 应用程序,当用户登录时,我需要获取他所属的所有组及其基本详细信息,任何线索将不胜感激,
提前致谢。
【问题讨论】:
-
请阅读[这里](我如何提出一个好问题?)并编辑您的问题。
标签: azure azure-active-directory
我正在开发一个带有 Azure AD 身份验证的 ASP.Net 核心 Web 应用程序,当用户登录时,我需要获取他所属的所有组及其基本详细信息,任何线索将不胜感激,
提前致谢。
【问题讨论】:
标签: azure azure-active-directory
组 ID 可作为您从 Azure AD 获得的身份验证令牌的一部分提供的声明。具体的声明名称是“groups”。
在您的 .NET 代码中,它将作为用户 ClaimsIdentity 的一部分提供。
这里是示例代码,它显示了如何根据登录用户的组在您的应用程序中执行或限制不同的操作 - https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims#authorization-in-a-web-app-using-azure-ad-groups--group-claims
专门用于查找登录用户所属的组,请查看共享示例中的此代码 -
public class ClaimHelper
{
public static async Task<List<string>> GetGroups(ClaimsIdentity claimsId)
{
if (claimsId.FindFirst("_claim_names") != null
&& (Json.Decode(claimsId.FindFirst("_claim_names").Value)).groups != null)
return await GetGroupsFromGraphAPI(claimsId);
return claimsId.FindAll("groups").Select(c => c.Value).ToList();
}
这里有一个链接,它解释了您可以使用的所有不同声明。 - https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-id-and-access-tokens
名字、姓氏、对象 ID、组和用户主体名称可能会为您提供所需的内容。
【讨论】: