我的自定义声明提供程序失败,因为 “解析自定义扩展的响应正文时出现问题。检查 API 响应正文是否处于该自定义扩展类型可接受的架构中”。
我想将
correlationId
(字符串)和 newUser
(布尔)添加到标记中。
根据文档,预期的有效负载是:
{
"data": {
"@odata.type": "microsoft.graph.onTokenIssuanceStartResponseData",
"actions": [
{
"@odata.type": "microsoft.graph.tokenIssuanceStart.provideClaimsForToken",
"claims": {
"DateOfBirth": "01/01/2000",
"CustomRoles": [
"Writer",
"Editor"
]
}
}
]
}
}
我检查了日志,我的 API 返回以下内容,这对我来说似乎是合规的(显然不同的声明):
{
"data": {
"actions": [
{
"claims": {
"correlationId": "9733d4a8-3c55-48e4-bc1c-7429560752d4",
"newUser": true
},
"@odata.type": "microsoft.graph.tokenIssuanceStart.provideClaimsForToken"
}
],
"@odata.type": "microsoft.graph.onTokenIssuanceStartResponseData"
}
}
此外,here 是有关如何配置此功能的分步指南。我唯一偏离的一步是我的应用程序注册中没有激活隐式流程,据我所知,这仅与https://jwt.ms的测试目的相关。在我的 Entra 外部 ID 设置的其他部分中,文档中明确不鼓励激活这些部分。事实上,甚至没有在我的自定义声明提供程序 API 的应用程序注册中配置重定向 Uri,这甚至是不可见的。
有人知道为什么它总是失败吗?
现在正在工作。显然,自定义声明提供者不喜欢除
string
之外的任何属性类型。我删除了 newUser
声明,它是 bool
,现在它可以工作了。