在我开发应用程序时,有没有办法禁用或绕过Azure Active Directory?我已经尝试了以下内容,它仍然会重定向到AAD进行身份验证。
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
//IdentityConfig.ConfigureIdentity(); commented out for dev. 12/12/2014
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
//private void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender, RedirectingToIdentityProviderEventArgs e)
//{
// if (!String.IsNullOrEmpty(IdentityConfig.Realm))
// {
// e.SignInRequestMessage.Realm = IdentityConfig.Realm;
// }
//}
我注释掉了IdentityConfig.cs中的方法,仍然重定向到AAD。
建议很多。
这是我的web.config:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="ida:FederationMetadataLocation" value="https://login.windows.net/accountname.onmicrosoft.com/FederationMetadata/2007-06/FederationMetadata.xml" />
<add key="ida:Realm" value="https://accountname.onmicrosoft.com/application.WebUI" />
<add key="ida:AudienceUri" value="https://accountname.onmicrosoft.com/application.WebUI" />
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=+mykey==" />
</appSettings>
<system.webServer>
<modules>
<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Extensibility.Web.RequestTracking.WebRequestTrackingModule, Microsoft.ApplicationInsights.Extensibility.Web" preCondition="managedHandler" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" />
<wsFederation passiveRedirectEnabled="true" issuer="https://login.windows.net/onalabama.onmicrosoft.com/wsfed" realm="https://onalabama.onmicrosoft.com/Procurement.WebUI" requireHttps="true" />
</federationConfiguration>
</system.identityModel.services>
答案 0 :(得分:1)
此解决方案不是很通用,但如果您要部署到Azure网站,可能只是想要您想要的。在允许用户访问您的站点之前,您可以要求Azure网站使用AAD强制执行身份验证。
基本上,您可以在代码中没有任何AAD的情况下进行本地开发,也可以采用这种方式进行部署。在Azure门户的CONFIG选项卡上配置身份验证后,将为Azure网站配置身份验证 - 无需代码。
这是一篇很好的文章:http://azure.microsoft.com/blog/2014/11/13/azure-websites-authentication-authorization/
目前存在一些限制(请参阅文章),但我已经在一些情况下发现了这一点。