Apache Cassandra için Azure Yönetilen Örneğinde LDAP kimlik doğrulamasını etkinleştirme
Apache Cassandra için Azure Yönetilen Örneği, yönetilen açık kaynak Apache Cassandra veri merkezleri için otomatik dağıtım ve ölçeklendirme işlemleri sağlar. Bu makalede, kümelerinizde ve veri merkezlerinizde LDAP kimlik doğrulamasının nasıl etkinleştirileceği açıklanır.
Önemli
LDAP kimlik doğrulaması genel önizleme aşamasındadır. Bu özellik bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Önkoşullar
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Apache Cassandra için Azure Yönetilen Örneği kümesi. Azure portalından Apache Cassandra için Azure Yönetilen Örneği oluşturma adımlarını gözden geçirin.
Azure'da LDAP Sunucusu dağıtma
Bu bölümde, Azure'da bir Sanal Makinede basit bir LDAP sunucusu oluşturma adımlarını inceleyeceğiz. Zaten çalışan bir LDAP sunucunuz varsa, bu bölümü atlayabilir ve LDAP kimlik doğrulamasını etkinleştirmeyi gözden geçirebilirsiniz.
Ubuntu Server 18.04 LTS kullanarak Azure'da sanal makine dağıtma. Buradaki yönergeleri izleyebilirsiniz.
Sunucunuza bir DNS adı verin:
Docker'ı sanal makineye yükleyin. Bu öğreticiyi öneririz.
Giriş dizininde aşağıdaki metni kopyalayıp yapıştırın ve Enter tuşuna basın. Bu komut, test LDAP kullanıcı hesabı içeren bir dosya oluşturur.
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
Giriş dizinine geri gitme
cd ..
öğesini LDAP sunucunuz için oluşturduğunuz dns adıyla değiştirerek
<dnsname>
aşağıdaki komutu çalıştırın. Bu komut, DOCKER kapsayıcısına TLS'nin etkinleştirildiği bir LDAP sunucusu dağıtır ve daha önce oluşturduğunuz kullanıcı dosyasını kapsayıcıya kopyalar.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
Şimdi kapsayıcıdan sertifikalar klasörünü kopyalayın (değerini LDAP sunucunuz için oluşturduğunuz dns adıyla değiştirin
<dnsname>
):sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
Dns adının doğru olduğunu doğrulayın:
openssl x509 -in certs/ldap.crt -text
ldap.crt
Dosyayı daha sonra kullanmak üzere Azure CLI'da clouddrive'a kopyalayın.Kullanıcıyı ldap'ye ekleyin (değerini LDAP sunucunuz için oluşturduğunuz dns adıyla değiştirin
<dnsname>
):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 kimlik doğrulamasını etkinleştirme
Önemli
Zaten bir LDAP sunucunuz olduğundan yukarıdaki bölümü atladıysanız, lütfen sunucu SSL sertifikalarının etkinleştirildiğinden emin olun. Sertifika için belirtilen, LDAP'nin subject alternative name (dns name)
barındırılacağı sunucunun etki alanıyla da eşleşmelidir, aksi takdirde kimlik doğrulaması başarısız olur.
Şu anda LDAP kimlik doğrulaması genel önizleme özelliğidir. Gerekli Azure CLI uzantısını eklemek için aşağıdaki komutu çalıştırın:
az extension add --upgrade --name cosmosdb-preview
kimlik doğrulama yöntemini kümede "Ldap" olarak ayarlayın ve
<cluster name>
değerini uygun değerlerle değiştirin<resource group>
:az managed-cassandra cluster update -g <resource group> -c <cluster name> --authentication-method "Ldap"
Şimdi özellikleri veri merkezi düzeyinde ayarlayın. ve
<cluster name>
değerini uygun değerlerle ve<dnsname>
LDAP sunucunuz için oluşturduğunuz dns adıyla değiştirin<resource group>
.Not
Aşağıdaki komut, önceki bölümdeki LDAP kurulumunu temel alır. Zaten bir LDAP sunucunuz olduğu için bu bölümü atladıysanız, bunun yerine ilgili sunucuya karşılık gelen değerleri sağlayın. Azure CLI'da clouddrive'ınıza gibi
ldap.crt
bir sertifika dosyası yüklediğinizden emin olun.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
Bu komut tamamlandıktan sonra, yukarıdaki adımda eklenen kullanıcıyla yönetilen örnek veri merkezinize bağlanmak için CQLSH (aşağıya bakın) veya herhangi bir Apache Cassandra açık kaynak istemci sürücüsü kullanabilmeniz gerekir:
export SSL_VALIDATE=false cqlsh --debug --ssl <data-node-ip> -u <user> -p <password>