当前位置: 首页 > 知识库问答 >
问题:

JWT令牌单点登录流程

师谦
2023-03-14

我有一个关于JWT的SSO流的简单问题

假设我们有单独的授权服务器,它为客户端应用程序/服务器和资源服务器提供JWT,客户端尝试使用该令牌访问该服务器。

问题是,资源服务器应该自己验证令牌(例如,与Auth server共享私有证书),还是应该请求Auth server为每个客户端请求验证JWT?

共有1个答案

葛泳
2023-03-14

JWT规范的构建考虑到了可扩展性。JWT设计的目的是任何受信任的应用程序都可以验证签名块。如果您关心性能,那么请使用SHA-256 HMAC并在每个endpoint上使用共享秘密本地验证签名。对JWT使用非对称签名会产生开销,但您可以将公钥存储在验证但不颁发JWT的endpoint上,然后将私钥存储在颁发令牌的中央机构上。验证和颁发之间的这种关注点分离减少了令牌创建过程被对手破坏的可能性(阅读:深度防御)。

如果您需要实时撤销令牌,那么需要一个中央机构来验证每个令牌。这是有效的,但它违背了JWT设计的目的,系统最好只发布一个cryptogrpahic nonce作为令牌。

 类似资料:
  • 我尝试用angular2前端实现jwt令牌。当我尝试使用Postman接收带有post方法的令牌时,我接收到授权令牌,但在Angular中这样做返回空响应对象。这里是我使用的Angular服务的代码片段。 问题是,当我尝试记录时,令牌是空的,与响应相同。对于代码的后端部分,我遵循了jwt令牌的这个实现。

  • 嗨,我正在创建使用 REST API endpoint与服务器端通信的移动本机应用程序。 我以前有开发本机客户端的经验,但我将简单的令牌(随机生成的字符串)存储在存储用户信息的同一表中的数据库中。所以它就像浏览器中使用的会话,但每个请求的标头中都有令牌,而不是 cookie。 最近我发现了JWT令牌。这似乎是保护私有endpoint的好方法。您可以从移动客户端请求令牌,前提是您通过登录并获得生成的

  • 在服务器上验证令牌的正确方法是什么? 我正在我的应用程序中使用jwt令牌机制,下面是它目前的工作方式: null null

  • 本文向大家介绍基于JWT实现SSO单点登录流程图解,包括了基于JWT实现SSO单点登录流程图解的使用技巧和注意事项,需要的朋友参考一下   一、基于JWT实现SSO单点登录原理   1、什么是单点登录   所谓单点登录就是有多个应用部署在不同的服务器上,只需登录一次就可以互相访问不同服务器上的资源。   2、单点登录流程   当一个访问请求发给应用A,如果这个请求需要登录以后才能访问,那么应用A就

  • 我正在构建一个移动应用程序,并且正在使用JWT进行身份验证。 最好的方法似乎是将JWT访问令牌与刷新令牌配对,这样我就可以根据需要频繁地使访问令牌过期。 刷新令牌是什么样子的?是随机字符串吗?那串加密了吗?是另一个JWT吗? 刷新令牌将存储在用户模型的数据库中以便访问,对吗?在这种情况下似乎应该加密 在用户登录后,我是否会将刷新令牌发送回,然后让客户端访问单独的路由来检索访问令牌?

  • 这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre