具有多个实例的IdentityServer4

时间:2019-04-18 15:38:35

标签: docker identityserver4

我有两个Docker容器,它们的OAuth Server具有与Docker Swarm管理的IdentityServer4相同的OAuth Server映像(我不在乎)。

问题在于令牌有时有效,有时无效(401未经授权)。

我们尝试仅使一个实例运行,并且问题已解决,但我们需要两个实例。

如何配置服务器的多个实例?

注意:

  • 我们正在使用AddDeveloperSigningCredential()。我不知道它是否会影响。
  • 这是一个ASPNETCORE_ENVIRONMENT=Development的测试环境

2 个答案:

答案 0 :(得分:0)

您可以根据需要拥有任意数量的Identity Server 4 Web应用程序实例:

  • 共享签名凭据(如果您使用的是AddDeveloperSigningCredential(),就可以了)
  • 使用相同的发行者uri发行令牌(您可以在{baseUrl}/.well-known/openid-configuration页上检查身份服务器4的两个实例上的发行者uri是否相同)

就令牌验证而言,其他任何事情都不重要。通常,令牌验证涉及下载描述授权提供者和公钥的发现文档信息,以针对受尊重的发行者验证令牌的签名。

答案 1 :(得分:0)

问题在于IdentityServer的两个实例中的tempkey.rsa文件都不相同。

我必须使用构建操作将文件配置为“始终复制”,以包含在构建项目中,并因此包含在docker映像中。

我知道在生产中不应以这种方式使用它,但是迫切需要演示。