有没有办法让Group成为User的成员,这样我们就可以处理身份验证,甚至抛出异常,因此不会创建令牌。
我们需要组的原因是我们无法在Azure AD中创建OU,而我们之前可以在LDAP中创建OU。我们检索了专有名称,因此有关于所述用户的非常丰富的信息。
最后,我们确实看到您可以在内部创建OU,但是读取Graph API无法识别它或无法检索它。
我们正在尝试在身份验证过程的SecurityTokenValidated
阶段内执行逻辑,并且每当我们尝试使用时都会中断该过程:
string UPN = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.Name).Value
这是因为我们使用的是MSAL吗?
答案 0 :(得分:2)
您最好的方法是使用Azure AD的群组声明功能。 (并且对于获取OU。根本不在Azure AD中表示OU。)
Dushyant Gill关于此的博文相对较旧,但仍然非常相关:http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/。简而言之,这个过程是:
groupMembershipClaims
property in your application为您的应用启用群组声明。设置此项后,当用户登录您的应用程序时,他们所属的组列表将包含在令牌中(如果组的数量小于限制)。_claim_name
和_claim_sources
声明作为需要直接调用Graph API的指示。)正如the documentation for Azure AD Graph API permissions中所述,为了让您的应用程序调用{{3}}方法,应用程序必须具有"读取所有组"权限(Groups.Read.All)。此权限需要管理员同意,但一旦获得同意,就可以使用已登录用户的访问令牌进行请求。