gpt4 book ai didi

oauth-2.0 - 支持 "Personal Access Tokens"或 "API keys"

转载 作者:行者123 更新时间:2023-12-04 13:36:16 25 4
gpt4 key购买 nike

当我使用 Keycloak 处理身份验证并使用它发布的 token 来保护我的 API 时,keycloak 是否提供了一种类似于 Github 的支持个人访问 token 的方法?当我的应用程序使用 Web 浏览器时,通过 OIDC 流程登录工作正常,但我如何处理从 CLI 或 headless API 脚本登录我的应用程序?

我可以支持密码流,在提供用户名和密码后我可以取回 JWT token ,但我假设一旦用户配置了 2FA 或者如果他们在后端使用 SAML,那么所有赌注都将关闭,因为用户名和密码不会让你访问。这正是 Github 提供个人访问 token 的原因。有什么方法可以使用 Keycloak 来实现这样的东西,还是我们必须在我们自己的应用程序中构建它,然后除了 JWT 之外还接受这些 token 。

我所设想的是 Keycloak 能够在其用户存储中生成和存储个人访问 token ,用户可以通过 Keycloak 提供给用户的 UI 生成和撤销这些访问 token 。然后,我的 CLI 可以使用此 token 获取 JWT,然后以与 Web 浏览器或其他客户端相同的方式继续调用我的 API。

最佳答案

在最近的 Keycloak 版本中添加了在 CLI 脚本期间使用 OTP 的一些支持。到目前为止我还没有玩过它,所以我不能向你展示任何食谱。尝试从身份验证 -> HTTP 质询流程设置开始。

关于用户 token ,您可以将所需功能实现为 Keycloak 的 SPI 扩展(请参阅文档中的服务器开发部分)。从我的角度来看,应该有两个组成部分:

  • 用户 token 发行者
  • 将在您的客户端的身份验证流程中使用的自定义身份验证器

  • 这是一个粗略的例子:
  • 让用户 token 类似于 UUID 字符串,因此所有用户 token 都可以存储在用户属性中(用户设置管理 UI 中的属性选项卡)。
  • 您的某些 API 可能会引入专用端点,该端点将接受有效的访问 token <生成新的 UUID 用户 token ,通过管理 API 将其存储在 keycloak 用户属性中并将此 token 返回给用户。
  • 然后我们创建自定义身份验证器 SPI 实现,它将从直接授权身份验证请求中提取用户 token 并对其进行验证。
  • 最后一步是为相应的 OIDC 客户端正确配置直接授权认证流程。如果身份验证请求中没有用户 token ,此流程应该像默认值一样工作,并且应该仅验证用户 token 并在用户 token 出现时忽略其他凭据。

  • Keycloak“服务器开发”文档和 keycloak 源对于此类任务之王非常有帮助。

    关于oauth-2.0 - 支持 "Personal Access Tokens"或 "API keys",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61776046/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com