项目和自定义项目特定用户角色的 OAuth2 授权

XZe*_*Zen 7 oauth-2.0 google-oauth

我是 OAuth2 的新手,并试图找出以下场景的最佳实践:

  • 我正在实施“ToDo”网络服务(“任务”的 CRUD)
  • 我使用 OAuth2 和 Google 作为身份验证提供商来获取用户详细信息(电子邮件、姓名)
  • 现在我需要为用户实现特定于项目的角色(“管理员”,“用户”)

就 OAuth2 而言 - Google 并不“拥有”我的服务,因此它无法帮助我存储/提供“ToDo”特定角色,这是正确的吗?

实现它的常见/最佳方法是什么,我是否需要创建自己的授权服务,在其中需要存储诸如用户信息 - >项目特定角色之类的关系?

Pri*_*ner 3

好吧,这取决于您到底想做什么。

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

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