我已将部署的现有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作为用户输入的验证并显示响应中返回的消息
谢谢,
答案 0 :(得分:0)
可以从自定义策略调用REST API,如“Integrate REST API claims exchanges in your Azure AD B2C user journey as validation of user input”所述。
您可以使用HTTP basic authentication或client 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."
}