Включение проверки подлинности LDAP в Azure Управляемый экземпляр для Apache Cassandra
Служба "Управляемый экземпляр Azure для Apache Cassandra" позволяет автоматизировать операции развертывания и масштабирования для управляемых решений Apache Cassandra с открытым кодом для центров обработки данных. В этой статье описывается, как включить проверку подлинности LDAP в кластерах и центрах обработки данных.
Внимание
Проверка подлинности LDAP доступна в общедоступной предварительной версии. Эта функция предоставляется без соглашения об уровне обслуживания и не рекомендуется для использования в рабочей среде. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Необходимые компоненты
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Управляемый экземпляр Azure для кластера Apache Cassandra. Узнайте, как создать Управляемый экземпляр Azure для кластера Apache Cassandra из портал Azure.
Развертывание сервера LDAP в Azure
В этом разделе мы рассмотрим создание простого сервера LDAP на виртуальной машине в Azure. Если у вас уже запущен сервер LDAP, можно пропустить этот раздел и проверить , как включить проверку подлинности LDAP.
Разверните виртуальную машину в Azure с помощью Ubuntu Server 18.04 LTS. Вы можете следовать инструкциям здесь.
Присвойте серверу DNS-имя:
Установите Docker на виртуальной машине. Мы рекомендуем это руководство.
В домашнем каталоге скопируйте и вставьте следующий текст и нажмите клавишу ВВОД. Эта команда создаст файл, содержащий тестовую учетную запись пользователя 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
Переход к домашнему каталогу
cd ..
Выполните приведенную ниже команду, заменив
<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
Теперь скопируйте папку сертификатов из контейнера (замените
<dnsname>
dns-имя, созданное для сервера LDAP):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
Убедитесь, что dns-имя правильно:
openssl x509 -in certs/ldap.crt -text
Скопируйте файл в
ldap.crt
clouddrive в Azure CLI для последующего использования.Добавьте пользователя в 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, или проверка подлинности завершится ошибкой.
В настоящее время проверка подлинности LDAP — это общедоступная предварительная версия. Выполните следующую команду, чтобы добавить необходимое расширение Azure CLI:
az extension add --upgrade --name cosmosdb-preview
Задайте для метода проверки подлинности значение Ldap в кластере, заменив
<resource group>
и<cluster name>
соответствующими значениями:az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
Теперь задайте свойства на уровне центра обработки данных. Замените
<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
После завершения этой команды вы сможете использовать CQLSH (см. ниже) или любой драйвер клиента с открытым кодом Apache Cassandra для подключения к центру обработки данных управляемого экземпляра с помощью пользователя, добавленного на предыдущем шаге:
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>