首页 文章

带有MVC Client的Identity Server在AWS Load Balancer后面运行

提问于
浏览
0

我目前在我的AWS服务上进行了以下设置

  • 在Windows 2012 R2上的IIS上运行的MVC客户端应用程序(在http下)

  • 在Linux上的Kestrel下运行的Identity 4安全服务(在http下)

我还使用AWS负载均衡器来处理SSL验证等,以便在HTTPS上运行应用程序 .

MVC客户端应用程序和安全服务也位于不同的面向公众的URL上 .

我面临的问题如下:

当用户浏览MVC客户端上的受保护操作(https://mywebsite.net)时,它们将通过其公共地址(https://auth.mywebsite.net)重定向到我的安全服务 . 安全服务将客户端应用程序的地址视为http://mywebsite.net,因此客户端记录设置为客户端重定向uri为http://mywebsite.net/signin-oidc,以允许成功验证客户端 .

一旦用户成功登录,他们就会被重定向回客户端应用程序的signin-oidc endpoints ,但这是在HTTP上完成的:(这会导致用户浏览器出现安全警告,因为他们从HTTPS转到HTTP .

有没有办法(在 balancer 器后面)可以指示安全服务重定向到HTTPS而不是HTTP .

要么

有没有办法让客户端传递用户访问的URL(https://mywebsite.net),而不是 balancer 器输出(http://mywebsite.net)用于客户端验证 .

任何有关这方面的帮助将不胜感激 .

问候,

斯图尔特弗格森

1 回答

  • 0

    请参阅this链接 . 请查看身份服务器4上的配置,并确保您的redirecturi设置正确 .

    我特指这段代码:

    在身份服务器4上:Config.cs

    // MVC客户端使用隐式流程新客户端{ClientId =“mvc”,ClientName =“MVC Client”,

    AllowedGrantTypes = GrantTypes.Implicit,
                    ClientSecrets = { new Secret("373f4671-0c18-48d6-9da3-962b1c81299a".Sha256()) },
                    ClientUri="http://localhost:5500",
                    RedirectUris = {"http://localhost:5001/signin-oidc",},
                    LogoutUri = "http://localhost:5001/signout-oidc",
                    PostLogoutRedirectUris = { "http://localhost:5001/signout-callback-oidc" },
    
                    AllowOfflineAccess = true,
                    AllowedScopes =
                    { 
                        "api1",
                        "profile",
                        "openid"
                    }
                },
    

相关问题