我有一个ASP.net(4.5)应用程序,目前使用Identity
来验证用户身份。用户必须通过登录页面提供用户名和密码。
除了Identity
之外,我还想对 Azure的Active Directory 进行检查。这是因为某些用户存储在数据库中(通过Identity
进行验证),其他用户将存储在Azure的Active Directory中。
理想情况下,我想重新使用用户已输入的用户名/密码,并在后台对Azure AD执行验证。
然而,通过Authentication Scenarios for Azure AD阅读,我无法找到符合我需求的场景。也许我只是错过了它,或者我完全不理解这些情景?
我的Web应用程序的唯一解决方案是重定向到Azure AD吗?
答案 0 :(得分:1)
有办法做你想做的事,但我强烈建议你不要这样做。
资源所有者密码凭据流允许您使用用户名+密码+客户端ID +客户端密钥进行身份验证。
斯科特布拉迪在这里的文章解释了大多数反对它的观点:https://www.scottbrady91.com/OAuth/Why-the-Resource-Owner-Password-Credentials-Grant-Type-is-not-Authentication-nor-Suitable-for-Modern-Applications我不推荐它的主要原因是因为这里的情况不起作用:
因此,您确实应该将这些用户重定向到Azure AD中进行身份验证。
然后,如果您获得有效的ID令牌,则它们已经过身份验证。
您可以做的是在用户完成用户名(例如通过AJAX调用)后检查数据库,如果他们是Azure AD用户,则将其重定向到立即登录。另一种方法是提供一个单独的登录按钮,其中包含"使用Office 365"。
登录