登录到 Microsoft 登录页面后 Azure AD 卡住了
Azure AD gets stuck after login into microsoft login page
我是 Azure AD 新手。
我有一个 ASP.Net 与 Azure AD 身份验证集成的 Azure 应用程序。我已将应用程序部署在 azure cloud 上,并将其配置为 运行 on http。有时,在登录屏幕中单击“登录”按钮后,Azure AD 会卡住,并且不会重定向到我的应用程序。
我在 github 上找到了在 CookieAuthenticationOptions 中使用 CookieSecure = CookieSecureOption.SameAsRequest 的建议。我尝试这样做并在 azure 中部署解决方案,但仍然无法正常工作。下面是来自 Startup.cs
的代码片段
public void ConfigureAuth(IAppBuilder app)
{
string clientId = GetConfigValue("ida_ClientId");
string aadInstance = GetConfigValue("ida_AADInstance");
string tenant = GetConfigValue("ida_Tenant");
string domain = GetConfigValue("ida_Domain");
string authority = GetConfigValue("ida_Authority");
string postLogoutRedirectUri = GetConfigValue("ida_RedirectUri");
bool devEnvironment = Convert.ToBoolean(GetConfigValue("DevEnvironment"));
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieHttpOnly = true,
CookieSecure = devEnvironment ? CookieSecureOption.SameAsRequest : CookieSecureOption.Always,
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
}
private string GetConfigValue(string key)
{
if (RoleEnvironment.IsAvailable)
{
return RoleEnvironment.GetConfigurationSettingValue(key);
}
else
{
return ConfigurationManager.AppSettings[key];
}
}
请帮我解决这个问题。提前致谢。
如线程中所述,如果您使用 HTTP 然后重定向到 HTTPS,通常会出现此问题。请确保您一直使用 HTTPS 以避免此问题。
此外,如果您在 Azure 中发布并且使用 OWIN 中间件,请确保通过禁用 'Authentication / Authorization' 功能来禁用“express authentication”。
我是 Azure AD 新手。
我有一个 ASP.Net 与 Azure AD 身份验证集成的 Azure 应用程序。我已将应用程序部署在 azure cloud 上,并将其配置为 运行 on http。有时,在登录屏幕中单击“登录”按钮后,Azure AD 会卡住,并且不会重定向到我的应用程序。
我在 github 上找到了在 CookieAuthenticationOptions 中使用 CookieSecure = CookieSecureOption.SameAsRequest 的建议。我尝试这样做并在 azure 中部署解决方案,但仍然无法正常工作。下面是来自 Startup.cs
的代码片段public void ConfigureAuth(IAppBuilder app)
{
string clientId = GetConfigValue("ida_ClientId");
string aadInstance = GetConfigValue("ida_AADInstance");
string tenant = GetConfigValue("ida_Tenant");
string domain = GetConfigValue("ida_Domain");
string authority = GetConfigValue("ida_Authority");
string postLogoutRedirectUri = GetConfigValue("ida_RedirectUri");
bool devEnvironment = Convert.ToBoolean(GetConfigValue("DevEnvironment"));
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
CookieHttpOnly = true,
CookieSecure = devEnvironment ? CookieSecureOption.SameAsRequest : CookieSecureOption.Always,
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = postLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
}
private string GetConfigValue(string key)
{
if (RoleEnvironment.IsAvailable)
{
return RoleEnvironment.GetConfigurationSettingValue(key);
}
else
{
return ConfigurationManager.AppSettings[key];
}
}
请帮我解决这个问题。提前致谢。
如线程中所述,如果您使用 HTTP 然后重定向到 HTTPS,通常会出现此问题。请确保您一直使用 HTTPS 以避免此问题。
此外,如果您在 Azure 中发布并且使用 OWIN 中间件,请确保通过禁用 'Authentication / Authorization' 功能来禁用“express authentication”。