Chr*_*nce 3 jwt microservices identityserver4
我目前正在创建一个基于微服务架构的新应用程序,并使用Identity Server 4提供的身份验证。
经过大量研究并建立了概念证明,我设置了Identity Server,以确保API和本机应用程序使用令牌成功访问这些服务的安全。
最初,向客户端颁发了用于访问API的访问令牌,但是现在我将其切换为使用参考令牌。现在,问题解决了!
我在这里采用的方法是采用微服务网关,该网关接收参考令牌,然后将其转换为JWT,以包含在对下游微服务的任何请求中。在网关内,如何“交换” JWT的入站参考令牌?Identity Server中是否可以提供帮助?还是我需要使用自省端点,发送参考令牌并检索声明以在网关服务内构造JWT,以便将Authorization标头传递给所有下游服务?
如果有任何其他信息可以帮助您了解体系结构的目标,请告诉我。
我想我会在这里详细介绍我的实现,以防其他人使用参考令牌和需要JWT的下游服务来保护使用参考令牌的API网关有用。
我已经实现了在API网关中运行的ASP.Net Core中间件。中间件在Identity Server身份验证中间件之后和MVC中间件之前在管道中运行。中间件的目的是获取入站参考令牌,并将其与Identity Server交换(使用扩展授权)以交换JWT,该JWT在调用下游微服务时可以在Authorization标头中使用。
中间件可以在GitHub上获得,也可以作为NuGet包获得。有关中间件用例的更多详细信息,请参见GitHub自述文件;有关安装和配置中间件的详细信息,请参见GitHub Wiki。
除了执行访问令牌的参考令牌的交换外,中间件还内置了对缓存的支持,从而减少了与Identity Server进行令牌交换的往返次数。
如果有人想使用中间件,并且对文档中未涉及的安装和配置有疑问,请在GitHub存储库中添加一个标记为Question的问题。
归档时间: |
|
查看次数: |
1348 次 |
最近记录: |