Azure Active Directory 组织身份验证机制

Azure Active Directory Organizational Authentication Mechasnim

我最近开始开发 ASP.NET MVC 网络应用程序,它在 Azure Active Directory 上使用组织身份验证。

我遵循了这个教程:http://www.asp.net/identity/overview/getting-started/developing-aspnet-apps-with-windows-azure-active-directory

并且我成功地部署了应用程序并且它 运行 正确。

但是,我仍然不确定用于提供Active Directory 组织身份验证的Federation WS 的底层工作机制。

当网站 运行 呈现主页之前,应用程序立即将用户重定向到 Microsoft 登录站点。我无法在应用程序中找到任何实现此目的的代码。我试图在 Global.asax 中注释掉 IdentityConfig 方法,但重定向仍在发生。

我想知道应用程序何时以及如何启动身份验证过程,以及在用户单击“登录”超链接之前抑制身份验证过程是否可能且安全。

要将 AD 身份验证添加到 ASP.NET WebApps/VNext,您可以使用新的 ADAL 库,这里有很多示例 https://github.com/AzureADSamples. You can use this for example: https://github.com/AzureADSamples/WebApp-WSFederation-DotNet,这完全由用户操作驱动。

我发现解决方案非常简单。只需删除:

<system.web>
    <!-- remove/comment out
    <authorization>
      <deny users="?" />
    </authorization>
    --> 
</system.web>

在 Web.config 中。这将告诉 WSFederationAuthenticationModule 不要执行重定向事件并允许 public 页面中的匿名用户。

如果您在 ASP.NET MVC 中进行开发,则在需要身份验证时将 [Authorize] 属性应用于操作或控制器。

如果您在 ASP.NET Web 表单中开发,请添加以下内容:

<configuration>

<!-- Add the following configuration-->  
<location path="Admin">
 <system.web>
  <authorization>
    <deny users="?" />
  </authorization>
 </system.web>
</location>

</configuration>

以上配置将强制用户登录 Azure Active Directory,以便在您的 Web 应用程序中访问 'Admin' 的相对位置路径(例如 http://localhost:8080/Admin)。