我有:
所以我在/ userinfo端点完成了这个逻辑,当客户端收到一个访问令牌(从客户端,重定向到UAA,从UAA到OIDC为AUTH,然后再返回到令牌,然后这个令牌被发送到客户端,现在客户端可以获取令牌并请求/ userinfo然后将其拥有用户角色)
这是不好的逻辑吗?我应该以某种方式在访问令牌中添加LDAP实现(步骤4)吗?
实际上,正如设计问题的情况一样,这取决于。
要记住的关键是OIDC及其相关的id_token
用于身份验证。 /userinfo
对州政府关于用户是谁的回应很常见。用户身份的一部分可能是他们的角色。
另一方面,OAuth及其相关的access_token
用于授权。访问令牌通常声明有关客户端有权执行的操作的声明。客户端可能做的事情可能与用户的角色不同。
想想这个客户需要做出哪些决定。根据从/userinfo
响应中推断出的角色,它可以选择它可以显示哪些页面。
想想这个客户将与之沟通的内容。也许它会与资源服务器通信。如果客户端通过登录期间获得的access_token
,则该令牌应指示客户端有权执行的操作。