在SignUp Policy中集成API以验证用户输入

时间:2018-01-23 20:57:45

标签: azure-ad-b2c

我已将部署的现有API部署到Azure门户。

对于Ex:https://Edudev.azure-api.net/validate?param1=value

API响应是一个JSON对象,
对于Ex:

{
"消息":"请提供详细信息\ r \ n",

" NeedInfo":" true"

}

每当我们调用此api

时,我们需要在标头中传递订阅密钥

我的问题是:

我可以在Azure AD B2C用户旅程中的SignUp Policy Xml中调用此api作为用户输入的验证并显示响应中返回的消息

谢谢,

1 个答案:

答案 0 :(得分:0)

可以从自定义策略调用REST API,如“Integrate REST API claims exchanges in your Azure AD B2C user journey as validation of user input”所述。

您可以使用HTTP basic authenticationclient certificate authentication保护REST API。

您可以在请求查询字符串中传递订阅密钥。

输入声明(例如param1)可以传入:

  • 请求查询字符串
  • 请求标头
  • 请求正文为application/x-www-form-urlencoded
  • 请求正文为application/json
<ClaimsProvider>
  <DisplayName>REST APIs</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="REST-API-Validate">
      <DisplayName>Validate REST API</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://edudev.azure-api.net/validate?subscription-key=...</Item>
        <Item Key="AuthenticationType">None|Basic|ClientCertificate</Item>
        <Item Key="SendClaimsIn">Body|Form|Header|QueryString</Item>
      </Metadata>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="param1" />
      </InputClaims>
      <OutputClaims>
        ...
      </OutputClaims>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

The REST API must return a 409 Conflict response,以便向用户显示消息:

HTTP/1.1 409 Conflict
{
  "version": "1.0.0",
  "status": 409,
  "userMessage": "Please provide details."
}