我对公司服务器(非Azure)上托管的ASP.NET MVC 4(.NET 4.6.1)应用程序有设计要求,以执行以下操作:
检查用户是否通过Windows身份验证进行身份验证
a)是 - 将用户指定为“已验证”
b)否 - 使用OpenAdConnect(OWIN)使用Azure Active Directory进行身份验证。
经过身份验证后,使用控制器方法等的标准[授权]属性。我已经实现了Windows和Azure AD身份验证,单独的是单独的MVC应用程序,但从未在一起。
我找到了几个描述如何混合Windows和Forms身份验证的来源,但没有一个用于此组合。
有没有人对如何实现这一目标有所了解?
答案 0 :(得分: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以访问您的应用程序。