Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Защита Elastic Stack ›Авторизация пользователей

Настройка делегирования авторизации

В некоторых случаях, после аутентификации пользователя с помощью домена, мы можем делегировать поиск пользователя и назначение ролей другому домену. Любой домен, поддерживающий поиск пользователей (без необходимости предоставления учетных данных пользователя), может быть использован в качестве домена авторизации.

Например, пользователя, авторизованного с помощью домена Kerberos, можно искать в домене LDAP. Домен LDAP отвечает за поиск пользователя в LDAP и определение роли. В этом случае домен LDAP выступает в качестве домена авторизации.

Домен LDAP в качестве домена авторизации

Ниже приведен пример конфигурации домена LDAP, который может быть использован в качестве домена авторизации. Этот домен LDAP настроен в режиме поиска пользователей с указанным фильтром.

Дополнительную информацию о настройке доменов LDAP см. в статье об аутентификации пользователей LDAP.

xpack:
  security:
    authc:
      realms:
        ldap:
          ldap1:
            order: 0
            authentication.enabled: true 
            user_search:
              base_dn: "dc=example,dc=org"
              filter: "(cn={0})"
            group_search:
              base_dn: "dc=example,dc=org"
            files:
              role_mapping: "ES_PATH_CONF/role_mapping.yml"
            unmapped_groups_as_roles: false

Здесь мы явно разрешаем использование домена LDAP для аутентификации (то есть пользователи могут аутентифицироваться, используя свои имя пользователя и пароль LDAP). Если мы хотим, чтобы этот домен LDAP использовался только для авторизации, то мы должны установить это значение на false.

Домен Kerberos, настроенный на делегирование авторизации

Ниже приведен пример конфигурации, где домен Kerberos аутентифицирует пользователя, а затем делегирует авторизацию домену LDAP. Домен Kerberos аутентифицирует пользователя и извлекает имя принципала пользователя (обычно в формате user@REALM). В этом примере мы включаем настройку remove_realm_name, чтобы удалить часть @REALM из имени принципала пользователя, чтобы получить имя пользователя. Это имя пользователя используется для поиска пользователя с помощью настроенных доменов авторизации (в данном случае домена LDAP).

Дополнительную информацию о домене Kerberos см. в статье об аутентификации Kerberos.

xpack:
  security:
    authc:
      realms:
        kerberos:
          kerb1:
            order: 1
            keytab.path: "ES_PATH_CONF/es.keytab"
            remove_realm_name: true
            authorization_realms: ldap1

Домен PKI, настроенный на делегирование авторизации

Аналогично, мы можем настроить домен PKI для делегирования авторизации домену LDAP. Пользователь аутентифицируется с помощью домена PKI, а авторизация делегируется домену LDAP. В этом примере имя пользователя — это общее имя (CN), извлеченное из DN сертификата клиента. Домен LDAP использует это имя пользователя для поиска пользователя и назначения роли.

Дополнительную информацию о доменах PKI см. в статье об аутентификации PKI.

xpack:
  security:
    authc:
      realms:
        pki:
          pki1:
            order: 2
            authorization_realms: ldap1

Аналогично вышеприведенным примерам, мы можем настроить домены для делегирования авторизации другим доменам авторизации (которые имеют возможность искать пользователей по имени пользователя и назначать роли).

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/configuring-authorization-delegation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API