单点登录2个Web服务

时间:2017-06-13 13:15:51

标签: java web-services rest authentication single-sign-on

所以我有这两个Web服务A和B,现在服务A已经实现了身份验证,所以我在想是否有办法使用服务A令牌来验证来到服务B的请求。

这是一个场景:

我有一个桌面应用程序使用上述服务A和B,使用用户必须登录的应用程序,当前用户的凭据通过服务A进行身份验证,而服务B没有实现任何身份验证(所以任何人可以发送请求,他们将被尊重)。所以我想知道是否可以发送服务A提供的令牌以及每个服务B的请求,服务B可以使用服务A验证此令牌。

现在我不知道我是否足够清楚。但是,我会感激任何建议

1 个答案:

答案 0 :(得分:1)

由于您使用REST关键字标记了您的问题,我假设您有兴趣遵循此体系结构样式。 如果是这种情况,我建议您使用JWT或JSON Web Token。系统约束是A和B之间的信任关系,它由共享密钥组成。

对于服务器A的每个请求,它生成一个由断言构成的令牌,声明应用程序范围内客户端的角色(以及许多其他信息)。这个断言用A的私钥签名

当客户登陆B时,B能够验证A的签名并向客户提供A授予的所有权利。

这是一个非常简洁的解释,因为您可以在线找到所需的所有信息,例如here