【发布时间】:2019-02-03 08:20:56
【问题描述】:
我想用oauth2设置一个资源服务器和一个外部认证服务器,两个服务器都有自己的数据库以避免耦合。
除了验证用户是否经过身份验证外,我还需要知道哪个用户经过身份验证。如果资源和认证服务器共享同一个数据库,这很简单。但由于这里不是这种情况,我一直想知道我怎么能做到这一点。对我来说,显而易见的选择是以某种方式获取用户 ID。但是,例如,Spring 仅在调用 /oauth/check_token 时返回用户名,在我看到的所有 JWT 示例中,用户名都包含在有效负载中,但不包含 ID。
但是为什么每个人似乎都更喜欢用户名而不是 ID,而用户名有这么多缺点(它们可能会改变,它们可能不是唯一的......)?
获取 ID 的正确解决方案是什么?也许是令牌自省或 JWT 令牌的一部分?
【问题讨论】:
-
你的外部认证服务器是否实现了spring oauth2授权服务器?
-
@SAP 是的,所有服务(当前)都使用 spring
标签: authentication oauth microservices