在网站中集成Azure多重身份验证以对其用户进行身份验证

时间:2019-04-03 14:16:16

标签: azure azure-active-directory multi-factor-authentication

我有一个网站(用PHP构建),Web服务器的操作系统是来自AWS EC2的Linux(Ubuntu),

我想将Azure MFA集成到网站中以使用2FA(2因子身份验证)对用户进行身份验证,

我使用Node JS https://github.com/Azure-Samples/active-directory-node-webapp-openidconnect

检查了此代码

这是Azure的示例应用程序,用户可以在其中使用Azure凭据登录示例应用程序,并且可以从Azure提取配置文件信息,

对我来说很好,但是:

1)首先需要在Active Directory(AD)中添加用户,这样我可以直接对用户进行身份验证,而无需在Azure AD上注册吗? 另外,我在网站上有3000多个活跃用户,我需要全部注册吗?

2)用户在身份验证过程中完全重定向到Microsoft网站,是否有任何方法可以不进行重定向,也可以使用一些UI东西(使用弹出窗口)?

任何帮助或建议对我都会有所帮助,

预先感谢, 哈里

1 个答案:

答案 0 :(得分:2)

1。它将需要首先在Active Directory(AD)中添加用户吗?

是的,对!首先,您需要在Azure门户上添加用户,然后他们需要进行身份验证,同时他们将尝试访问每个操作中的任何内容。

2。我可以直接对用户进行身份验证,而无需在Azure AD上注册吗?

不,你不能!为了进行身份验证,您需要首先在Azure门户上定义用户。

3。我的网站上有3000多个活跃用户,我需要     全部注册吗?

由于您的网络端有成千上万的用户,因此您可以将其批量添加。 为了避免手动注册,您可以使用Azure PowerShell命令对其进行广告。如果将所有用户添加到CSV文件中,则可以通过以下脚本轻松地将其添加:

拥有所有用户CSV文件后,您可以像以下格式一样运行此New-AzureADUser命令。

foreach($user in import-csv "E:\userinfo.csv") 
{ 
     Write-Host "Processing item with.. UserName="$user.DisplayName

   # Make use of variables like $user.DisplayName and so on in your commands here..
   # New-AzureADUser -DisplayName $user.DisplayName ... and so on..
}

您可能会以类似的方式详细查看引荐文档here

3。用户在身份验证期间完全重定向到Microsoft网站     流程,是否有任何方法可以不进行重定向,或使用某些UI     东西(使用弹出窗口)?

由于您在此流程中使用OpenIdConnect协议进行身份验证,因此在身份验证过程中无法停止Microsoft网站上的重定向。但是有办法 使用Resource owner password credentials flow

  

不建议使用 资源所有者密码凭据   在这种情况下流ROPC 。如果用户更像钓鱼网站   不信任您的网络应用。

     

资源所有者密码凭据 (即用户名和   密码)可以直接用作授权授予,以获取   访问令牌。凭证仅在存在高级别时才使用   资源所有者和客户之间的信任度(例如,   客户端是设备操作系统的一部分,或者是特权很高的客户端   申请),以及其他授权类型不是   可用(例如授权码)

当我们选择 OAuth 2授权框架的交互式流程时,期望重定向到身份提供者,因为这是这样工作的!

希望它会帮助您弄清楚您的解决方法。谢谢!