Azure B2C - 添加/更新身份验证联系信息

时间:2017-09-28 07:46:45

标签: azure-ad-b2c azure-ad-graph-api

我们正在使用Azure B2C,使用使用MFA重置密码策略。 ADAL用于身份验证,Graph API用于创建/更新用户。

当用户调用重置密码策略(通过应用程序上的链接)时,他首先需要提供一个发送验证码的电子邮件地址。然后(因为MFA已启用),如果用户在其身份验证联系信息中有电话号码,Azure可以发送短信或拨打此号码以执行第二次身份验证检查。

但是,如果用户的“身份验证联系信息”中没有电话号码,则Azure会要求用户输入电话号码以发送短信/拨打该号码。此时,用户可以输入任何数字,因此实际上并没有添加一层安全性!!

所以我有两个问题:

  1. 当我通过ADAL + Graph(C#)创建用户时,如何指定电话号码作为验证联系信息(我试过手机或电话号码,但显然,这些不是正确的字段)以便Azure不会要求我输入随机电话号码来执行MFA?

  2. 如果可以,如何在身份验证信息部分中更新此电话号码(以编程方式在C#中)?

  3. Thx!

1 个答案:

答案 0 :(得分:2)

截至今天,AD Graph API不支持以编程方式为AAD B2C用户添加MFA电话号码。因此,您需要在注册期间启用MFA,以便捕获用户的电话号码并将其存储在目录中,并用于需要MFA的后续身份验证。

您看到的情况是当用户的电话号码未在目录中注册MFA时。这种情况可能发生在多种情况下:

  1. 在注册过程中,用户验证他们的电子邮件地址并提供密码,点击提交(因此在目录中创建了一个帐户),但在完成MFA之前退出。
  2. 用户帐户是以编程方式创建的,在这种情况下,无法以编程方式添加电话号码(可以通过管理界面添加,如问题中所述)。
  3. 该应用程序最初是在没有MFA的情况下启动的,但随后决定在部分或全部政策中引入MFA。
  4. 在所有这些情况下,当用户第一次尝试访问需要MFA和电话号码的应用程序(或其任何部分)时,Azure AD B2C将要求用户验证并放置他们在帐户上的电话号码。只有这样,应用程序才会发出令牌。

    这不是特定于密码重置,而是所有用于解决上述方案的策略。例如,应用程序可以将MFA添加到登录策略中,如果记录中没有电话,则在登录期间,用户将需要提供电话号码并对其进行验证。