如何在ADFS 2019访问令牌中添加oid声明实现Web API跨应用用户识别
ADFS 2019 访问令牌添加跨应用唯一oid声明操作指南
oid(Object Identifier)对应用户在AD域中的全局唯一Object-GUID,跨所有应用取值固定,完全符合你多应用共用用户数据库的关联需求。你可以按照以下步骤配置,将oid声明添加到返回的访问令牌中:
- 第一步:配置声明提供程序信任的发送规则
- 打开ADFS管理控制台,依次进入「信任关系」→「声明提供程序信任」,右键选中当前在用的Active Directory声明提供程序,选择「编辑声明规则」
- 在「接受转换规则」标签页点击「添加规则」,规则模板选择「将LDAP属性作为声明发送」,点击下一步
- 填写规则配置:
- 声明规则名称:发送Object-GUID为oid声明
- 属性存储选择「Active Directory」
- LDAP属性列选择「Object-GUID」,出站声明类型选择「Object Identifier (oid)」
- 保存规则并应用生效
- 第二步:配置Web API信赖方的传递规则
- 回到ADFS管理控制台,依次进入「信任关系」→「信赖方信任」,找到你要访问的后端Web API对应的信赖方条目,右键选择「编辑声明规则」
- 在「颁发转换规则」标签页点击「添加规则」,规则模板选择「传递或筛选传入声明」,点击下一步
- 填写规则配置:
- 声明规则名称:传递oid声明到访问令牌
- 传入声明类型选择「Object Identifier (oid)」
- 勾选「传递所有声明值」,保存规则并应用生效
- 第三步:OAuth/OIDC场景额外配置(可选)
如果你是通过OpenID Connect或者OAuth2协议请求令牌,需要用管理员权限打开PowerShell,执行以下命令确保信赖方强制发布配置的声明:# 查看当前Web API信赖方配置,替换为你的Web API实际标识符 Get-AdfsRelyingPartyTrust -Identifier "https://你的web-api标识URI" # 如果AlwaysIssuetClaims属性不为$true,执行以下命令修改 Set-AdfsRelyingPartyTrust -TargetIdentifier "https://你的web-api标识URI" -AlwaysIssuetClaims $true - 第四步:验证配置结果
重新发起令牌请求,获取新的访问令牌解码后即可看到oid字段,该值对应用户AD对象的GUID编码,跨所有应用取值一致,你可以直接将该值作为用户唯一标识和你的公共用户数据库做关联。
注意:如果你对接了多个声明提供程序,需要在所有使用的声明提供程序侧都添加对应的oid发送规则,避免部分登录场景下oid声明缺失。
内容的提问来源于stack exchange,提问作者JSONVorhees
相关产品推荐
相关产品推荐

