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

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

    Содержание

    Обзор LDAP

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

    NOTE

    Ключевые особенности LDAP:

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

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

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

    OpenLDAP

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

    NOTE

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

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

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

    Active Directory

    Active Directory — это LDAP-основанное программное обеспечение Microsoft для предоставления служб хранения каталогов в системах 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 или 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Сообщение-приглашение для ввода имени пользователя (например, "Пожалуйста, введите ваше имя пользователя")

    Настройки поиска

    NOTE

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

    • Соответствие LDAP-записям пользователей по заданным условиям
    • Извлечение ключевых атрибутов пользователей и групп
    • Отображение атрибутов LDAP на атрибуты пользователей платформы
    ПараметрОписание
    Object TypeObjectClass для пользователей:
    - OpenLDAP: inetOrgPerson
    - Active Directory: organizationalPerson
    - Группы: 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-коннектора

    Ниже приведён пример настройки LDAP-коннектора:

    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. Базовый фильтр: Найти всех пользователей
    (&(objectClass=person))
    
    # 2. Комбинация нескольких условий: Найти пользователей в конкретном отделе
    (&(objectClass=person)(departmentNumber=1000))
    
    # 3. Найти активных пользователей (Active Directory)
    (&(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
    
    # 4. Найти пользователей с определённым доменом электронной почты
    (&(objectClass=person)(mail=*@example.com))
    
    # 5. Найти участников конкретной группы
    (&(objectClass=person)(memberOf=cn=developers,ou=groups,dc=example,dc=com))
    
    # 6. Найти недавно вошедших пользователей (Active Directory)
    (&(objectClass=user)(lastLogon>=20240101000000.0Z))
    
    # 7. Исключить системные аккаунты
    (&(objectClass=person)(!(uid=admin))(!(uid=system)))
    
    # 8. Найти пользователей с определённым атрибутом
    (&(objectClass=person)(mobile=*))
    
    # 9. Найти пользователей в нескольких отделах
    (&(objectClass=person)(|(ou=IT)(ou=HR)(ou=Finance)))
    
    # 10. Пример сложной комбинации условий
    (&
      (objectClass=person)
      (|(department=IT)(department=Engineering))
      (!(title=Intern))
      (manager=cn=John Doe,ou=People,dc=example,dc=com)
    )

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

    # 1. Базовый фильтр: Найти все группы
    (objectClass=groupOfNames)
    
    # 2. Найти группы с определённым префиксом
    (&(objectClass=groupOfNames)(cn=dev-*))
    
    # 3. Найти непустые группы
    (&(objectClass=groupOfNames)(member=*))
    
    # 4. Найти группы с определённым участником
    (&(objectClass=groupOfNames)(member=uid=john,ou=People,dc=example,dc=com))
    
    # 5. Найти вложенные группы (Active Directory)
    (&(objectClass=group)(|(groupType=-2147483646)(groupType=-2147483644)))
    
    # 6. Найти группы с определённым описанием
    (&(objectClass=groupOfNames)(description=*admin*))
    
    # 7. Исключить системные группы
    (&(objectClass=groupOfNames)(!(cn=system*)))
    
    # 8. Найти группы с определёнными участниками
    (&(objectClass=groupOfNames)(|(cn=admins)(cn=developers)(cn=operators)))
    
    # 9. Найти группы в конкретном OU
    (&(objectClass=groupOfNames)(ou=IT))
    
    # 10. Пример сложной комбинации условий
    (&
      (objectClass=groupOfNames)
      (|(cn=prod-*)(cn=dev-*))
      (!(cn=deprecated-*))
      (owner=cn=admin,dc=example,dc=com)
    )

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

    # Оператор AND (&) - все условия должны быть выполнены
    # Синтаксис: (&(condition1)(condition2)(condition3)...)
    
    # Пример AND с несколькими атрибутами
    (&
      (objectClass=person)
      (mail=*@example.com)
      (title=Engineer)
      (manager=*)
    )
    
    # Оператор OR (|) - должно быть выполнено хотя бы одно условие
    # Синтаксис: (|(condition1)(condition2)(condition3)...)
    
    # Пример OR с несколькими атрибутами
    (|
      (department=IT)
      (department=HR)
      (department=Finance)
    )
    
    # Комбинирование AND и OR
    (&
      (objectClass=person)
      (|
        (department=IT)
        (department=R&D)
      )
      (employeeType=FullTime)
    )
    
    # Сложная комбинация условий
    (&
      (objectClass=person)
      (|
        (&
          (department=IT)
          (title=*Engineer*)
        )
        (&
          (department=R&D)
          (title=*Developer*)
        )
      )
      (!(status=Inactive))
      (|(manager=*)(isManager=TRUE))
    )

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

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

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

    Примечания:

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

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

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

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

    Порядок действий

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

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

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

    4. Нажмите Sync.

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

    Соответствующие операции

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

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

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

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