使用 Keycloak 时模拟“生成 API 令牌”的最佳实践
Posted
技术标签:
【中文标题】使用 Keycloak 时模拟“生成 API 令牌”的最佳实践【英文标题】:Best practice to emulate "generate API token" when using Keycloak 【发布时间】:2019-12-05 12:27:58 【问题描述】:我有一个带有受 Keycloak 保护的后端 API 的 SPA。我希望允许 SPA 用户以编程方式而不是仅通过 SPA 对 API 执行操作。通常,应用程序会允许用户“创建 API 密钥”并对 API 执行操作。
使用 Keycloak 的推荐方法是什么?
我目前的计划是在公共客户端上启用直接访问授权(资源所有者密码凭据授权)并指示 SPA 用户检索访问令牌:
curl -u public-client: -X POST \
https://keycloak.url/auth/realms/REALM/protocol/openid-connect/token \
-d 'grant_type=password&username=USER&password=PASSWORD'
然后用户可以使用她的访问令牌访问 API。它有效,但感觉不太对。
有没有更好(简单!)的方法?提前致谢!
【问题讨论】:
【参考方案1】:您的 SPA 只是 API 的另一个客户端,所有客户端都经历相同的登录过程。唯一的区别是身份验证令牌将存储在哪里,使用 SPA,浏览器将使用 API 存储它们,这取决于您
有关 api 登录的更多详细信息,请参阅此帖子: Login to Keycloak using API
【讨论】:
以上是关于使用 Keycloak 时模拟“生成 API 令牌”的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
使用 docker [MySQL] 运行 keycloak 时出错
使用 docker-compose 时导入 keycloak 配置文件
使用docker和java spring时keycloak认证问题