Azure B2C 自定义策略中的多个自定义 Headers 和路径变量

Multiple Custom Headers and Path Variables in Azure B2C Custom Policy

我从 azure B2C 自定义策略调用 REST api,此流程将使用 GET 调用一个端点,如果我没有取回所需的声明信息,它将调用使用 POST 到达另一个终点。我在 azure B2C 中看到两个限制,我想看看是否有人有解决办法。

对于 GET 调用,它使用 url 路径中的声明中的 oid (即 api/info/{oid})。从我从文档中看到的内容来看,我不相信有一种方法可以使用声明中的 OID 动态填充服务 url。有什么解决方法吗?

对于 POST 调用 ,我正在点击 APIM 并且需要 headers 用于两个 API 键和订阅密钥。据我所知,B2C 在呼叫时只允许 post 呼叫与单个 header (除非进行基本身份验证)。有没有办法在拨打电话时同时发送两个 header?

目标是在不更改 api(即更改路径变量以查询参数等)的当前范例的情况下进行这些调用。

对于 GET 调用,您可以使用 SendClaimsIn 元数据,设置为 Url。然后,您只需为技术 porofile 中指定的每个 InputClaim 使用一个标记。

https://docs.microsoft.com/en-us/azure/active-directory-b2c/restful-technical-profile#metadata

对于 POST 调用 ,我认为您可以提供两个加密密钥来发送您的 API 密钥和订阅密钥。我还没有机会验证这一点,但我认为它会包含在 Header 中。除非您能够事先验证,否则我会在某个时候尝试使用 Azure 函数对此进行测试。

每个挑战的示例:

<Metadata>
  <Item Key="ServiceUrl">https://www.website.com/api/info/{objectId}</Item>
  <Item Key="AuthenticationType">ApiKeyHeader</Item>
  <Item Key="SendClaimsIn">Url</Item>
</Metadata>
<CryptographicKeys>
  <Key Id="X-Api-Key" StorageReferenceId="B2C_1A_ApiKey"/>
  <Key Id="X-Subscription-Key" StorageReferenceId="B2C_1A_SubscriptionKey"/>
</CryptographicKeys>
<InputClaims>
  <InputClaim ClaimTypeReferenceId="objectId"/>
</InputClaims>