Поделиться через


Включение проверки подлинности LDAP в Azure Управляемый экземпляр для Apache Cassandra

Служба "Управляемый экземпляр Azure для Apache Cassandra" позволяет автоматизировать операции развертывания и масштабирования для управляемых решений Apache Cassandra с открытым кодом для центров обработки данных. В этой статье описывается, как включить проверку подлинности LDAP в кластерах и центрах обработки данных.

Внимание

Проверка подлинности LDAP доступна в общедоступной предварительной версии. Эта функция предоставляется без соглашения об уровне обслуживания и не рекомендуется для использования в рабочей среде. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Необходимые компоненты

Развертывание сервера LDAP в Azure

В этом разделе мы рассмотрим создание простого сервера LDAP на виртуальной машине в Azure. Если у вас уже запущен сервер LDAP, можно пропустить этот раздел и проверить , как включить проверку подлинности LDAP.

  1. Разверните виртуальную машину в Azure с помощью Ubuntu Server 18.04 LTS. Вы можете следовать инструкциям здесь.

  2. Присвойте серверу DNS-имя:

    Снимок экрана: имя виртуальной машины d n в портал Azure.

  3. Установите Docker на виртуальной машине. Мы рекомендуем это руководство.

  4. В домашнем каталоге скопируйте и вставьте следующий текст и нажмите клавишу ВВОД. Эта команда создаст файл, содержащий тестовую учетную запись пользователя LDAP.

    mkdir ldap-user && cd ldap-user && cat >> user.ldif <<EOL
    dn: uid=admin,dc=example,dc=org
    uid: admin
    cn: admin
    sn: 3
    objectClass: top
    objectClass: posixAccount
    objectClass: inetOrgPerson
    loginShell: /bin/bash
    homeDirectory: /home/admin
    uidNumber: 14583102
    gidNumber: 14564100
    userPassword: admin
    mail: admin@example.com
    gecos: admin
    EOL 
    
  5. Переход к домашнему каталогу

    cd ..
    
  6. Выполните приведенную ниже команду, заменив <dnsname> dns-имя, созданное для сервера LDAP ранее. Эта команда развернет сервер LDAP с включенным TLS в контейнер Docker, а также скопируйт файл пользователя, созданный ранее в контейнер.

    sudo docker run --hostname <dnsname>.uksouth.cloudapp.azure.com --name <dnsname> -v $(pwd)/ldap-user:/container/service/slapd/assets/test --detach osixia/openldap:1.5.0
    
  7. Теперь скопируйте папку сертификатов из контейнера (замените <dnsname> dns-имя, созданное для сервера LDAP):

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. Убедитесь, что dns-имя правильно:

    openssl x509 -in certs/ldap.crt -text
    

    Снимок экрана: выходные данные команды для проверки сертификата.

  9. Скопируйте файл в ldap.crt clouddrive в Azure CLI для последующего использования.

  10. Добавьте пользователя в ldap (замените <dnsname> dns-именем, созданным для сервера LDAP):

    sudo docker container exec <dnsname> ldapadd -H ldap://<dnsname>.uksouth.cloudapp.azure.com -D "cn=admin,dc=example,dc=org" -w admin -f /container/service/slapd/assets/test/user.ldif
    

Включение проверки подлинности LDAP

Внимание

Если вы пропустили приведенный выше раздел, так как у вас уже есть существующий сервер LDAP, убедитесь, что у него есть ssl-сертификаты сервера. Указанный subject alternative name (dns name) для сертификата сертификат также должен соответствовать домену сервера, на котором размещен ПРОТОКОЛ LDAP, или проверка подлинности завершится ошибкой.

  1. В настоящее время проверка подлинности LDAP — это общедоступная предварительная версия. Выполните следующую команду, чтобы добавить необходимое расширение Azure CLI:

    az extension add --upgrade --name cosmosdb-preview
    
  2. Задайте для метода проверки подлинности значение Ldap в кластере, заменив <resource group> и <cluster name> соответствующими значениями:

    az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
    
  3. Теперь задайте свойства на уровне центра обработки данных. Замените <resource group> и <cluster name> соответствующими значениями и <dnsname> dns-именем, созданным для сервера LDAP.

    Примечание.

    Следующая команда основана на настройке LDAP в предыдущем разделе. Если этот раздел пропущен, так как у вас уже есть существующий сервер LDAP, укажите соответствующие значения для этого сервера. Убедитесь, что вы добавили файл сертификата, например ldap.crt в clouddrive в Azure CLI.

    ldap_search_base_distinguished_name='dc=example,dc=org'
    ldap_server_certificates='/usr/csuser/clouddrive/ldap.crt'
    ldap_server_hostname='<dnsname>.uksouth.cloudapp.azure.com'
    ldap_service_user_distinguished_name='cn=admin,dc=example,dc=org'
    ldap_service_user_password='admin'
    
    az managed-cassandra datacenter update -g `<resource group>` -c `<cluster name>` -d datacenter-1 --ldap-search-base-dn $ldap_search_base_distinguished_name --ldap-server-certs $ldap_server_certificates --ldap-server-hostname $ldap_server_hostname --ldap-service-user-dn $ldap_service_user_distinguished_name --ldap-svc-user-pwd $ldap_service_user_password
    
  4. После завершения этой команды вы сможете использовать CQLSH (см. ниже) или любой драйвер клиента с открытым кодом Apache Cassandra для подключения к центру обработки данных управляемого экземпляра с помощью пользователя, добавленного на предыдущем шаге:

    export SSL_VALIDATE=false
    cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>
    

Следующие шаги