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


Включение проверки подлинности 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 Long-Term поддержки (LTS). Подробные инструкции см. в разделе "Развертывание сервера Ubuntu".

  2. Присвойте серверу имя системы доменных имен (DNS).

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

  3. Установите Docker на виртуальной машине. Руководство по установке и использованию Docker в Ubuntu 18.04.

  4. В домашнем каталоге скопируйте и вставьте следующий текст и нажмите Enter. Эта команда создает файл, содержащий тестовую учетную запись пользователя 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, убедитесь, что он включает сертификаты уровня Secure Sockets Layer. Для сертификата указанный 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 на облачный диск в 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>