【问题标题】:How to mix Azure AD authentication and Windows authentication in MVC 4 app?如何在 MVC 4 应用程序中混合 Azure AD 身份验证和 Windows 身份验证?
【发布时间】:2016-07-29 19:56:16
【问题描述】:

我对托管在公司服务器(非 Azure)上的 ASP.NET MVC 4 (.NET 4.6.1) 应用程序有以下设计要求:

检查用户是否通过 Windows 身份验证进行身份验证

a)是 - 将用户指定为“已验证”

b)否 - 使用 OpenIdConnect (OWIN) 通过 Azure Active Directory 进行身份验证。

一旦通过身份验证,请在控制器方法等上使用标准的 [Authorize] 属性。我已经实现了 Windows 和 Azure AD 身份验证单独是单独的 MVC 应用程序,但从不在一起。

我找到了几个描述如何混合 Windows 和 Forms 身份验证的资源,但没有一个资源用于这种组合。

有人对如何实现这一点有见解吗?

【问题讨论】:

  • 我有一个模糊的记忆,如果你做文件 |新建项目并创建一个新的 asp.net mvc 项目,该向导允许您创建一个具有多种身份验证模式的空白项目。
  • 我检查了这一点,在 VS2015 Update 3 中,您似乎只能在创建项目时选择一种身份验证模式。

标签: asp.net .net asp.net-mvc-4 windows-authentication azure-active-directory


【解决方案1】:

一年前我有类似的要求,我的方法是:

用户被重定向以输入他们的 AD 凭据 (https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-active-directory-authentication/)

一旦他们成功登录 AD,您将获得一个令牌。

然后我使用刚刚获得的令牌代表他们调用 Azure AD API。我只想调用 /me 端点,它将返回用户个人详细信息。

通过上述回复,我只需要检查电子邮件地址是否与最初请求的电子邮件地址匹配。

如果匹配,则表示用户已成功通过 AD 验证。

然后您可以继续并向该用户颁发令牌或 cookie 以访问您的应用程序。

【讨论】:

  • 我的要求和你的略有不同。当用户访问该站点时,我想确定他们是否已经通过 Windows 身份验证,如果是,则不显示 Azure 广告登录。如果它们未通过 Windows 身份验证,则重定向到 Azure AD 登录。我有通过 OWIN 工作的 Azure AD 身份验证。现在我正在尝试弄清楚如何使用 Windows 身份验证来实现混合模式。
猜你喜欢
  • 2015-07-18
  • 1970-01-01
  • 2016-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
相关资源
最近更新 更多