我需要帮助来弄清楚如何通过ADFS(Windows Server 2016)上的OpenID Connect获取用户指定的组。我目前能够对用户进行身份验证并获取包含access_token的用户信息。当我检查JWT令牌时,我可以看到那里的所有默认声明。我想要的是将所有用户分配的系统组作为字符串数组添加到声明中,但我不知道如何实现这一点。 ADFS和Windows Server是一个野兽,谷歌的所有搜索结果并没有引导我朝着正确的方向发展。我找到的所有文章都有点无用,因为如果你没有在整个ADFS-shebang接受教育,他们要么在步骤中不完整,要么难以遵循。
我已经被困在这个问题上几天了,需要一些帮助,希望有人知道这个。
到目前为止我做了什么:
我目前正在使用范围“openid”,“email”和“profile”进行身份验证。
我们只是把一切都搞定了所以我只是想我会分享我们做了什么,如果有人想做我们做的事情。
先决条件
为了能够执行以下步骤,您需要启用Windows Server 2016或更高版本,并启用“Active Directory联合身份验证服务(ADFS)”功能。
将OpenID Connect配置添加到ADFS
配置OpenID Connect以提供用户组作为声明
配置OpenID Connect以提供特定用户组作为声明
您可以使用Web浏览器访问Web应用程序。
这使您可以访问声明规则 - 您的示例中的Web API也是如此。
然后使用带有“令牌组”选项之一的LDAP规则,例如“不合格”并将其映射为“角色”类型。
这会将所有组添加到令牌中,每个组一个角色声明。