项目和自定义项目特定用户角色

时间:2017-07-01 10:40:17

标签: oauth-2.0 google-oauth2

我是OAuth2的新手,并试图找出以下方案的最佳做法:

  • 我实施了ToDo'网络服务(CRUD for' tasks')
  • 我使用OAuth2和Google作为身份验证提供程序来获取用户详细信息(电子邮件,姓名)
  • 现在我需要为用户实施项目特定的角色(' admin','用户')

就OAuth2而言 - 谷歌并不拥有'我的服务,所以它无法帮助我存储/提供ToDo特定角色,这是正确的吗?

实施它的常见/最佳方法是什么,我是否需要创建自己的授权服务,我需要存储像userinfo这样的关系 - >项目特定的角色?

3 个答案:

答案 0 :(得分:2)

嗯,这取决于你究竟想做什么。

如果您有用户,并且这些用户已经拥有您已分配给他们的特定角色,那么您只是将Google的OAuth服务用作身份服务。您不需要 来实现自己的授权服务,但是您需要跟踪(通常在您自己的数据库中)用户ID与该用户的角色之间的关系。

如果目标是创建一个服务,用户可以将其拥有的特定权限委托给第三方服务,那么您肯定需要实现自己的OAuth服务器。这将允许用户限制第三方服务完成其工作所需的范围。

答案 1 :(得分:1)

您可以轻松设置自己的授权和资源服务器,而不是依赖于Google服务。在您自己的身份验证服务器中,您可以更好地控制您指定的角色和用户。 您可以使用spring boot app设置和验证服务器,并使用Spring-starter-security,spring-security-oauth2等依赖项。

答案 2 :(得分:0)

是的,您必须使用自己的授权服务器,然后可以发出具有与之关联的领域特定角色的令牌。