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

Integrate Azure Multi-Factor-Authentication in website to authenticate its users

我有一个网站(内置于 PHP),网络服务器的 OS 是来自 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 东西(使用弹出窗口 window)?

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

提前致谢, 赫里

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

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

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

不,你不能!对于身份验证,您需要先在您的 Azure 门户上定义一个用户。

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

由于您的网站上有数千名用户,因此您可以批量添加他们。 为避免手动注册,您可以使用 Azure PowerShell command. If you add all of your user on a 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 东西(使用弹出 window)?

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

It is not recommend to use the Resource owner password credentials flow ROPC in this scenario. It is more like phishing site if the users doesn't trust your web app.

The resource owner password credentials (i.e., username and password) can be used directly as an authorization grant to obtain an access token. The credentials should only be used when there is a high degree of trust between the resource owner and the client (e.g., the client is part of the device operating system or a highly privileged application), and when other authorization grant types are not available (such as an authorization code)

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

希望它能帮助您解决问题。谢谢!