在不进行身份验证的情况下查找用户

编辑

在不进行身份验证的情况下查找用户

编辑

Elasticsearch 领域主要用于支持用户身份验证。一些领域使用密码对用户进行身份验证(例如nativeldap领域),而其他领域则使用更复杂的身份验证协议(例如samloidc领域)。在每种情况下,领域的主要目的都是确定向 Elasticsearch API 发出请求的用户的身份。

但是,一些 Elasticsearch 功能需要查找用户,而无需使用其凭据。

  • run_as功能代表另一个用户执行请求。具有run_as权限的已验证用户可以代表另一个未经身份验证的用户执行请求。
  • 委托授权功能将两个领域链接在一起,以便针对一个领域进行身份验证的用户可以具有与来自另一个领域的用户关联的角色和元数据。

在这些情况下,用户必须首先向一个领域进行身份验证,然后 Elasticsearch 将查询第二个领域以查找另一个用户。已验证的用户凭据仅用于在第一个领域中进行身份验证。第二个领域中的用户通过用户名检索,无需凭据。

当 Elasticsearch 使用凭据解析用户时(如在第一个领域中所执行的那样),称为用户身份验证

当 Elasticsearch 仅使用用户名解析用户时(如在第二个领域中所执行的那样),称为用户查找

请参阅run_as委托授权文档,以了解有关这些功能的更多信息,包括哪些领域和身份验证方法支持run_as或委托授权。在这两种情况下,只有以下领域可以用于用户查找

  • 保留的nativefile领域始终支持用户查找。
  • 当领域在用户搜索模式下配置时,ldap领域支持用户查找。当领域配置了user_dn_templates时,不支持用户查找。
  • active_directory领域中的用户查找支持要求该领域配置bind_dn和绑定密码。

pkisamloidckerberosjwt领域不支持用户查找。

如果您只想将一个领域用于用户查找,并阻止用户针对该领域进行身份验证,则可以配置该领域,并将authentication.enabled设置为false

用户查找功能是一项内部功能,用于实现run-as和委托授权功能 - 没有用于用户查找的 API。如果您想测试用户查找配置,则可以使用run_as执行此操作。使用身份验证 API,以超级用户(例如,内置的elastic用户)进行身份验证,并指定es-security-runas-user请求头

获取用户 API 和用户配置文件功能是检索有关 Elastic Stack 用户的备选方法。这些 API 与用户查找功能无关。