我可以在Active Directory用户进行身份验证,但我需要知道我们可以在组认证一个特定的用户,如果我们有多个组。 基本上我重定向到http://[mydirectory].onmicrosoft.com和验证用户,但我需要知道我们是否有机制来验证从特定组中的用户,这样我可以根据用来接入。我们可以验证特定组的用户在Active Directory中
回答
假设这是天青 AD(而不是本地的Windows Server AD),那么你有三种选择来限制通过组访问应用程序。
选项1:要求用户/组分配到应用
这是一个不需要在应用程序中添加授权逻辑的唯一选择。
在配置中的经典Azure的门户应用程序,您可以设置应用程序需要用户分配:
然后,在“用户和组”该应用程序,您可以选择个人用户或组应该有权访问应用程序。
这里要考虑的最重要的事情是,这只适用于直接组的成员,而不是嵌套成员。
选项2:要求组织声称
此选项可以让你请求后,用户已签订了含有组列表中的用户是其成员的令牌返回给应用程序。这包括他们是传递成员(即嵌套组)的组。
从经典Azure的门户应用程序的配置页面,你可以下载和上传应用程序的清单JSON文件。在清单中,找到"groupMembershipClaims"
属性,并将其设置为"All"
或"SecurityGroup"
(后者将排除分发列表)。
设置此设置后,用户登录后,得到的令牌将有一个groups
声明,其中包含该用户所属的组对象ID的列表。然后,您的应用程序可以使用这些声明来决定用户是否应该访问。
Dushyant吉尔进入小组声称在细节在他的博客文章:http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/
重要的考虑在这里是有是可以返回组数的限制。如果用户是此限制的更多组的成员,则会发出“超额”声明,并且您的应用程序需要进行Azure AD Graph API调用以获取完整列表。 (这也是在Dushyant的博客中。)
选项3:使用的Microsoft Graph API或Azure AD Graph API直接
最后的选择是简单地调用微软图形API(或在Azure AD图形API ,它们的行为几乎完全相同)来确定登录用户是否为给定组的成员。然后您的应用程序可以做出授权决定。
有可以采取几种方法(所有这些都是可传递的检查,因此嵌套组被支持):
isMemberOf
来检查该用户是否是特定的(单)组的成员。如果单个组应授予您应用的访问权限,这是最简单的。checkMemberGroups
检查用户是否为组列表中的任何组的成员。如果不同的组在应用程序中授予不同的角色或权限,这很有用。getMemberGroups
返回用户所属组的完整列表。这对于进行授权检查通常不是特别有用。
- 1. 验证Active Directory用户
- 2. Active Directory组验证性能
- 3. Active Directory可以使用MD5散列密码验证用户
- 4. 针对Active Directory验证ASP.NET用户:谁管理用户和组?
- 5. 如何验证用户是否属于C#.NET中的Active Directory用户组。
- 6. 如何在asp.net中使用Active Directory组进行身份验证?
- 7. 使用用户名使用UnboundID验证Active Directory用户
- 8. 是否可以使用过期密码来验证Active Directory用户?
- 9. asp.net中的Azure Active Directory身份验证
- 10. 验证C#中远程Active Directory的用户
- 11. 获取Active Directory中的用户组
- 12. 阅读SharePoint中的Active Directory组用户
- 13. 通过Azure Active Directory验证客户端以连接ApiApp
- 14. 我们可以使用UDF在Excel中自定义的验证
- 15. 非域用户的Active Directory认证
- 16. 使用Active Directory进行身份验证
- 17. 寻找什么组/通讯组列表特定用户所属的Active Directory中
- 18. Active Directory用户组成员组主体
- 19. 对Active Directory中的安全组的Python LDAP身份验证
- 20. IIS 5.1,Windows身份验证,Active Directory的
- 21. 如何验证对Active Directory的访问?
- 22. WAS-Active Directory验证失败的原因
- 23. Intranet与VB.NET的Active Directory身份验证
- 24. 使用Powershell更新Active Directory中的Active Directory用户属性
- 25. 用户可以在Active Directory中共享文件夹吗?
- 26. 如何将用户添加到Active Directory中的特定域
- 27. 使用Active Directory用户验证Oracle数据库
- 28. 如何使用Active Directory验证当前用户?
- 29. 使用Active Directory在面向万维网的网站中验证用户身份
- 30. Active Directory LDAP - 锁定用户帐户
我想你是混合身份验证和授权。一旦用户成功通过身份验证(即他们能够正确登录),您可以根据用户的组在应用程序中定义授权规则,以允许/拒绝访问应用程序的某些部分。 –
你使用图形API?如果是这样,你可以使用checkMemberGroups方法。 https://msdn.microsoft.com/library/azure/ad/graph/api/functions-and-actions#checkMemberGroups正如前面的评论中提到的,你试图实现的是基于角色的“授权” – Aravind
你有没有样本以基于用户凭证对组进行授权。目前我正在重定向到http:// [mydirectory] .onmicrosoft.com并进行身份验证。经过身份验证后,我没有收到任何令牌,因此我可以使用Active Directory组进行验证。 –