【问题标题】:Change the preferred_username in token for client credential grant flow更改客户端凭据授予流程的令牌中的 preffered_username
【发布时间】:2022-01-19 18:36:31
【问题描述】:

我将 Keycloak 用于我们的一款产品。我们正在使用客户端凭据授予流程来获取服务到服务通信的访问令牌。问题是,preffered_username 以“service_account_”的形式出现。我们的产品还有一个需要嵌入到令牌中的服务帐户(例如 _service),以便我们拥有针对该服务帐户的活动日志。 所以我的问题是,

  1. 我是否为用例使用了正确的授权流程。
  2. 我们能否将请求中的某些内容嵌入到令牌中。令牌端点是否在可添加到令牌的负载中采用其他属性?

【问题讨论】:

    标签: oauth-2.0 keycloak openid-connect


    【解决方案1】:

    所以我的问题是,

    1. 我是否为用例使用了正确的授权流程。

    根据OAuth 2.0 Client Credentials Grant

    客户端使用客户端凭据授予类型来获取 在用户上下文之外访问令牌。

    这通常被客户端用来访问关于他们自己的资源 而不是访问用户的资源。

    并根据您的要求:

    获取服务到服务通信的访问令牌

    如果没有更多上下文,我会说是的,您正在使用适当的流程。

    1. 我们能否将请求中的某些内容嵌入到令牌中。令牌端点是否在有效负载中采用额外的属性? 添加到令牌中?

    根据您要添加到令牌的内容,您可以简单地使用Protocol Mappers

    一些映射器已经带有预定义的声明来注入令牌,也可以通过扩展Keycloak codeexploiting the script mapper functionality (more details in the official documentation) 来制作自己的协议映射器。

    另一种方法是使用keycloak UMA flow pushing claims capabilities。在其中您将声明放入到 token 端点的请求中,并作为回报(如果成功通过身份验证)将这些声明注入其中。

    【讨论】:

      猜你喜欢
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 2020-06-11
      相关资源
      最近更新 更多