【问题标题】:Update B2C Custom Attribute String Collection via AD Graph API通过 AD Graph API 更新 B2C 自定义属性字符串集合
【发布时间】:2017-11-21 16:35:40
【问题描述】:

我可以定义一个数据类型为stringCollectioncustom attribute 并通过Azure AD Graph API 更新它吗?我的实验失败了:

请求正文包含指定内容类型和编码的意外字符/内容


自定义属性定义

<ClaimType Id="extension_array_test">
    <DisplayName>Array Test</DisplayName>
    <DataType>stringCollection</DataType>
    <UserHelpText>Array Test in Token</UserHelpText>
</ClaimType>  

使用Graph API Sample client

{
    "extension_[my-guid]_array_test": ["value 1", "value 2"]
}

Error Calling the Graph API:
{
  "odata.error": {
    "code": "Request_BadRequest",
    "message": {
      "lang": "en",
      "value": "The request body contains unexpected characters/content for the specified content type and encoding."
    }
  }
}

【问题讨论】:

    标签: azure-ad-b2c azure-ad-graph-api


    【解决方案1】:

    您提供的文档中的第二条注释指出扩展属性目前仅支持字符串数据类型。

    作为替代方案,您可以将数据存储为转义 JSON,如下所示:

    "extension_{GUID}_JsonAttribute": "{\"Item1\":\"Test\",\"Item2\":\"Data\"}"
    

    【讨论】:

    • 谢谢你。该文档已过时,它还支持 bool 和 int。看到这个PR
    • B2C 支持stringCollections,见this code
    • B2C 支持 stringCollections 声明和标准 AAD 属性(例如 otherMails),但正如您所指出的,扩展属性的数据类型是字符串、布尔值和整数,所以这就是您的身份目前仅限于。
    • 请注意,当前存储(JSON 格式)字符串时限制为 256 个字符:docs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2018-03-23
    • 2019-07-14
    • 2023-04-02
    相关资源
    最近更新 更多