【发布时间】:2020-08-15 15:53:04
【问题描述】:
我是新手,并尝试通过调用对 legacy 的 REST API 调用来构建自定义登录策略。
API 需要以下参数作为输入: client_id=固定值,client_secret=固定值,grant_type=固定值,范围=固定值,用户名=变量,密码=变量
以上参数不是Azure取值,而是一些需要在请求中发送的固定值。
我在扩展自定义策略中添加了几个部分,但似乎请求正文没有正确形成,我收到错误声明交换用户迁移通过在步骤“1”中指定的旧版返回 HTTP 错误响应代码错误请求和原因“错误请求”。 我在这里做错了什么?请帮忙。
添加了我的部分:
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="RequestBody">
<DisplayName>Request body</DisplayName>
<DataType>string</DataType>
<UserHelpText>RequestBody</UserHelpText>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<ClaimsTransformation Id="GenerateRequestBody" TransformationMethod="GenerateJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="username" />
<InputClaim ClaimTypeReferenceId="password" TransformationClaimType="password" />
</InputClaims>
<InputParameters>
<InputParameter Id="client_id" DataType="string" Value="client" />
<InputParameter Id="client_secret" DataType="string" Value="sec" />
<InputParameter Id="grant_type" DataType="string" Value="grant" />
<InputParameter Id="scope" DataType="string" Value="scope" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="RequestBody" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>REST API to communicate with Legacy IdP</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="UserMigrationViaLegacyIdp">
<DisplayName>REST API call to communicate with Legacy IdP</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://</Item>
<Item Key="AuthenticationType">None</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AllowInsecureAuthInProduction">true</Item>
<Item Key="ClaimUsedForRequestPayload">RequestBody</Item>
</Metadata>
<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="GenerateRequestBody" />
</InputClaimsTransformations>
<InputClaims>
<InputClaim ClaimTypeReferenceId="RequestBody" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="tokenSuccess" DefaultValue="false" />
<OutputClaim ClaimTypeReferenceId="migrationRequired" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
【问题讨论】:
-
能否请您添加 REST API 技术配置文件(在固定值中使用虚拟值),这将有助于您回答配置文件中的问题。
-
我添加了我的一段代码。如果我在请求正文中以正确的格式发送属性,请检查并告诉我。
-
您是否在 OrchestrationStep 中调用 REST API,如果是,请通过删除密码输入尝试一次并尝试,否则您可以从您所在的自断言技术配置文件的验证技术配置文件中调用 REST API正在获取电子邮件和密码。
标签: azure azure-ad-b2c identity-experience-framework