我尝试使用Spring Boot和Keycloak作为AuthService来实现一个简单的OAuth2“使用签名JWT”客户端身份验证的演示应用程序。在Spring Boot中使用Keycloak实现JWT,JWE和JWS(签名JWT)
的理念是:
- 一个安全的REST服务 “生产者”
- 提供端点GET /人所有用户/与角色 “read_person”
- 校长提供一个端点POST /个人角色为“write_person”的所有用户/负责人
- 另一个(无担保)REST服务“The Consumer”
- 提供了一个enpoint/API开放给大家
- 使用RequestInterceptor传递的accessToken(签署JWT/JWS)
我读通过Feign
客户端调用内部的 “生产者”文档:
http://www.keycloak.org/docs/latest/securing_apps/topics/oidc/java/client-authentication.html
说:
一旦客户端应用程序启动时,它允许使用URL如http://myhost.com/myapp/k_jwks,>假设http://myhost.com/myapp是你的客户的基础URL>应用程序下载在JWKS格式公共>键。这个URL可以被Keycloak使用(见下文)。
在认证过程中,客户端生成一个JWT令牌,并使用>其私钥对其进行签名,并将其发送到Keycloak中client_assertion>参数中特定backchannel>请求(例如,代码到令牌请求)。
我搜索了很多关于这个主题的教程/演示或文档,但到目前为止失败了。 所以在这里我的问题:
如何实现这个 “k_jwk” 终点?在“制片人”中,我自己简单地制作一个
@RestController
吗?如何配置Keycloak以了解此URL?我该如何实施我的“消费者”才能从Keycloak获得新签署的智威汤逊?
更新 即将移除刺激性PS声明。
为什么要重新实现这一切,因为我们已经做在春节引导适配器? –
请告诉我如何在这里使用Keycloak Adapater。我找不到任何演示或文档。 – HaVonTe
http://www.keycloak.org/docs/latest/securing_apps/topics/oidc/java/spring-boot-adapter.html,同时检查我的博客帖子https://developers.redhat.com/blog/2017/ 05/25 /轻松保护您的弹簧启动应用程序与keycloak /或我们的快速入门https://github.com/keycloak/keycloak-quickstarts –