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

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

    Обзор LDAP

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

    NOTE

    Ключевые возможности LDAP:

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

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

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

    OpenLDAP

    OpenLDAP — это реализация LDAP с открытым исходным кодом. Если в вашей организации для аутентификации пользователей используется 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
      • Задайте правила синхронизации
      • Используйте online tool для проверки выражений 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. 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. Ниже описано, как вручную запустить операцию синхронизации.

    Примечания:

    • Newly added users in the LDAP integrated with the platform can log in to the platform before performing the user synchronization operation. Once they successfully log in to the platform, their information will be automatically synchronized to the platform.

    • Пользователи, удаленные из 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 ниже окна запроса.