Identity Server 4 没有可用于令牌的安全令牌验证器

Posted

技术标签:

【中文标题】Identity Server 4 没有可用于令牌的安全令牌验证器【英文标题】:Identity Server 4 No Security Token Validator available for token 【发布时间】:2018-03-08 13:41:52 【问题描述】:

有人可以帮我解决这个问题。在过去的几周里,我一直在学习如何使用 Identity Server 4 以及如何通过使用 Id4 作为单独的应用程序、angular 4 作为客户端(单独的应用程序)和 asp.net core api 作为第三个应用程序来实现隐式流。

我设法从 id4 服务器发出 id 和访问令牌,当我想调用 api 时将访问令牌添加到授权标头中。但是我收到 No SecurityTokenValidator available for token 作为错误。

那么我做错了什么?

我正在使用 In Memory 测试数据和 AddDeveloperSigningCredential:

在 api 方面,我得到了这个:

我在 api 端使用 UseJwtBearerAuthentication 中间件:

提前致谢。

【问题讨论】:

【参考方案1】:

我最后解决了这个问题。我将 asp.net core 更新到第 2 版,并在 Api 项目的 Startup 类中添加了新的 AspNetCore Authentication JwtBearer 中间件,现在一切正常。

我将附上我的 api 项目的 Startup 类,也许它可以帮助某人。

【讨论】:

以上是关于Identity Server 4 没有可用于令牌的安全令牌验证器的主要内容,如果未能解决你的问题,请参考以下文章

JWT 不记名令牌不适用于 ASP.Net Core 3.1 + Identity Server 4

有没有办法撤销另一个用户的访问令牌并结束他们在 Identity Server 4 中的会话?

访问令牌不包括 Identity Server 4 中声明的范围

如何在 Thinktecture Identity Server 中加密 JWT 令牌?

令牌服务器上自定义端点的 Identity Server 4 客户端凭据

Identity Server 4 无法验证来自 localhost 的受保护 API 的令牌