Asp.net core 需要使用identity server 4在ios(safari和chrome)上诊断无限循环身份验证的指南
我在identity server 4(部署为Azure应用程序服务)和移动设备上的身份验证方面遇到了一个奇怪的问题。我正在使用OpenId connect.NET core MVC客户端对我的身份服务器(配置了AspNetIdentity)进行身份验证。这在桌面浏览器上运行绝对正常,但在iphone上,当我登录时,它会进入一个无限循环,在id服务器和客户端(使用mobile safari或chrome)之间返回第四个循环 如果我停止循环并中断,然后导航到该站点,我将通过身份验证,这表明cookie已经发出 奇怪的是,我有一个几乎相同的设置,但没有这种行为的另一个系统。由于没有错误,而且我只能在我的登台环境中的移动设备上复制,我发现很难找出诊断问题的步骤,或者我应该在哪里查找 我不会发布大量的声明或任何会让饼干膨胀的东西 这与identity server 3的问题几乎相同:Asp.net core 需要使用identity server 4在ios(safari和chrome)上诊断无限循环身份验证的指南,asp.net-core,identityserver4,openid-connect,Asp.net Core,Identityserver4,Openid Connect,我在identity server 4(部署为Azure应用程序服务)和移动设备上的身份验证方面遇到了一个奇怪的问题。我正在使用OpenId connect.NET core MVC客户端对我的身份服务器(配置了AspNetIdentity)进行身份验证。这在桌面浏览器上运行绝对正常,但在iphone上,当我登录时,它会进入一个无限循环,在id服务器和客户端(使用mobile safari或chrome)之间返回第四个循环 如果我停止循环并中断,然后导航到该站点,我将通过身份验证,这表明cook
任何关于我应该在这里查找的内容的指针都会很好。如果使用默认配置,iOS12 Safari中的一些更改会中断oidc登录。 详情如下: 如果您使用的是ASP.NET核心标识,则通过以下方式禁用保护: 使用以下代码配置cookie 如果您使用的是没有ASP.NET核心标识的cookie身份验证 您可以使用以下代码关闭保护 如果使用外部OIDC提供程序,则可以避免 通过将提供商使用的响应模式从POST更改为 GET请求,使用以下代码。并非所有提供商都可以支持 这个 _请注意,在进行这些更改时,将删除对所有用户和所有浏览器的保护。你应该确保你的所有行动 通过构建CSRF防伪机制保护状态更改 进入ASP.NET内核
由此引起的:干杯@JoeAudette,这是一个很好的阅读,我会看看我能用这些信息做些什么。非常感谢,这让我今天非常疯狂!这很有效@JoeAudette,救生员谢谢你。如果你想得到堆栈溢出点,你可以将其作为答案。我已经发布了详细信息作为答案,谢谢!
services.ConfigureExternalCookie(options =>
{
// Other options
options.Cookie.SameSite = SameSiteMode.None;
});
services.ConfigureApplicationCookie(options =>
{
// Other options
options.Cookie.SameSite = SameSiteMode.None;
});
services.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
// Other options
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None;
});
.AddOpenIdConnect("myOIDProvider", options => {
// Other options
options.ResponseType = "code";
options.ResponseMode = "query";
};