我们正在使用Azure B2C,使用使用MFA重置密码策略。 ADAL用于身份验证,Graph API用于创建/更新用户。
当用户调用重置密码策略(通过应用程序上的链接)时,他首先需要提供一个发送验证码的电子邮件地址。然后(因为MFA已启用),如果用户在其身份验证联系信息中有电话号码,Azure可以发送短信或拨打此号码以执行第二次身份验证检查。
但是,如果用户的“身份验证联系信息”中没有电话号码,则Azure会要求用户输入电话号码以发送短信/拨打该号码。此时,用户可以输入任何数字,因此实际上并没有添加一层安全性!!
所以我有两个问题:
当我通过ADAL + Graph(C#)创建用户时,如何指定电话号码作为验证联系信息(我试过手机或电话号码,但显然,这些不是正确的字段)以便Azure不会要求我输入随机电话号码来执行MFA?
如果可以,如何在身份验证信息部分中更新此电话号码(以编程方式在C#中)?
Thx!
答案 0 :(得分:2)
截至今天,AD Graph API不支持以编程方式为AAD B2C用户添加MFA电话号码。因此,您需要在注册期间启用MFA,以便捕获用户的电话号码并将其存储在目录中,并用于需要MFA的后续身份验证。
您看到的情况是当用户的电话号码未在目录中注册MFA时。这种情况可能发生在多种情况下:
在所有这些情况下,当用户第一次尝试访问需要MFA和电话号码的应用程序(或其任何部分)时,Azure AD B2C将要求用户验证并放置他们在帐户上的电话号码。只有这样,应用程序才会发出令牌。
这不是特定于密码重置,而是所有用于解决上述方案的策略。例如,应用程序可以将MFA添加到登录策略中,如果记录中没有电话,则在登录期间,用户将需要提供电话号码并对其进行验证。