使用 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 令牌”的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

未实现 Keycloak 模拟 API

使用 docker [MySQL] 运行 keycloak 时出错

使用 docker-compose 时导入 keycloak 配置文件

使用docker和java spring时keycloak认证问题

如何在使用 keycloak 进行身份验证时处理 uri 重定向

我的网站用户注册和登录时应该使用 Keycloak 吗?