playframework - 使用 Keycloak 作为 Web 和移动客户端的 OIDC 服务器
问题描述
我正在玩一个具有以下配置的项目:
- Keycloak 作为 OIDC 服务器
- 以 Pac4J 作为安全库并以 Pac4J-Play 作为接口的 Play 框架
- 使用 AppAuth 作为 OIDC 适配器的移动 iOS 客户端
通过 Web 界面处理 API 时——一切正常。Pac4J-Play 检查活动 OIDC 配置文件的播放会话,如果不存在,用户将被重定向到 Keycloak 提供的 OIDC 登录流程。成功的身份验证将用户带回到具有正确信息的 Play 会话的 Web 界面,以便允许所有未来的 API 调用。
我在组织来自移动客户端的交互时遇到问题。AppAuth 允许正确获取访问、刷新和 id 令牌,但我不知道如何将它们与 Pac4J auth 集成。我目前正在尝试在单独的 API 调用中接受来自移动设备的令牌,并试图破解 Pac4J 来包装这些令牌,就好像它们是通过 Pac4J 获得的一样。然而,这感觉就像是一种黑客行为,并且有一些既定的做法是让这个 web/mobile/API/OIDC 以我不遵循的正确方式设置。
同一个问题的另一个问题是我是否应该为 API 和移动授权使用单独的 Keycloak 客户端。例如,通过 Keycloak 中配置的“移动”客户端获取的访问令牌是否可以与“web”Keycloak 客户端管理的调用一起使用?
谢谢
解决方案
推荐阅读
- ember.js - 即使存在于数据存储中,相关对象也不会显示
- python - 根据数据更改 numpy 数组大小
- html - :hover 在使用类来定位 Font-Awesome 图标时不起作用
- python - 在 kivy 应用程序中添加 MDdatatable 后下拉菜单未打开
- python - 对于 Project Euler #5,除了蛮力之外,还有更有效的方法吗?
- python - 不能使用 pandas,TypeError: 'int' object is not subscriptable
- javascript - 如何使方法返回静态属性中“保存”的类型?
- php - 为 PHP 查询创建准备好的语句
- reactjs - 如何在jsx中使用包含冒号的属性名称
- css - 在 CSS 代码中用 ':is()' 替换每个 ':-moz-any()' 伪类有什么问题吗?