【发布时间】:2020-05-13 01:01:33
【问题描述】:
我正在尝试创建一个自定义 ADB2C 策略,该策略应该遵循诸如...的旅程
- 用户输入电话号码进行验证
- 用户收到验证号码的代码并在视图中输入此代码
- 已设置声明,在下一步中使用该声明保存到 AD。
我可以看到我需要根据 Microsoft 文档使用电话因素技术配置文件,但我看不出这是否可以在用户注册之前完成,因为它似乎想要一个 UserID 作为输入声明(见Input claims required)。所有样本似乎都指向已与用户关联的 MFA 和编辑手机。
可以这样做吗?
其次,在此流程中混合一次性密码技术配置文件是否有任何价值,还是仅用于 OTP 代码生成(不发送和接受来自用户的输入)?
更新
所以我设法创建了正确显示 UI 的用户旅程,因此我似乎可以输入电话号码,但现在当我提交它时,我收到错误“AADB2C90154:多因素验证请求未能获得会话 ID”来自服务。”
据我所知,会话技术配置文件很好,所以不确定问题可能是什么?
我也尝试禁用会话,但似乎电话技术配置文件需要它?
技术简介示例
<TechnicalProfile Id="PhoneFactor-InputOrVerify">
<DisplayName>PhoneFactor</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.PhoneFactorProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.phonefactor</Item>
<Item Key="ManualPhoneNumberEntryAllowed">true</Item>
<Item Key="setting.authenticationMode">sms</Item>
<Item Key="setting.autodial">true</Item>
</Metadata>
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="userIdForMFA" PartnerClaimType="UserId" DefaultValue="TEST" />
<InputClaim ClaimTypeReferenceId="phoneNumber" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="verifiedPhone" PartnerClaimType="Verified.OfficePhone" />
<OutputClaim ClaimTypeReferenceId="newVerifiedPhone" PartnerClaimType="newPhoneNumberEntered" />
</OutputClaims>
</TechnicalProfile>
【问题讨论】:
-
另外,有没有关于实际发送短信/电话的费用信息?我在 Azure 网站上没有看到任何提及?
-
定价可以在这里找到:azure.microsoft.com/en-us/pricing/details/active-directory-b2c它表示MFA和SMS事件是0.03美元/事件。
-
关于您的自定义流程。您是否希望用户仅使用电话号码注册?
-
不,注册将使用电子邮件和密码,但我们需要确认电话号码,因此使用“使用电话号码登录”策略不是我们需要的路线(目前)
-
好的。那么 MFA 设置是在用户输入他们的电子邮件地址之前还是之后发生的?
标签: azure-active-directory azure-ad-b2c