azure-ad-b2c - AD B2C 自定义策略中的单个编排步骤中的自定义电子邮件验证
问题描述
我有一个多步骤自定义策略,首先从用户那里收集电子邮件,并在用户单击继续时向用户发送验证码。旅途很好。但问题是代码的验证正在下一步中进行。我需要将该代码验证带入第一个编排步骤。我正在遵循以下文档来实现这一旅程:“ https://github.com/yoelhor/aadb2c-verification-code ”
我的技术简介如下:
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail-FirstStep">
<DisplayName>Email signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IpAddressClaimReferenceId">IpAddress</Item>
<Item Key="ContentDefinitionReferenceId">api.localaccountsignup</Item>
<Item Key="language.button_continue">Send verification email</Item>
<Item Key="EnforceEmailVerification">False</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="Verified.Email" Required="true" />
<OutputClaim ClaimTypeReferenceId="verificationCode" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CopyEmailAsReadOnly" />
</OutputClaimsTransformations>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-API-SendVerificationEmail" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>
验证技术简介如下:
<TechnicalProfile Id="REST-API-SendVerificationEmail">
<DisplayName>Sign-Up send link</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://myweb.azurewebsites.net/api/Identity/SendVerificationCode</Item>
<Item Key="AuthenticationType">None</Item>
<Item Key="SendClaimsIn">Body</Item>
<Item Key="AllowInsecureAuthInProduction">true</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="verificationCode" />
</OutputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
解决方案
目前无法实现,要调用 REST API,必须提交表单,这将导致编排步骤完成并进入下一个步骤。
几周后,我们将发布如何实现这一点,并且无需使用外部 REST API 来生成和验证 OTP 代码。敬请关注。
推荐阅读
- bash - 如何检查 shell 脚本/Vim 是否在 VS Code 集成终端中运行?
- android - Volley 或 Fast Networking 不会在特定链接中下载整个文件(损坏的文件)
- javascript - Bootstrap datepicker - 在特定月份的指定日期添加工具提示
- swift - Apple Vision 错误 – 使用未解析的标识符“ObjectDetector”
- c++ - 如何在 OpenCL 中关闭 VPU 恢复
- excel - 停止链接/嵌入对象 Excel VBA
- r - 有没有办法使用聚合命令按组计算不对称平均值(例如从百分位数 0.05 到 0.5)?R-工作室
- django - django 抛出错误“无法将模型字段类别转换为 Elasticsearch 字段!”
- php - 请帮助我理解这个 PHP hack,我怎样才能绕过这个 re
- android - 卷轴末尾出现的动画“保险杠”是否有监听器?