当前位置: 首页 > 知识库问答 >
问题:

使用KeyClope的微服务身份验证

盛辰沛
2023-03-14

我正在尝试在一个microservice中配置一个microservice,但我正在尝试在另一个microservice中配置一个microservice如何进行身份验证。这就是我试图归档的体系结构:

我已经设法让用户授权工作并保护了微服务A,现在我正在尝试授权来自微服务B的请求,但我不确定如何做到这一点,我是否应该为微服务B在KeyCape中创建一个专用用户,或者在realm中创建客户端,或者其他一些技术帐户?它是由某个api密钥完成的,还是Microservice B应该以与用户类似的方式请求访问令牌?

我的想法是在KeyCloak中为微服务B创建一个客户端,从KeyCloak请求一个访问令牌,并将其附加到发送给微服务A的每个请求中。

这是正确的做法吗?

是否有一些图书馆处理这个问题?

我找不到任何与spring进行此类通信的示例,您是否知道任何具有此类示例的存储库?

共有1个答案

邓欣可
2023-03-14

据我所知,您对MS-A的前端访问是通过不同的用户帐户(登录)完成的。但是对于MS-B访问MS-A,当MS-B总是使用相同的帐户(MS-B服务帐户)时可以吗?

在这种情况下,我将为这个后端身份验证创建第二个客户端,让我们称之为后端客户端,带有以下选项:

OIDC,机密,启用直接访问授权和服务帐户,禁用标准流

MS-B现在可以通过一个简单的密钥斗篷请求获得访问令牌

 curl --request POST \
        --url https://keycloak/auth/realms/%realm_name%/protocol/openid-connect/token \
        --header 'Accept: */*' \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data 'client_id=backend-client&client_secret=%client_secret%&grant_type=client_credentials'

(不需要用户密码,因此请确保客户端的机密性真正安全)

我不知道任何Spring实现/适配器,但我很确定,如果你搜索Direct Access Grants,你会找到一个合适的解决方案

 类似资料:
  • 我们正在尝试找出IPC身份验证和授权的最佳实践。我会解释的。我们有一个基于微服务的体系结构SaaS和一个专门的认证服务。该服务负责执行身份验证和管理身份验证令牌(JWT)。 现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)? 我们是否应该为每个服务生成一个专用用户,并像对待系统中的任何其他用户一样对待它(具有适当的权限)? 我们是否应该在服务之间部署“硬编码”/动态令牌? 还

  • 我想使用基本身份验证调用keydrope Rest API。为了做到这一点,我尝试了下面的答案,但缺少链接。 我已将客户端访问类型设置为机密,并启用了直接访问授权。 显然,需要在Java适配器配置中指定启用基本身份验证,但我看不出这是如何实现的。文档中提到它是一个JSON文件,听起来像是我将其作为配置添加到Keyclope目录中。 最后,我看到有人提到使用生成的秘密。我可以在选项卡中生成一个秘密,

  • 我有一个移动(本机)和Web应用程序(SPA),它与后端微服务(在核心2.0中开发)对话,以进行身份验证/授权和其他与域相关的功能,该功能已使用Opendi的配置。这两个应用程序都获得了访问令牌。我遇到的问题是,所有微服务都应该接受无记名访问令牌和登录用户的身份验证/授权(中央身份验证服务),在身份验证微服务中生成的访问令牌(开放身份验证2.*)。那么,我在微服务中缺少哪些更改,其中REST AP

  • 我有两个Docker集装箱: RedHat密钥斗篷服务器(https://keycloak.some.domain.com) 在我的Spring启动应用程序中,我定义了一个安全页面:http://localhost:8081/api/sample.json 现在,当我点击该endpoint时,我被重定向到正确的登录页面,如果我提交了正确的登录/密码凭据,我将得到以下403错误(禁止)页面: 但是,

  • 我正在编写一个程序,用于验证通过HTTP POST发送的用户名和密码,并根据ldap进行验证,无论验证是否成功,都将响应发送回用户。 我的Websecurity配置器实现 我的测试服务器.ldif

  • 我想测试一个WSO2身份提供程序,实际上是它用OpenID配置的联合IdP,我计划使用TraSpeed工具对其进行测试。我正在WEB-INF配置中编辑travelocity.properties文件,将起始参数设置为以下值: 在Tomcat7服务器中声明映像时,它接受新的服务器配置,但代码仍将SAML身份验证激活为主要SSO机制,抛出错误: 是否可以仅使用OpenID堆栈在该Web工具中停用SAM