配置Azure B2C AD以使用Authenticator应用程序

时间:2017-05-09 13:42:20

标签: azure azure-ad-b2c multi-factor

在Azure B2C中,是否可以配置多重身份验证以使用Microsoft身份验证器应用程序?

3 个答案:

答案 0 :(得分:0)

此时, Azure AD B2C不支持与Microsoft身份验证器应用程序集成

您应该通过feedback.azure.com中的Azure AD B2C forum

来申请

答案 1 :(得分:0)

我被认为是现在可以做到的。这是Github示例的链接,该示例显示可以使用“自定义策略”对其进行配置。

https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp

万一它被拆除了,请按照以下步骤从2019-10开始:

Azure AD B2C:TOTP多因素身份验证

使用Azure Active Directory(Azure AD)B2C,您可以集成基于TOTP的多重身份验证,以便可以在面向消费者的应用程序中为注册和登录体验添加第二层安全性。这需要使用自定义策略和自定义REST API端点。如果您已经创建了注册和登录策略,则仍然可以启用多重身份验证。

Azure AD B2C TOTP多因素身份验证解决方案代码示例中涉及以下组件:

  1. Azure AD B2C -授权服务器,负责验证用户的身份,授予(和撤消)对资源的访问权以及颁发令牌。它也被称为身份提供者。
  2. Web或移动应用程序 –也称为依赖方应用程序。依赖身份提供者(Azure AD B2C)进行身份验证的应用程序。
  3. 自定义休息API -使用基于AD B2C的Identity Experience Framework,您可以在用户旅程中与RESTful API集成。添加您自己的业务逻辑。 Identity Experience Framework在输入声明集合中将数据发送到RESTful服务,并在输出声明集合中从RESTful接收数据。 REST API的调用受客户端证书保护。我们使用自定义的REST API来准备QR码,注册用户的安全码并验证TOTP码。
  4. TOTP -基于时间的一次性密码算法,该算法从共享密钥(REST API和身份验证器应用程序)和当前时间计算一次性密码。
  5. QR代码-一种机器可读的光学标签,其中包含有关其所附着物品的信息。在这种情况下,QR码包含TOTP URI
  6. Authenticator应用程序 – Microsoft(或Google)Authenticator应用程序通过使用TOTP(和其他方法)提供了更高的安全级别。

精品

1。登录流程

下图描述了带有MFA注册和验证的登录流程。该解决方案基于TOTP。 TOTP是基于时间的一次性密码,该密码提供由REST API服务中运行的算法生成的临时密码。该算法使用秘密密钥(由REST API生成并存储在Azure AD B2C目录存储中)和当前时间戳(确保每个密码都是唯一的)的组合来生成密码(临时密码)。在注册和登录期间,用户将密码提供给Azure AD B2C以完成登录过程。秘密密钥在用户的身份验证器应用程序和REST API(存储在Azure AD B2C目录存储中)之间共享,从而使REST API可以验证密码。

2。移动设备注册流程

在首次用户登录时或首次需要MFA时(例如访问高度机密数据),Azure AD B2C自定义策略(Henceforth B2C)会检查用户是否已经注册(extension_StrongAuthenticationAppSecretKey声明存在于Azure Active Directory身份存储的用户帐户)。如果不存在,则B2C调用REST API GenerateTOTP端点以为用户生成密钥和QR码。 REST API:

  1. 读取用户登录名
  2. 生成随机密钥
  3. 创建TOTP URI(稍后请参阅URI格式)
  4. 为TOTP URI生成QR码
  5. 以base64格式返回QR码位图,并以base64格式返回生成的密钥

2.1 TOTP URI生成

URI包含以下数据,并且可能包含更多数据,例如TOTP时间(默认为30秒)和大小(默认为6位数字): -协议-otpauth:// totp -用户名:B2CDemo:someone@contoso.com -秘密密钥:F4KRXSGXYBYT7BQ5THURPPH2RQ27JGSJ -发布者:Azure AD B2C演示

以下是此类URI的示例:

otpauth://totp/B2CDemo%3asomeone%40contos.com?secret=F4KRXSGXYBYT7BQ5THURPPH2RQ27JGSJ&issuer=Azure%20AD%20B2C%20Demo

2.2 QR码扫描和验证

REST API将注册信息返回给Azure AD B2C之后。用户将转到用户旅程中指定的下一个业务流程步骤。这个编排步骤将读取QR码(以base64格式),并使用JavaScript将QR码呈现为用户可以扫描的图像。

2.3向Microsoft身份验证器添加新的身份帐户

此时,用户需要下载并安装身份验证器应用程序(Microsoft,Google或任何其他身份验证器应用程序,例如Authy应用程序)。在Microsoft Authenticator中,单击“添加帐户”,选择帐户类型,然后扫描Azure AD B2C提供的QR码。

回到Azure AD B2C,用户需要在Azure AD B2C中复制并键入密码(赢得30秒的时间范围),然后单击“继续”。

通过Azure AD B2C进行的TOTP代码2.4验证

当用户单击继续时,Azure AD B2C会调用REST API VerifyTOTP终结点。发送最终用户提供的代码,用户的秘密和比赛的最后时间(此数据来自用户的Azure AD帐户)。我们使用比赛的最后时间来防止并验证验证码已被使用。 REST API使用密钥和最后匹配时间来验证最终用户提供的代码。 如果验证码无效,则会向用户显示一个用户友好的错误,要求再次提供TOTP验证码。注意:由于TOTP代码在30秒钟内有效,因此用户可以提供新值。 Azure AD B2C将再次调用验证终结点,直到用户提供有效值为止。 下一步,Azure AD B2C将用户的密钥和上次匹配项存储在Azure Active Directory身份中

3。登录和MFA验证

  1. Azure AD检查用户是否已经注册(extension_StrongAuthenticationAppSecretKey声明存在)。如果存在,Azure AD B2C要求用户输入验证码
  2. 最终用户需要打开身份验证应用并复制TOTP验证码,然后单击“继续”。
  3. 当用户单击继续时,Azure AD B2C运行由Azure AD B2C进行的2.4 TOTP代码验证部分中描述的流程

社区帮助和支持

使用Stack Overflow获得社区的支持。首先在Stack Overflow上询问您的问题,然后浏览现有问题,看看以前是否有人问过您的问题。确保您的问题或评论都标有[azure-ad-b2c]。 如果您在示例中发现错误,请在GitHub Issues上提出问题。 要提供产品反馈,请访问Azure Active Directory B2C Feedback page

  

注意:此示例策略基于SocialAndLocalAccounts starter pack。在策略XML文件中,所有更改都用 Demo:注释标记。在需要执行演示操作部分中进行必要的更改。

答案 2 :(得分:0)

这仅适用于Azure的“自定义策略”。

请点击以下链接访问该示例。 https://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp

如果在配置给定示例时遇到任何困难,请遵循以下文章。 https://medium.com/@snkaushi_9371/enable-totp-based-multi-factor-authentication-in-azure-ad-b2c-84e967d76aa4