尝试在使用 ADFS 进行身份验证时获取用户的所有组和嵌套组
基本上我有一个像这样的结构
- 组 1 -> 子组 1,子组 2
- 组2->子组3,子组2
- 组 3 -> 子组 1,子组 4
如果我将 Group1 和 group3 添加到我的用户中,我希望返回
- 组1
- 子组1
- 子组2
- 第3组
- 子组4
我有这个疑问
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), query = ";tokenGroups;{0}", param = c.Value);
但它只返回 group1, group3
答案1
你有没有尝试过:
创建新规则,选择“将 LDAP 属性发送为声明”,选择 Active Directory 作为属性存储,并选择 LDAP 属性“Token-Groups – 非限定名称”,声明类型为“组”
这应该会发送所有组。请注意,您的 ADFS 管理员不应该允许您执行这样的查询,尤其是在大型环境中。如果返回大量数据集,编写该应用程序的人也可能会有点恼火(没有什么比等待 5 分钟来解析 xml 列表更能说明该应用程序很糟糕了)。