2017-09-28 63 views
1

我们正在使用Azure B2C和使用MFA重置密码策略。 ADAL用于认证和Graph API来创建/更新用户。Azure B2C - 添加/更新身份验证联系信息

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

但是,如果用户在其身份验证联系人信息中没有电话号码,则Azure会要求用户输入电话号码以发送短信/电话号码。在这一点上,用户可以输入任何数字,因此它不是真的添加了一层安全性!

所以我有两个问题:

  1. 当我创建直通ADAL +图(C#)的用户,我怎么能指定的电话号码作为身份验证联系方式(我试过移动或TelephoneNumber但很明显,这些不是正确的领域),以便Azure不会要求我输入随机电话号码来执行MFA?

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

Thx!

回答

0

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

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

  1. 在注册过程中,用户验证他们的电子邮件地址,并提供一个密码,点击提交(因此必须在目录中创建一个帐户),但在完成MFA之前滴出。
  2. 用户帐户是以编程方式创建的,在这种情况下,无法以编程方式添加电话号码(可以通过管理界面添加,如您在问题中所述)。
  3. 该应用程序最初从没有MFA的策略开始,但随后决定在部分或所有策略中引入MFA。

在所有这些情况下,用户第一次尝试访问需要MFA和电话号码的应用程序(或其任何部分)时,帐户中不存在,Azure AD B2C将要求用户验证并将其电话号码放在帐户上。只有这样才会向应用程序发出令牌。

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

+0

谢谢奥梅尔,这很清楚!出于不同的原因,我们需要注册一个自定义注册表单,因此我们以编程方式添加用户...所以我想,现在,我们没有解决方案。 – ben

+0

Hi Ben,Azure AD B2C允许您在注册期间自定义要从用户收集的属性,并允许您完全自定义UI样式。你可以看看,看看这是否足以满足你的需求。如果是这样,您可以在注册MFA期间强制使用电话号码。 –

+0

的确,我们正在为登录页面做这件事,而我正在为注册页面进行调查。但是,假设我们设法使用默认页面,稍后用户将如何更改他的电话(身份验证信息)?它是通过配置文件编辑策略吗? – ben