ADAL 查询安全组
ADAL query security groups
我有一个系统可以通过 Azure 上的 Web api 登录本机 wpf 应用程序。
AuthenticationContext authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", authority));
AuthenticationResult tokenAuthResult = authContext.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Auto)).Result;
if (tokenAuthResult == null) return;
Credentials.RestCredentials = new TokenCredentials(tokenAuthResult.AccessToken);
Credentials.UserName = string.Concat(tokenAuthResult.UserInfo.GivenName, " ", tokenAuthResult.UserInfo.FamilyName);
这一切都很完美,返回令牌等。
用户都在 ADAL 中,并且有针对他们的关联组(这些都是 O365 用户)。
我希望能够查询登录用户关联的组是什么。
我是否需要使用 Graph api 进行新的调用?
我是否使用返回的令牌?
我在这里有点迷路了。
提前致谢
斯科特
一种简单的方法是在 Azure AD 中转到您的应用程序注册,单击 Manifest,然后修改 groupMembershipClaims 属性:
"groupMembershipClaims": "SecurityGroup",
这将导致 Id 令牌包含用户的组 ID。
不过它确实有限制,只能包含一定数量的组,在这种情况下,您必须从 Graph API 中获取它们。
这是您在这种情况下需要调用的端点:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/functions-and-actions#getMemberGroups。
添加到@juunas 的回答中,以下示例active-directory-dotnet-webapp-groupclaims 详细解释了事情。
特别是 Step 3: Configure your application to receive group claims 解释了清单中的应用程序配置。
中与组相关的声明
我有一个系统可以通过 Azure 上的 Web api 登录本机 wpf 应用程序。
AuthenticationContext authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", authority));
AuthenticationResult tokenAuthResult = authContext.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Auto)).Result;
if (tokenAuthResult == null) return;
Credentials.RestCredentials = new TokenCredentials(tokenAuthResult.AccessToken);
Credentials.UserName = string.Concat(tokenAuthResult.UserInfo.GivenName, " ", tokenAuthResult.UserInfo.FamilyName);
这一切都很完美,返回令牌等。 用户都在 ADAL 中,并且有针对他们的关联组(这些都是 O365 用户)。 我希望能够查询登录用户关联的组是什么。 我是否需要使用 Graph api 进行新的调用? 我是否使用返回的令牌? 我在这里有点迷路了。 提前致谢 斯科特
一种简单的方法是在 Azure AD 中转到您的应用程序注册,单击 Manifest,然后修改 groupMembershipClaims 属性:
"groupMembershipClaims": "SecurityGroup",
这将导致 Id 令牌包含用户的组 ID。 不过它确实有限制,只能包含一定数量的组,在这种情况下,您必须从 Graph API 中获取它们。
这是您在这种情况下需要调用的端点:https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/functions-and-actions#getMemberGroups。
添加到@juunas 的回答中,以下示例active-directory-dotnet-webapp-groupclaims 详细解释了事情。
特别是 Step 3: Configure your application to receive group claims 解释了清单中的应用程序配置。
中与组相关的声明