다음을 통해 공유


Azure Managed Instance for Apache Cassandra에서 LDAP 인증을 사용하도록 설정하는 방법

Azure Managed Instance for Apache Cassandra는 관리형 오픈 소스 Apache Cassandra 데이터 센터에 자동화된 배포 및 크기 조정 작업을 제공합니다. 이 문서에서는 클러스터 및 데이터 센터에 LDAP 인증을 사용하도록 설정하는 방법을 설명합니다.

중요합니다

LDAP 인증은 공개 미리 보기로 제공됩니다.

해당 기능은 별도의 서비스 수준 규약 없이 이용할 수 있습니다. 프로덕션 워크로드에는 권장하지 않습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

필수 조건

Azure에서 LDAP 서버 배포

이 섹션에서는 Azure의 Virtual Machine에 간단한 LDAP 서버를 만듭니다. LDAP 서버가 이미 실행 중인 경우 LDAP 인증 사용으로 건너뛸 수 있습니다.

  1. Ubuntu Server 18.04 LTS를 사용하여 Azure에서 가상 머신을 배포합니다. 자세한 지침은 Ubuntu 서버 배포를 참조하세요.

  2. 서버에 DNS 이름을 지정합니다.

    Azure Portal의 가상 머신 DNS 이름 스크린샷

  3. 가상 머신에 Docker를 설치합니다. 자습서는 Ubuntu 18.04에서 Docker를 설치하고 사용하는 방법을 참조하세요.

  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. 다음 명령을 실행합니다. 이전에 LDAP 서버에 대해 만든 dns 이름으로 <dnsname>을 바꾸십시오. 이 명령은 Docker 컨테이너에 TLS를 사용하도록 설정된 LDAP 서버를 배포하고 이전에 만든 사용자 파일을 컨테이너에 복사합니다.

    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. 컨테이너에서 인증서 폴더를 복사합니다. LDAP 서버에 대해 만든 DNS 이름으로 <dnsname>을(를) 교체하세요.

    sudo docker cp <dnsname>:/container/service/slapd/assets/certs certs
    
  8. DNS 이름이 올바른지 확인합니다.

    openssl x509 -in certs/ldap.crt -text
    

    인증서를 확인하는 명령의 출력 스크린샷

  9. 나중에 사용할 수 있도록 Azure CLI의 ldap.crt 파일을 복사합니다.

  10. LDAP에 사용자를 추가합니다. LDAP 서버에 대해 만든 DNS 이름으로 <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 인증 사용

중요합니다

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>을 LDAP 서버용으로 만든 dns 이름으로 바꿉니다.

    참고 항목

    다음 명령은 이전 섹션의 LDAP 설정을 기반으로 합니다. 기존 LDAP 서버가 이미 있으므로 해당 섹션을 건너뛴 경우, 이 서버에 해당하는 값을 대신 제공합니다. Azure CLI에서 클라우드 드라이브에 같은 ldap.crt 인증서 파일을 업로드했는지 확인합니다.

    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>
    

다음 단계