Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication SSO:是否可以将SSO令牌缓存一段时间,这样就不会在每次请求时联系身份验证服务器?_Authentication_Oauth_Oauth 2.0 - Fatal编程技术网

Authentication SSO:是否可以将SSO令牌缓存一段时间,这样就不会在每次请求时联系身份验证服务器?

Authentication SSO:是否可以将SSO令牌缓存一段时间,这样就不会在每次请求时联系身份验证服务器?,authentication,oauth,oauth-2.0,Authentication,Oauth,Oauth 2.0,对于单点登录(SSO),我有一个身份验证服务器(带有用户表)和多个资源服务器(各种web应用程序) 到目前为止,我已经使用OAuth2.0实现了JWT,并从auth服务器获得了访问令牌 我从OAuth 2.0规范中了解到,资源服务器现在必须与身份验证服务器通信以验证令牌。这很简单,只需将GET请求发送到端点users/me的auth服务器,即可获得用户对象和其他用户范围 现在我要说的是来自资源服务器的Auth-server调用的频率。对资源服务器的每个传入请求调用auth server是不高效的

对于单点登录(SSO),我有一个身份验证服务器(带有用户表)和多个资源服务器(各种web应用程序)

到目前为止,我已经使用OAuth2.0实现了JWT,并从auth服务器获得了访问令牌

我从OAuth 2.0规范中了解到,资源服务器现在必须与身份验证服务器通信以验证令牌。这很简单,只需将
GET
请求发送到端点
users/me
的auth服务器,即可获得用户对象和其他用户范围

现在我要说的是来自资源服务器的Auth-server调用的频率。对资源服务器的每个传入请求调用auth server是不高效的,并且会由于额外的往返而造成缓慢

资源服务器应多久与身份验证服务器通信一次?如果不是针对每个请求,那么如何持久保存身份验证信息?


我曾考虑在资源服务器上使用会话,但我不确定这样做是否正确。

如果您的访问令牌包含过期时间,那么您可以将对资源服务器的连续请求限制这么长的时间。您可以在获取访问令牌后将其缓存,其他请求可以首先在缓存中查找,还可以定期检查访问令牌是否仍然有效。

顺便说一句,OAuth是一种授权协议,而不是身份验证协议(尽管您可以使用它来组合伪身份验证):