单一登录使用OAuth 2.0

时间:2015-01-07 15:53:35

标签: php symfony oauth-2.0 fosoauthserverbundle

我正在开发一个使用oauth2来验证用户的API。要求是为3个不同的Web应用程序开发单一登录系统。 让我们来看看这个场景:

  • 用户登录其中一个应用程序(比如application1)。
  • application1接收令牌和刷新令牌。刷新令牌保存在安全会话中。
  • 用户转到第二个应用程序说application2。但刷新令牌不能用于application2,因为它是为application1创建的。

在没有用户登录的情况下为第二个应用程序生成令牌的最佳方法是什么?

任何建议都会很棒。我采取了正确的方法吗? 我使用symfony2(FriendsOfSymfony / FOSOAuthServerBundle)

1 个答案:

答案 0 :(得分:0)

如果您的授权服务器保留SSO会话,则在发布application2的令牌时,您的用户不必再次登录。当然,用户需要同意application2请求的范围,因为它是与application1无关的不同应用程序(或OAuth 2.0术语中的“客户端”),需要自己的令牌和权限。

如果您希望将两个应用程序视为一个实体,因为它们由同一个实体控制和/或它们对您来说完全相同,您可以让它们使用相同的client_id和{{1并为此(单个)客户端注册2 client_secret