如何使用keycloak

时间:2018-05-08 09:51:20

标签: spring-boot spring-security keycloak

我正在使用带有keycloak的spring boot安全性来保护我的应用程序。但是我有正常的网络浏览器请求(使用百万美元模板)和休息api请求(没有浏览器和Controller中的方法用带有json格式的@ResponseBody注释)。

从网络指南中,我发现keycloak将使用不同的客户端类型用于浏览器请求(例如公共客户端)和没有UI请求(仅限承载),并且SecurityConfig.java中的会话不同,new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl())new NullAuthenticatedSessionStrategy()

所以我的问题是如何在一个应用程序中为支持浏览器reqeust和rest api请求配置spring security和keycloak?

谢谢!

1 个答案:

答案 0 :(得分:1)

拥有bearer-only客户端只有在您有另一个客户端进行身份验证时才有意义。简而言之,这些是Keycloak中的三种类型的客户端类型:

  • 公开:允许身份验证,没有客户端密码。
  • 机密:允许身份验证,客户端保密。
  • 仅承载:您需要拥有访问令牌才能访问其资源。

话虽如此,我认为同样的申请既不公开也不仅仅是持票人。通常,您为每个应用程序创建一个客户端。所以你有两个选择:

  • 将您的申请公开或保密。这将接受浏览器和非浏览器请求。推荐使用。
  • 将您的应用程序分成两部分,然后创建一个仅提供UI(公共或机密)的服务器和另一个服务于REST API的应用程序(这将仅限持有者)。但是,请记住,您需要使用UI客户端登录才能对自己进行身份验证。仅当您的应用程序API足够大以便从UI中拆分时才可取。