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

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

    Обзор LDAP

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

    NOTE

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

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

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

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

    OpenLDAP

    OpenLDAP — это open-source реализация LDAP. Если в вашей организации для аутентификации пользователей используется 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 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 ниже поля подсказки.