【问题标题】:Integrate Azure Multi-Factor-Authentication in website to authenticate its users在网站中集成 Azure 多重身份验证以对其用户进行身份验证
【发布时间】:2019-04-03 14:16:15
【问题描述】:

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

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

提前致谢, 赫里

【问题讨论】:

  • 看看这个答案,如果您有任何疑问,请告诉我。谢谢
  • 感谢您的回答,有一个关于用户的问题,假设我的网站上有一个用户的电子邮件a@a.com,我可以在 AD 中注册一个具有相同电子邮件 ID 的用户吗?以便我可以链接事物,我应该在哪个字段中存储电子邮件?
  • 在 Azure Active Directory (Azure AD) B2C 中,您可以使用不同类型的帐户。 Azure Active Directory、Azure Active Directory B2B 和 Azure Active Directory B2C 共享可以使用的用户帐户类型,您可以在这里docs.microsoft.com/en-us/azure/active-directory-b2c/… ||你也可以看看docs.microsoft.com/en-us/azure/active-directory/b2b/… ||只要确定哪一个符合您的要求。如果您有任何疑问,请告诉我。谢谢
  • 好的,非常感谢,我去看看Azure B2C,
  • 非常感谢,有什么问题可以问。快乐编码!

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


【解决方案1】:

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

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

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

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

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

由于您的 Web 端有数千名用户,您可以通过批量操作添加他们。 为避免手动注册,您可以使用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 授权框架的交互式流程时,会重定向到身份提供者,因为它是这样工作的!

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

【讨论】:

  • 是否有可用于实现 ROPC 的 SDK?
  • @HerryShawn 我猜它不需要任何 SDK。它的实现非常简单易懂。这是给你的 git hub 示例github.com/azure-samples/… ||在实施 ROPC 之前,我建议您阅读此官方文档docs.microsoft.com/en-us/azure/active-directory/develop/… ||特别重要的注意事项。不过,如果您需要代码示例,请告诉我,我会更新我的答案。谢谢。
  • 嗨,@Md Farid,我查了 B2C,看来 B2C 是符合我要求的东西,但是我可以只通过 B2C 实现登录流程吗?
  • 这意味着您要自定义您的 b2c 登录页面?
  • 是的,我想自定义登录页面以隐藏/显示一些功能,另外请告诉我是否有一些 API 可以在 AD 中添加新用户?
猜你喜欢
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 2017-09-04
  • 2021-10-26
  • 2019-05-29
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多