在创建帐户之前,使用 ADB2C 电话因素技术配置文件验证电话号码



我正在尝试创建一个自定义的 ADB2C 策略,该策略应该遵循以下旅程......

  1. 用户输入电话号码进行验证
  2. 用户收到一个代码来验证号码并在视图中输入此代码
  3. 设置一个声明,在
  4. 下一步中使用该声明保存到 AD。

我可以看到我需要根据Microsoft文档使用电话因素技术配置文件,但我看不出是否可以在用户注册之前完成此操作,因为它似乎想要 UserID 作为输入声明(请参阅需要输入声明(。所有示例似乎都指向已与用户关联的 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>

@Raj,

除了默认值之外,我看不到您如何设置用户 IdForMFA?但是,Azure 文档在此处不是很清楚。尝试使用设置 userId 值的 inputClaimsTransformation。

例如: 将此添加到 MFA 技术配置文件:

<InputClaimsTransformations>
<InputClaimsTransformation ReferenceId="CreateUserIdForMFA2" />
</InputClaimsTransformations>

将此添加到声明转换中:

<ClaimsTransformation Id="CreateUserIdForMFA2" TransformationMethod="CreateStringClaim">
<InputParameters>
<InputParameter Id="value" DataType="string" Value="test12345@{YourTenant}.onmicrosoft.com"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userIdForMFA" TransformationClaimType="createdClaim" />
</OutputClaims>
</ClaimsTransformation>  

最新更新