我正在尝试在另一个微服务中验证一个微服务请求,但找不到任何示例来说明如何在keydove中配置客户端以及如何配置Spring Security 。这就是我试图归档的体系结构:
我已经设法让用户授权工作并保护microservice a,现在我正在尝试授权来自microservice b的请求,但我不确定如何做到这一点,我是否应该为microservice b在Key斗篷中创建一个专用用户,或者在realm中创建客户端,或者其他一些技术帐户?它是由某个api密钥完成的,还是microserviceb应该以与用户类似的方式请求访问令牌?
我的想法是在keydove中为microserviceb创建一个客户机,从keydove请求一个访问令牌,并将其附加到发送给microservicea的每个请求中。
这是正确的方法吗?
有图书馆处理这个案子吗?
我找不到任何与spring进行这种交流的例子,您是否知道任何具有这种例子的存储库?
1条答案
按热度按时间k7fdbhmy1#
据我所知,您对ms-a的前端访问是通过不同的用户帐户(登录)完成的。但是对于ms-b访问ms-a,当ms-b总是使用同一个帐户(ms-b服务帐户)时,这没关系吗?
在这个场景中,我将为这个后端身份验证创建第二个客户端,我们称之为
backend-client
使用以下选项:oidc,机密,启用直接访问授权和服务帐户,禁用标准流
ms-b现在可以通过一个简单的keydove请求获得一个访问令牌
(不需要user+pw,所以保留
client_secret
(非常安全)访问令牌现在需要用于从ms-b到ms-a的所有请求(
Authentication: Bearer %Access-Token%
(页眉)我不知道有任何spring实现/适配器,但是我很确定如果您搜索
Direct Access Grants
你会找到一个合适的解决办法