首页 > 解决方案 > Azure B2C 自定义策略 REST API - 实现 QueryString 输入声明并处理 JSON 数组响应

问题描述

我目前在自定义策略中实现了一个 REST API,它运行良好。SendClaimsIn 类型是 Body,响应是 JSON 对象。很多这样的例子可以帮助我解决问题。但现在我有第二个 REST API 调用,其格式如下:

https://www.myapi.org/api/piidb.person/find-person-by-email-address/email-addr/myemail%40mydomain.com

根据我阅读的内容,我应该将 REST URL 用作:

https://www.myapi.org/api/piidb.person/find-person-by-email-address

我应该使用 QueryString 的 SendClaimsIn 类型。但是 InputClaim 应该是什么样子?我认为这会起作用,但我不确定(在这种情况下,signInName 是一个电子邮件地址):

  <InputClaims>
        <InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="email-addr"/>
   </InputClaims>

OutputClaims 更有问题。JSON 响应是:

[ {

    "commonName": "Pete",
    "firstName": "Pete",
    "lastName": "Helgren"
}

]

文档似乎表明我应该使用 StringCollection 声明转换,但我还没有找到一个清楚地显示应该如何使用上面的 json 格式实现的示例。我在 WAG 上尝试过类似的操作,但没有看到错误,也没有看到 API 应返回的任何参数:

        <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="[0].commonName"/>
        <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="[0].firstName"/>
        <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="[0].lastName"/>

因此,如果有人可以在“QueryString”的格式和引用返回的 JSON 的方式上填写空白,我将不胜感激。

标签: jsonazurerestazure-ad-b2c

解决方案


推荐阅读