我们在MEAN堆栈中开发了应用程序。我们正在使用adal-agular库进行azure广告验证。根据{{3}}
Adal.js使用OAuth隐式流与Azure AD进行通信。您 必须为您的应用程序启用隐式流程。
但是,当我们启用隐式流时,Azure AD 不会在令牌中包含组信息。该问题已经详细讨论documentation and sample并由@vibronet
确认问题
Azure AD功能几乎每天都在变化,上述答案仍然有效吗?我们是否还必须启用应用程序的隐式流程?我想在令牌中获取组信息(我不想使用图形api作为解决方案。)
我问这个问题的另一个原因是因为我禁用隐式流程,用户仍然可以访问该应用程序。但是,我仍然没有在令牌中看到组信息。
答案 0 :(得分:5)
Azure AD JWT 确实在隐式流中发出安全组。
在应用程序注册清单中,设置"groupMembershipClaims": "SecurityGroup"
,
然后在您的服务器中:
var groups = new List<string>();
ClaimsPrincipal.Current.Claims.Where(t => t.Type == "groups")
.ForEach(g => groups.Add(g.Value));
不需要GraphApi
https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/app-roles https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims