【问题标题】:identity server multiple issues after deployment部署后身份服务器出现多个问题
【发布时间】:2020-11-17 19:09:33
【问题描述】:

我目前的设置是这样的。整个项目是使用这里的官方文档构建的 - https://identityserver4.readthedocs.io/en/latest/

  1. API 服务器
  2. 具有本地登录、google 登录和 github 登录的身份验证服务器
  3. 基于控制台的 c# 客户端
  4. 基于 JS 的客户端
  5. 基于 MVC 的客户端。

(全部,如官方文档中所述)

在本地,它们都运行良好。能够登录,访问api端点,注销,重定向,整个事情都很顺利。

我已将所有 5 个部署到五个不同的 azure Web 应用程序。它们都有可供使用的标准 xyz.azurewebsites.net 域。现在,我遇到了一些问题。 控制台 C# 客户端能够与部署的身份验证服务器对话,使用身份验证服务器上的本地帐户收集令牌,并调用部署的 API 服务器。基于此,我假设 api 服务器和 auth 服务器应该携手合作。

问题 #1 - JS 客户端一直在说

'The login is blocked because of CORS Missing Allow Origin '

问题 #2 - MVC 客户端加载身份验证服务器,然后身份验证服务器给我这个错误。

Sorry, there was an error : unauthorized_client
Request Id: 80005c0f-0000-eb00-b63f-84710c7967bb

注意:我在身份验证服务器上设置了 CORS 策略,这两个客户端都在客户端定义下,如下所示。我不太关心保持身份验证服务器处于打开状态,所以不要介意是否有任何域都可以调用身份验证服务器。

AllowedCorsOrigins =     { "*.*" },

另请注意:我在部署之前在代码中设置了 URL。所有 loclahost:port number 行都已正确替换为相应的现已发布的 URL。

那么,我在这里错过了什么?

更新 1

我能够解决 CORS 问题。已在此处发布另一个问题的答案。

Not able to enable CORS for identity server 4 in asp.net core

更新 2

所以,现在,JS 客户端和 MVC 客户端都给出了相同的错误。

抱歉,出现错误:未授权客户端 请求编号:80005c0f-0000-eb00-b63f-84710c7967bb

更新 3

我打开了一个包含日志详细信息的问题。

https://github.com/IdentityServer/IdentityServer4/issues/4691

【问题讨论】:

    标签: asp.net-core identityserver4


    【解决方案1】:

    我不确定这是否算作答案,但发布我自己的问题,因为它可能对其他人有所帮助。此外,这只是目前的猜测。

    我发现重定向永久存储在我用于 EF 迁移的数据库中。这意味着,内存中的本地重定向无论如何都会被数据库存储的迁移覆盖。我相信这是问题所在。

    我还意识到控制台应用程序运行良好,因为它不依赖于重定向 URL,而基于 JS 和 MVC 的客户端不工作,因为它们确实依赖于重定向 URL。

    此时,对您而言(如果您使用 EF 迁移来存储您的身份验证服务器配置)在数据库上做的最好的事情将是重新开始并仅切换到内存中。或者,您可以尝试更新数据库以满足您的部署要求。

    最终,我相信,除非绝对必要,否则将身份验证服务器配置(如重定向和 CORS 设置)保留在内存中,因为它们不会占用太多价值并且很少更改。

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多