Azure Active Directory组织身份验证Mechasnim

时间:2015-07-24 04:47:48

标签: asp.net-mvc azure active-directory asp.net-identity ws-federation

我最近开始开发一个在Azure Active Directory上使用组织身份验证的ASP.NET MVC Web应用程序。

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

我设法部署了应用程序并且运行正常。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

。这将告诉WSFederationAuthenticationModule不要执行重定向事件并允许公共页面中的匿名用户。

如果在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以访问“管理员”的相对位置路径。在您的网络应用程序中(例如http://localhost:8080/Admin)。