服务账号是个什么鬼?

服务账号

每个客户端都有一个内置的服务帐户,该帐户允许其获取访问令牌。(https://www.keycloak.org/docs/latest/server_admin/#_service_accounts

如何区分用户和服务账号

用户数据和服务账号都存在 user_entity表,区别:

  • 服务账号 username 命名方式:service-account-{client id}(必要非充分条件)
  • 用户数据能对应到 credential 表,服务账号则无

问题

  • 使用 /users 接口查询有时候查不到这些服务账号,有时候能查到?
    • /users 接口处理方式(org.keycloak.services.resources.admin.UsersResource#getUsers):
      • search 字段不为空,则只根据该字段进行筛选,同时过滤掉 服务账号
      • 使用 lastname、username等字段进行查询,结果会包含服务账号
      • 默认查询所有用户,会过滤掉服务账号

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注