• Русский
  • Управление LDAP

    Администраторы платформы могут добавлять, обновлять и удалять LDAP-сервисы на платформе.

    Обзор LDAP

    LDAP (Lightweight Directory Access Protocol) — это зрелый, гибкий и хорошо поддерживаемый стандартный механизм для взаимодействия с серверами каталогов. Он организует данные в иерархическую древовидную структуру для хранения информации о пользователях и организациях предприятия и в основном используется для реализации единого входа (SSO).

    NOTE

    Основные возможности LDAP:

    • Обеспечивает связь между клиентами и LDAP-серверами
    • Поддерживает операции хранения, извлечения и поиска данных
    • Предоставляет возможности аутентификации клиентов
    • Упрощает интеграцию с другими системами

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

    Поддерживаемые типы LDAP

    OpenLDAP

    OpenLDAP — это open-source реализация LDAP. Если в вашей организации для аутентификации пользователей используется open-source LDAP, вы можете настроить платформу для взаимодействия с LDAP-сервисом, добавив LDAP и настроив соответствующие параметры.

    NOTE

    Интеграция OpenLDAP:

    • Обеспечивает аутентификацию пользователей LDAP на платформе
    • Поддерживает стандартные LDAP-протоколы
    • Предоставляет гибкое управление пользователями

    Для получения дополнительной информации об OpenLDAP см. официальную документацию OpenLDAP.

    Active Directory

    Active Directory — это программное обеспечение Microsoft на основе LDAP для предоставления служб хранения каталогов в системах Windows. Если в вашей организации для управления пользователями используется Microsoft Active Directory, вы можете настроить платформу для взаимодействия со службой Active Directory.

    NOTE

    Интеграция Active Directory:

    • Обеспечивает аутентификацию пользователей AD на платформе
    • Поддерживает интеграцию с доменом Windows
    • Предоставляет корпоративное управление пользователями

    Терминология LDAP

    Распространённые термины OpenLDAP

    ТерминОписаниеПример
    dc (Domain Component)Компонент доменаdc=example,dc=com
    ou (Organizational Unit)Организационная единицаou=People,dc=example,dc=com
    cn (Common Name)Общее имяcn=admin,dc=example,dc=com
    uid (User ID)Идентификатор пользователяuid=example
    objectClass (Object Class)Класс объектаobjectClass=inetOrgPerson
    mail (Mail)Почтаmail=example@126.com
    givenName (Given Name)ИмяgivenName=xq
    sn (Surname)Фамилияsn=ren
    objectClass: groupOfNamesГруппа пользователейobjectClass: groupOfNames
    member (Member)Атрибут участника группыmember=cn=admin,dc=example,dc=com
    memberOfАтрибут принадлежности к группе пользователейmemberOf=cn=users,dc=example,dc=com

    Распространённые термины Active Directory

    ТерминОписаниеПример
    dc (Domain Component)Компонент доменаdc=example,dc=com
    ou (Organizational Unit)Организационная единицаou=People,dc=example,dc=com
    cn (Common Name)Общее имяcn=admin,dc=example,dc=com
    sAMAccountName/userPrincipalNameИдентификатор пользователяuserPrincipalName=example or sAMAccountName=example
    objectClass: userКласс объекта пользователя ADobjectClass=user
    mail (Mail)Почтаmail=example@126.com
    displayNameОтображаемое имяdisplayName=example
    givenName (Given Name)ИмяgivenName=xq
    sn (Surname)Фамилияsn=ren
    objectClass: groupГруппа пользователейobjectClass: group
    member (Member)Атрибут участника группыmember=CN=Admin,DC=example,DC=com
    memberOfАтрибут принадлежности к группе пользователейmemberOf=CN=Users,DC=example,DC=com

    Добавление LDAP

    TIP

    После успешной интеграции LDAP:

    • Пользователи могут входить на платформу с использованием своих корпоративных учётных записей
    • Повторное добавление того же LDAP перезапишет ранее синхронизированных пользователей

    Предварительные условия

    Перед добавлением LDAP подготовьте следующую информацию:

    • Адрес LDAP-сервера
    • Имя пользователя администратора
    • Пароль администратора
    • Другие требуемые параметры конфигурации

    Шаги

    1. В левой панели навигации нажмите Users > IDPs
    2. Нажмите Add LDAP
    3. Настройте следующие параметры:

    Основная информация

    ПараметрОписание
    Server AddressАдрес доступа к LDAP-серверу (например, 192.168.156.141:31758)
    UsernameDN администратора LDAP (например, cn=admin,dc=example,dc=com)
    PasswordПароль учётной записи администратора LDAP
    Login Box Username PromptПодсказка для ввода имени пользователя (например, "Please enter your username")

    Параметры поиска

    NOTE

    Назначение параметров поиска:

    • Сопоставляет записи пользователей LDAP на основе заданных условий
    • Извлекает ключевые атрибуты пользователей и групп
    • Сопоставляет атрибуты LDAP с атрибутами пользователей платформы
    ПараметрОписание
    Object TypeObjectClass для пользователей:
    - OpenLDAP: inetOrgPerson
    - Active Directory: organizationalPerson
    - Groups: posixGroup
    Login FieldАтрибут, используемый в качестве имени пользователя для входа:
    - OpenLDAP: mail (адрес электронной почты)
    - Active Directory: userPrincipalName
    Filter ConditionsУсловия фильтра LDAP для фильтрации пользователей/групп
    Пример: (&(cn=John*)(givenName=*xq*))
    Search Starting PointБазовый DN для поиска пользователей/групп (например, dc=example,dc=org)
    Search ScopeОбласть поиска:
    - sub: всё поддерево каталога
    - one: один уровень ниже начальной точки
    Login AttributeУникальный идентификатор пользователя:
    - OpenLDAP: uid
    - Active Directory: distinguishedName
    Name AttributeАтрибут имени объекта (по умолчанию: cn)
    Email AttributeАтрибут электронной почты:
    - OpenLDAP: mail
    - Active Directory: userPrincipalName
    Group Member AttributeИдентификатор участника группы (по умолчанию: uid)
    Group AttributeАтрибут связи пользовательской группы (по умолчанию: memberuid)
    1. В разделе IDP Service Configuration Validation:

      • Введите корректные имя пользователя и пароль учётной записи LDAP
      • Имя пользователя должно соответствовать настройке Login Field
      • Нажмите, чтобы проверить конфигурацию
    2. (Необязательно) Настройте LDAP Auto-Sync Policy:

      • Включите переключатель Auto-Sync Users
      • Задайте правила синхронизации
      • Используйте онлайн-инструмент для проверки выражений CRON
    3. Нажмите Add

    NOTE

    После добавления LDAP:

    • Пользователи могут войти в систему до синхронизации
    • Информация о пользователях автоматически синхронизируется при первом входе
    • Автоматическая синхронизация выполняется на основе настроенных правил

    Примеры конфигурации LDAP

    Конфигурация LDAP Connector

    В следующем примере показано, как настроить LDAP Connector:

    apiVersion: dex.coreos.com/v1
    kind: Connector
    id: ldap        # Connector ID
    name: ldap      # Connector display name
    type: ldap      # Connector type is LDAP
    metadata:
      name: ldap
      namespace: cpaas-system
    spec:
      config:
        # LDAP server address and port
        host: ldap.example.com:636
        # DN and password for the service account used by the connector.
        # This DN is used to search for users and groups.
        bindDN: uid=serviceaccount,cn=users,dc=example,dc=com
        # Service account password, required when creating a connector.
        bindPW: password
    
        # Login account prompt. For example, username
        usernamePrompt: SSO Username
    
        # User search configuration
        userSearch:
          # Start searching from the base DN
          baseDN: cn=users,dc=example,dc=com
          # LDAP query statement, used to search for users.
          # For example: "(&(objectClass=person)(uid=<username>))"
          filter: (&(objectClass=organizationalPerson))
    
          # The following fields are direct mappings of user entry attributes.
          # User ID attribute
          idAttr: uid
          # Required. Attribute to map to email
          emailAttr: mail
          # Required. Attribute to map to username
          nameAttr: cn
          # Login username attribute
          # Filter condition will be converted to "(<attr>=<username>)", such as (uid=example).
          username: uid
    
          # Extended attributes
          # phoneAttr: phone
    
        # Group search configuration
        groupSearch:
          # Start searching from the base DN
          baseDN: cn=groups,dc=freeipa,dc=example,dc=com
          # Group filter condition
          # "(&(objectClass=group)(member=<user uid>))".
          filter: "(objectClass=group)"
          # User group matching field
          # Group attribute
          groupAttr: member
          # User group member attribute
          userAttr: uid
          # 组显示名称
          nameAttr: cn

    Примеры фильтров пользователей

    # 1. Basic filter: Find all users
    (&(objectClass=person))
    
    # 2. Multiple conditions combination: Find users in a specific department
    (&(objectClass=person)(departmentNumber=1000))
    
    # 3. Find enabled users (Active Directory)
    (&(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
    
    # 4. Find users with a specific email domain
    (&(objectClass=person)(mail=*@example.com))
    
    # 5. Find members of specific group
    (&(objectClass=person)(memberOf=cn=developers,ou=groups,dc=example,dc=com))
    
    # 6. Find recently logged in users (Active Directory)
    (&(objectClass=user)(lastLogon>=20240101000000.0Z))
    
    # 7. Exclude system accounts
    (&(objectClass=person)(!(uid=admin))(!(uid=system)))
    
    # 8. Find users with a specific attribute
    (&(objectClass=person)(mobile=*))
    
    # 9. Find users in multiple departments
    (&(objectClass=person)(|(ou=IT)(ou=HR)(ou=Finance)))
    
    # 10. Complex condition combination example
    (&
      (objectClass=person)
      (|(department=IT)(department=Engineering))
      (!(title=Intern))
      (manager=cn=John Doe,ou=People,dc=example,dc=com)
    )

    Примеры конфигурации поиска групп

    # 1. Basic filter: Find all groups
    (objectClass=groupOfNames)
    
    # 2. Find groups with a specific prefix
    (&(objectClass=groupOfNames)(cn=dev-*))
    
    # 3. Find non-empty groups
    (&(objectClass=groupOfNames)(member=*))
    
    # 4. Find groups with a specific member
    (&(objectClass=groupOfNames)(member=uid=john,ou=People,dc=example,dc=com))
    
    # 5. Find nested groups (Active Directory)
    (&(objectClass=group)(|(groupType=-2147483646)(groupType=-2147483644)))
    
    # 6. Find groups with a specific description
    (&(objectClass=groupOfNames)(description=*admin*))
    
    # 7. Exclude system groups
    (&(objectClass=groupOfNames)(!(cn=system*)))
    
    # 8. Find groups with specific members
    (&(objectClass=groupOfNames)(|(cn=admins)(cn=developers)(cn=operators)))
    
    # 9. Find groups in a specific OU
    (&(objectClass=groupOfNames)(ou=IT))
    
    # 10. Complex condition combination example
    (&
      (objectClass=groupOfNames)
      (|(cn=prod-*)(cn=dev-*))
      (!(cn=deprecated-*))
      (owner=cn=admin,dc=example,dc=com)
    )

    Примеры операторов AND(&) и OR(|) в фильтрах LDAP

    # AND operator (&) - All conditions must be met
    # Syntax: (&(condition1)(condition2)(condition3)...)
    
    # Multiple attribute AND example
    (&
      (objectClass=person)
      (mail=*@example.com)
      (title=Engineer)
      (manager=*)
    )
    
    # OR operator (|) - At least one condition must be met
    # Syntax: (|(condition1)(condition2)(condition3)...)
    
    # Multiple attribute OR example
    (|
      (department=IT)
      (department=HR)
      (department=Finance)
    )
    
    # Combining AND and OR
    (&
      (objectClass=person)
      (|
        (department=IT)
        (department=R&D)
      )
      (employeeType=FullTime)
    )
    
    # Complex condition combination
    (&
      (objectClass=person)
      (|
        (&
          (department=IT)
          (title=*Engineer*)
        )
        (&
          (department=R&D)
          (title=*Developer*)
        )
      )
      (!(status=Inactive))
      (|(manager=*)(isManager=TRUE))
    )

    Синхронизация пользователей LDAP

    После успешной синхронизации пользователей LDAP с платформой вы можете просматривать синхронизированных пользователей в списке пользователей.

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

    Примечания:

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

    • Пользователи, удалённые из LDAP, после синхронизации будут иметь статус Invalid.

    • Значение срока действия по умолчанию для новых синхронизированных пользователей — Permanent.

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

    Порядок выполнения

    1. В левой панели навигации нажмите Users > IDPs.

    2. Нажмите LDAP name, который вы хотите синхронизировать вручную.

    3. В правом верхнем углу нажмите Actions > Sync user.

    4. Нажмите Sync.

      Примечания: Если вы вручную закроете диалог запроса синхронизации, появится диалог подтверждения закрытия. После закрытия диалога запроса синхронизации система продолжит синхронизацию пользователей. Если вы останетесь на странице списка пользователей, вы получите обратную связь о результате синхронизации. Если вы покинете страницу списка пользователей, результаты синхронизации отображаться не будут.

    Связанные операции

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

    ОперацияОписание
    Update LDAPОбновляет информацию конфигурации добавленного LDAP или LDAP Auto-Sync Policy.

    Примечание: После обновления LDAP пользователи, которые в данный момент синхронизированы на платформу через этот LDAP, также будут обновлены. Пользователи, удалённые из LDAP, станут недействительными в списке пользователей платформы. Вы можете очистить лишние данные, выполнив операцию очистки недействительных пользователей.
    Delete LDAPПосле удаления LDAP все пользователи, синхронизированные на платформу через этот LDAP, получат статус Invalid (связь между пользователями и ролями останется без изменений), и они не смогут войти на платформу. После повторной интеграции потребуется заново выполнить синхронизацию, чтобы активировать пользователей.

    Совет: После удаления IDP, если вам нужно удалить пользователей и группы пользователей, синхронизированные на платформу через LDAP, установите флажок Clean IDP Users and User Groups под окном запроса.