我想将Keycloak身份验证集成到Play2项目中。以下是我到目前为止所做的事情:
在此之前,我无法找到解决方案。我遇到了Deadbolt,它可以声明性地表达需要应用于用户和角色的限制,但是我无法找到适用于与Play2一起使用的keycloak的适配器。
有没有人做过类似的事情?我想解决方案是创建一个自定义适配器,通过配置然后调用核心Keycloak方法。
有没有人想过创建这个“Keycloak独立适配器”?
答案 0 :(得分:0)
这取决于您要使用的身份验证机制(openid-connect或SAML)。对于我正在开发的应用程序,我们选择了openid-connect。目前,唯一支持该协议的play2库是https://github.com/pac4j/play-pac4j。棘手的部分是找出keycloak在它发送回播放服务器的令牌中编码信息的方式。它通过Base64编码来实现。我们从keycloak-js-adapter翻译了算法以提取用户信息。 之后,我们可以使用Security trait或创建一个包含授权用户信息的自定义请求包装器。
答案 1 :(得分:0)
这2个博客条目对我有帮助:
使用密钥斗篷进行用户身份验证
KeyCloak
和akka-http
https://blog.scalac.io/user-authentication-with-keycloak-part1.html
https://blog.scalac.io/user-authentication-with-keycloak-part2.html
使用Scala和Play框架构建并保护API
Auth0
和play framework
https://auth0.com/blog/build-and-secure-a-scala-play-framework-api/