SSO OAuth2工作流程

时间:2016-09-21 18:36:57

标签: php oauth-2.0 single-sign-on

我目前正在开发一个PHP WebApp,我们决定将其拆分以避免成为一个整体。为了改善用户体验,我们希望将OAuth2服务器用于SSO:因此,用户只需登录一次即可访问所有应用。

为了开始,我已经阅读了OAuth Spec,我希望我得到了基本概念(我决定使用authorizationCode授权类型)。

所以,让我说我有一个应用程序正在运行

  

webapp1.somedomain.com

我在

上有一个OAuth服务器
  

oauth.somedomain.com

如果用户尝试访问 webapp1.somedomain.com

  • 他将被重定向到 oauth.somedomain.com ,包括客户端ID,重定向网址,响应类型和状态(可选)作为查询参数
  • 使用他的凭据登录后,将使用授权码将用户重定向回提供的重定向网址
  • 使用此代码,客户端ID和客户端凭据, webapp1 可以从 oauth服务器获取访问令牌并验证用户是否已登录

那么现在用这个令牌做什么?应用程序可以在每个请求上将其作为查询参数(不太好)或授权标头(更好)传递,并在请求的每个页面加载时提取它,并检查 oauth服务器如果用户是仍然登录。

这会给 oauth 服务器造成一些沉重的负担,不是吗?所以我必须以某种方式缓存令牌(和到期时间)并从缓存中读取令牌并检查它是否尚未达到到期时间。

或者我会在会话中保存令牌并根据令牌到期时间设置会话生存期......?

此刻我有点卡住了。可能是什么方式?

0 个答案:

没有答案