【问题标题】:OAuth2 authorization for project and custom project-specific user role项目和自定义项目特定用户角色的 OAuth2 授权
【发布时间】:2021-03-29 14:41:49
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: oauth-2.0 google-oauth


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-10-09
          • 2020-04-03
          • 1970-01-01
          • 2017-06-27
          • 1970-01-01
          • 2015-04-21
          • 2012-07-14
          • 2017-07-29
          • 2020-05-15
          相关资源
          最近更新 更多