繁体   English   中英

在后台针对Azure Active Directory进行身份验证

[英]Authenticate against Azure Active Directory in background

我有一个ASP.net(4.5)应用程序,该应用程序当前使用Identity来对用户进行身份验证。 用户必须通过登录页面提供用户名密码

除了Identity ,我还要对Azure的Active Directory进行检查。 这是由于以下事实:一些用户存储在数据库中(通过Identity验证),而其他用户将存储在Azure的Active Directory中。

理想情况下,我想重复使用用户已经输入的用户名/密码,并在后台针对Azure AD执行验证。

但是,通读Azure AD身份验证方案后 ,我找不到适合自己需求的方案。 也许我只是错过了它,或者我不完全了解场景?

我的Web应用程序是唯一重定向到Azure AD的解决方案吗?

有一种方法可以执行您想要的操作,但是我强烈建议您不要这样做。

资源所有者密码凭证流允许您使用用户名+密码+客户端ID +客户端密钥进行身份验证。

斯科特·布雷迪(Scott Brady)的文章在这里解释了反对它的大多数观点: https : //www.scottbrady91.com/OAuth/Why-the-Resource-Owner-Password-Credentials-Grant-Type-is-not-Authentication-nor-Suitable-换现代的应用程序

我不建议这样做的主要原因是,在某些情况下它不起作用:

  1. 用户密码已过期
  2. 联盟用户(MS帐户或本地AD)
  3. 用户启用了多重身份验证
  4. 您的应用程序所需的权限需要用户同意

因此,您实际上应该重定向这些用户以在Azure AD中进行身份验证。

然后,如果您返回有效的ID令牌,则说明它们已经过身份验证。

您可以做的就是在用户写完用户名后检查数据库(例如,通过AJAX调用),如果他们是Azure AD用户,请重定向他们以立即登录那里。 另一个是提供一个单独的登录按钮,其中包含诸如“使用Office 365登录”之类的文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM