gpt4 book ai didi

c# - 集成身份服务器; Docker 和 MVC 核心(Web 客户端)

转载 作者:行者123 更新时间:2023-11-30 17:28:09 25 4
gpt4 key购买 nike

我正在尝试让 MVC 核心 Web 应用程序与 Identity Server 和 Docker 一起工作。以下是我采取的步骤:

1) 下载快速入门:https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev

运行项目并看到它按预期工作。现在尝试将 Docker 添加到等式中:

2) 打开解决方案。右键单击:IdentityServerWithAspNetIdentity 并选择:Add Container Orchestration Support(然后是 Docker Compose,然后是 Linux)。3) 右键单击​​ MVCClient 并选择:添加容器编排支持(然后是 Docker Compose,然后是 Linux)。4) 将 Docker-compose.override.yml 更改为此(请注意,我只将每个服务的端口从 80 更改为 5002:80 和 5000:80):

version: '3.4'

services:
mvcclient:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "5002:80"

identityserverwithaspnetidentity:
environment:
- ASPNETCORE_ENVIRONMENT=Development
ports:
- "5000:80"

5) 尝试运行项目,看看会发生什么。当我尝试访问:Home/Secure;而不是转发到登录网页;我看到此错误:'无法从以下位置获取配置:http://localhost:5000/.well-known/openid-configuration'。

我相信这是因为 Docker 容器看不到 localhost:5000。因此,在阅读了几篇博文之后;我试试这个:

6) 在 MVCClient 中打开启动并更改它:

options.Authority = "http://localhost:5000";

为此:

options.Authority = "http://identityserverwithaspnetidentity:80";

但是,我只看到一个 DNS 错误(我相信是 404)。在这种情况下,我需要做什么才能让 Identity Server 与 MVC 网络应用程序一起工作?

到目前为止,我已经看过这里:How can I use IdentityServer4 from inside and outside a docker machine?在这里:Identity Server 4 and docker .然而,到目前为止,答案并没有帮助。

最佳答案

正如您已经在我的 thread 上注意到的那样我有一个类似的问题。我所做的是在我的 IdentityServerAuthenticationOptions(API 端)上配置以下内容:

1) 设置正确的 Autority,在你的情况下我会说它应该是 http://identityserverwithaspnetidentity/
2) 配置ApiName(这是ApiResource的名称)
3)也许还配置JwtBackChannelHandler(我不确定是否需要)
4) 如果您不使用 Https,我会停用它(我不记得是否明确需要这样做:将 RequireHttpsMetadata 设置为 false)

在客户端我做了以下操作

1) 将ValidateIssuerName设置为false
2) 如果您不使用 Https,也可以通过将 RequireHttps 设置为 false 来停用它(我不记得是否明确需要这样做)

关于c# - 集成身份服务器; Docker 和 MVC 核心(Web 客户端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53468074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com