在我当前的设置中,我有独立的 spring oAuth2 服务器、独立的资源服务器和带有反向代理的 angularJs 应用程序。
在身份验证服务器端,我注册了 2 个客户端(用于服务通信的 Web 应用程序和内部客户端)。我正确接收客户端范围和用户角色。
问题 1 我需要每个用户而不是客户端(网络应用程序、移动设备、...)的不同权限(例如范围)
我尝试提供自己的 ClientsDetailService,我将为每个用户构建 ClientDetails,但我收到的唯一内容是客户端 ID(“web-app”),我无法知道哪个用户已登录。
有没有办法注入用户上下文?
相关堆栈问题
问题 2如果我将所有可用权限放在 JWT 中并在资源服务器上执行“hasPermission(...)”逻辑,我可以以某种方式解决这个问题。基本上,客户端应用程序在 N 个范围内工作,服务器基于用户角色构建权限列表并创建 JWT。但...
- 当我删除用户权限时会发生什么?JWT 失效了吗?
- 这种情况下的 oAuth 工作流程是什么?(refresh_token 会获得更新的权限还是用户必须再次输入凭据?)
- 由于这似乎是不好的做法,有没有更好的解决方案?
问题3有没有一种标准的方式可以用spring oauth2 实现更细粒度的权限逻辑?(想想 100 多种具有方法级别安全性的不同权限)