我到目前为止的本周:
在过去的几天里,我致力于将IdentityServer4 .net核心应用程序部署到Azure Kubernetes群集(AKS)。经过几个问题,一切似乎都正常。我们之所以不使用内置的http路由功能,是因为我们出于某些原因不希望使用子域进行路由。启用http路由后,我们似乎无法让letencrypt工作。我们正在使用https://通过nginx访问AKS中托管的服务。

无论如何..
当我将我们的mvc客户端应用程序之一部署到AKS时出现了问题。客户端的主页按预期工作。当客户端将我重定向到idsrv4服务的登录页面,并且我使用自己的凭据登录时:重定向循环启动。我知道这意味着authcookies设置不正确。

问题
我发现身份验证往返可在Google Chrome和Firefox中使用,在这些浏览器中没有重定向循环。 Edge,IE和Safari无法正常工作,并在重定向到signin-oidc时导致重定向循环。

到目前为止的发现:

  • 我使用本地docker在Windows安装中测试了mvcclient应用程序。使用HTTP连接-而非https-,往返在所有浏览器中均有效
  • 当我将Fiddler与HTTPS解密结合使用以使用远程AKS中托管的服务来诊断往返时:往返在所有浏览器中均有效
  • 当我断开Fiddler的连接并测试远程AKS中托管的服务时,往返在Edge,IE和Safari中不起作用。

  • 有谁知道我如何配置Nginx以支持所有浏览器来设置Cookie并转发正确的 header ?在这种情况下对identityserver4有什么要求?我的clientapplication或identityserver4中是否需要任何其他配置rin nginx或cookieauthentication(除了在startup.cs的identityserveroptions中设置publicorigin之外)?

    最佳答案

    在我重新安装了新的AKS群集并尝试使用标准的addon-http-routing使Let's Encrypt正常工作之后,我尝试了一下,最后想到:为什么我重定向到/ signin- oidc在Edge和IE中注册为HTTP / 2。事实证明,这是我上周遇到的一系列问题中的主要部分……无论如何:我进行了一些研究,并弄清楚了如何将配置的某些部分更新为内置的入口 Controller (addon-http -路由)。适用于使用AKS(Azure Kubernetes服务)时遇到signin-oidc循环的任何人。您可以覆盖AKS中提供的标准http路由插件的配置,并手动禁用http / 2(默认情况下启用!)。

    因为我对Web上几乎没有任何信息可以在Azure上与Let's Encrypt和addon-http-routing结合使用来配置AKS群集感到沮丧,并且因为我找不到有关在AKS中部署IdentityServer4的任何信息Azure中的群集。我准备了一些.yaml文件(我用来启动和运行所有文件的所有文件),用注释扩展了它们,并将其发布给希望在Azure Kubernetes服务中安全托管IdentityServer4的任何人。
    这是我有史以来的首次公开募捐,尽管数额不大。如果有人在使用我的基本Readme.txt实现.yaml文件时遇到问题:请让我知道,我会看到我能做什么。

    https://github.com/leonvandebroek/Identityserver4-deployments/tree/master/Azure%20Kubernetes%20Service

    关于docker - Nginx后面的identityserver4与https和letencrypt在AKS(azure kubernetes)中阻止mvcclient出于某些原因设置cookie,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52775332/

    10-09 00:33