我在一个微服务架构中工作,它有自己的 oauth2 提供程序以允许服务交互。
我需要开发一项服务,该服务被授予访问用户资源的权限,以便对用户帐户执行内部任务。由于需要访问用户资源的服务是内部服务,因此要求用户允许访问他们自己的资源不是一个可行的解决方案。
我担心选择正确的授权来执行此任务,因为这client_credentials
似乎是正确的,它似乎也被用来只允许只更新服务数据,而不是访问用户资源。我认为的另一个解决方案是在用户注册时自动提供授权码,就好像用户点击了“允许”按钮一样,然后使用该code
授权执行请求。这里的缺点是每次创建具有该需求的服务时我都必须创建新的授权码,但这似乎是一个更清晰的解决方案(因为用户 XXX 的授权码只允许访问用户 XXX 的资源)。
我也理解实现是不同的,因为标准提供了很大的灵活性,但是在您看来,哪一个是合适的解决方案?你会怎么处理?更清楚地说,“统计服务”是允许访问所有用户的资源还是“统计服务”是所有用户都可以访问他们的资源?