Authorize属性在Docker中处理有效的用户



我在Linux容器的Docker中运行我的。net core 5应用程序,即Authentication ServerAPI GatewayAPI GateWay中的控制器类包含一个[Authorize]属性来验证用户。尽管用户是有效的(例如注册并成功登录),API Gate无法允许用户访问API。这里是我的日志抱怨的一部分:

Failed to validate the token.Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10501: Signature validation failed. Unable to match key:
kid: '6B7ACC520305BFDB4F7252DAEB2177CC091FAAE1'.
Exceptions caught:''.

我说的对吗,这是由于身份服务4生成的cookie;告警解释idsrv.session.netcore related cookies共享失败。

这是因为根据我的观察,当我的微服务在IIS中运行。当用户成功登录时,认证服务器将生成上述两个cookie。上面提到的cookie是"共享的"在其他微服务中,部分原因是它们位于相同的本地主机,但端口号不同。

当我的应用程序迁移到Docker;认证服务器能够生成相关的cookie,其余的包含无法获得cookie。

作为结果,我猜,这是API网关无法授权有效用户的结果。

因此,我想知道我对授权的理解是正确的,以及我应该如何解决有效用户的问题。

https://stackoverflow.com/a/58877655/3312570错误码IDX10501指向错误的承载令牌中间件。

尝试添加cookie。使用下面的代码。我猜,这是没有用的。

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();

最新更新