我已经在azure中创建了一个Web应用程序,并且我正在使用Azure AD身份验证(OpenID-Connect)对我的Web应用程序进行身份验证。但是我无法在几台机器上对Web应用程序进行身份验证。
在某些计算机上,它(AAD身份验证)可以在谷歌浏览器中使用,而不能在IE,Edge,Firefox中使用。 在所有浏览器中都无法正常工作。
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = Config.ClientId,
ClientSecret = Config.ClientSecret,
Authority = Config.Authority,
PostLogoutRedirectUri = Config.PostLogoutRedirectUri,
RedirectUri = Config.PostLogoutRedirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications()
{
}
});
}
当我尝试使用Azure AAD登录时。我收到错误消息,例如“我们无法登录。请重试。”
没有错误登录浏览器控制台
启用了Azure身份验证/授权
答案 0 :(得分:2)
问题:只能在谷歌浏览器中使用,而不能在IE,Edge,Firefox,Safari中使用。在所有浏览器中都无法正常运行。
如何解决此问题: 该问题已在ASP.NET核心中修复。若要解决此问题,您可以升级您的应用程序以使用ASP.NET Core。如果您必须继续使用ASP.NET,请执行以下操作: 将应用程序的Microsoft.Owin.Host.SystemWeb软件包至少更新为版本,并修改代码以使用新的cookie管理器类之一,例如以下内容:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies",
CookieManager = new Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager()
});
答案 1 :(得分:1)
经过研究,我发现您需要使用 HTTPS ,并在 Startup.cs 文件下编写这段代码:
using Microsoft.Owin.Host.SystemWeb;
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions {
CookieManager = new SystemWebCookieManager()
});
...
如果使用的是Azure App,请按照以下步骤强制应用程序始终使用https:
登录到Azure门户。
导航到App Services。
单击报告的应用程序。
在“设置”部分,单击“ TLS / SSL设置”。
在“协议设置”中,将“仅HTTPS”设置为“开”。
答案 2 :(得分:0)
我遇到了相同的错误消息。但就我而言,我在控制台中看到了我的应用程序的/ signin-oidc(302)上的许多调用。
问题是我从ConfigureServices方法中删除了以下行:
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
更换后一切正常。
HTH,J。