w00*_*977 6 c# asp.net-mvc docker identityserver4
我正在尝试让一个 MVC Core Web 应用程序与 Identity Server 和 Docker 一起工作。以下是我采取的步骤:
1) 下载快速入门:https : //github.com/IdentityServer/IdentityServer4.Samples/tree/dev
运行项目并查看它按预期工作。现在尝试将 Docker 添加到等式中:
2) 打开解决方案。右键单击:IdentityServerWithAspNetIdentity 并选择:添加容器编排支持(然后是 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"
Run Code Online (Sandbox Code Playgroud)
5) 尝试运行该项目,看看会发生什么。当我尝试访问:主页/安全;而不是被转发到登录网页;我看到这个错误:'Unable to obtain configuration from:http://localhost:5000/.well-known/openid-configuration'.
我相信这是因为 Docker 容器看不到 localhost:5000。因此,在阅读了一些博客文章后;我试试这个:
6) 在 MVCClient 中打开启动并更改:
options.Authority = "http://localhost:5000";
Run Code Online (Sandbox Code Playgroud)
对此:
options.Authority = "http://identityserverwithaspnetidentity:80";
Run Code Online (Sandbox Code Playgroud)
但是,我只看到一个 DNS 错误(我相信是 404)。在这种情况下,我需要做什么才能让 Identity Server 与 MVC Web 应用程序一起工作?
到目前为止,我已经看过了:如何从 docker 机器内部和外部使用 IdentityServer4?在这里:Identity Server 4 和 docker。然而,到目前为止,答案并没有帮助。
正如您已经在我的帖子中注意到的那样,我也遇到了类似的问题。我所做的是在我的(API 端)上配置以下内容IdentityServerAuthenticationOptions:
1)设置正确Autority,在你的情况下我会说它应该是http://identityserverwithaspnetidentity/
2)配置ApiName(这是ApiResource的名称)
3)也许也配置JwtBackChannelHandler(我不确定这是否需要)
4)如果您不使用 Https,我会停用它(我不记得这是否是明确需要的:设置RequireHttpsMetadata为 false)
在客户端我做了以下事情
1) 将其设置ValidateIssuerName为 false
2) 如果您不使用 Https,也许还可以通过设置RequireHttps为 false 来停用它(我不记得这是否是明确需要的)
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |