azure - 将 Azure AD 用户扩展添加到 id 令牌声明时出现问题
问题描述
我正在尝试按照此处的文档将用户扩展添加到我的 id 令牌的声明集,但我无法让它显示在我得到的令牌中。
我在本地 AD 中创建了一个用户扩展,并将值与我的 Azure AD 实例同步。我通过在 powershell 中查找来验证扩展是否被推送到 Azure AD:
PS U:\> Get-AzureADUserExtension -ObjectId $UserId
Key Value
--- -----
odata.metadata https://graph.windows.net/84d1aa3c-****-****-****-*****6b7b6ec/...
odata.type Microsoft.DirectoryServices.User
createdDateTime 1/31/2019 5:55:52 PM
employeeId
onPremisesDistinguishedName CN=Paul LeBlond,OU=Users,OU=@AR,DC=*********,DC=co
userIdentities []
extension_01e6ed59b00**********6ee8e2a025f_pOCCustom customize!
根据文档的这一部分,我需要完全限定扩展名,extension_<appid>_<extensionName>
看起来我的同步已经这样做了,尽管上面显示的 id 与我的 appid 不匹配。我尝试使用上面的值,以及在中间部分使用 appid(带和不带破折号),并且我尝试只使用扩展名(pOCCustom)。没有人返回声明“extn.POCCustom”,这是我所期待的。
以下是应用程序清单的重要部分的样子:
"id": "0d18****-****-****-****-****b28f27f",
"acceptMappedClaims": null,
"accessTokenAcceptedVersion": null,
"allowPublicClient": null,
"appId": "b4d8****-****-****-****-****234311bd",
...
"optionalClaims": {
"idToken": [
{
"name": "extension_01e6ed59b00**********6ee8e2a025f_pOCCustom",
"source": "user",
"essential": false,
"additionalProperties": []
},
{
"name": "family_name",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "given_name",
"source": null,
"essential": false,
"additionalProperties": []
}
],
"accessToken": [],
"saml2Token": []
},
我添加了 family_name 和 given_name 以确保我至少很接近,并且它们已按预期包含在我的 id 令牌中。
这是我登录时 idToken 的样子:
{
"displayableId": "paul@********",
"name": "Paul LeBlond",
"identityProvider": "https://login.microsoftonline.com/***/v2.0",
"userIdentifier": "N2******iNmVj",
"idToken": {
"aud": "b4d8****-****-****-****-****234311bd",
"iss": "https://login.microsoftonline.com/84d1aa3c-****-****-****-*****6b7b6ec/v2.0",
"iat": 1550157932,
"nbf": 1550157932,
"exp": 1550161832,
"aio": "ATQ******C9bTV+",
"family_name": "LeBlond",
"given_name": "Paul",
"name": "Paul LeBlond",
"nonce": "a0c13***06",
"oid": "7ad8**4d75d7e0",
"preferred_username": "paul@*****",
"roles": [
"CanAccess"
],
"sub": "Ko1***K6RMiTrLQAJUI",
"tid": "84d1aa***e16b7b6ec",
"uti": "gZ8q****psxrtMAQ",
"ver": "2.0"
}
}
所以我得到了我的 family_name 和 given_name 声明,但不是我的 POCCustom 声明。我需要做什么才能让该用户扩展显示在我的 id 令牌中?
解决方案
推荐阅读
- android - 有没有办法用多个 ViewHolder 对象填充 RecyclerView 行?适配器应该实现什么?
- mysql - 列出没有AVG的Mysql表
- formatting - Python-Sphinx:用自定义页面替换标准首页
- r - R ROWMAX 基于标准
- javascript - Angular 应用程序因通知事件过多而被阻止
- python - 与另一端的连接丢失 - 网络抓取
- docker - 是Docker的COPY的来源
总是相对于构建上下文? - asp.net - Telerik SpellChecker:RadEditor 需要在 web.config 中注册 HttpHandler
- jquery - 元素溢出父级和滚动不起作用
- python - 为什么 val_loss 和 val_acc 没有显示?