8장. ID 관리


8.1. LDAP 통신 보안

LDAP 서버에서 인증하거나 LDAP 서버에서 ID 정보를 검색하도록 ID 서비스(keystone)를 구성한 경우 CA 인증서를 사용하여 ID 서비스의 LDAP 통신을 보호할 수 있습니다.

Active Directory에서 CA 인증서를 가져오고 CA 인증서 파일을 PEM(개인 정보 보호 강화 메일) 파일 형식으로 변환하고, ID 서비스에 대해 보안 LDAP 통신을 구성해야 합니다. CA 신뢰가 구성되는 위치 및 방법에 따라 세 가지 방법 중 하나로 이 구성을 수행할 수 있습니다.

8.1.1. Active Directory에서 CA 인증서 가져오기

다음 예제 코드를 사용하여 Active Directory를 쿼리하여 CA 인증서를 가져옵니다. CA_NAME은 인증서의 이름이고 구성에 따라 나머지 매개 변수를 변경할 수 있습니다.

CA_NAME="WIN2012DOM-WIN2012-CA"
AD_SUFFIX="dc=win2012dom,dc=com" LDAPURL="ldap://win2012.win2012dom.com"
ADMIN_DN="cn=Administrator,cn=Users,$AD_SUFFIX"
ADMINPASSWORD="MyPassword"

CA_CERT_DN="cn=latexmath:[$CA_NAME,cn=certification authorities,cn=public key services,cn=services,cn=configuration,$]AD_SUFFIX"

TMP_CACERT=/tmp/cacert.`date +'%Y%m%d%H%M%S'`.$$.pem

ldapsearch -xLLL -H
latexmath:[$LDAPURL -D `echo \"$]ADMIN_DN"`-W -s base -b`echo
"$CA_CERT_DN"` objectclass=* cACertificate
Copy to Clipboard Toggle word wrap

8.1.2. CA 인증서를 PEM 파일 형식으로 변환

/path/cacert.pem이라는 파일을 생성하고, 헤더와 바닥글 내에 Active Directory에서 CA 인증서를 가져온 LDAP 쿼리 PID-tty의 내용을 포함합니다.

-----BEGIN CERTIFICATE-----
MIIDbzCCAlegAwIBAgIQQD14hh1Yz7tPFLXCkKUOszANB... -----END
CERTIFICATE-----
Copy to Clipboard Toggle word wrap

문제 해결을 위해 다음 쿼리를 실행하여 LDAP가 작동하는지 확인하고 PEM 인증서 파일이 올바르게 생성되었는지 확인할 수 있습니다.

LDAPTLS_CACERT=/path/cacert.pem ldapsearch -xLLL -ZZ -H $LDAPURL -s base -b "" "objectclass=*" currenttime
Copy to Clipboard Toggle word wrap

쿼리에서 다음과 유사한 결과를 반환해야 합니다.

dn: currentTime:
20141022050611.0Z
Copy to Clipboard Toggle word wrap

다음 명령을 실행하여 웹 서버에서 호스팅하는 경우 CA 인증서를 가져올 수 있습니다.

예제

  • $HOST=redhat.com
  • $PORT=443
# echo Q | openssl s_client -connect $HOST:$PORT | sed -n -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p'
Copy to Clipboard Toggle word wrap

8.1.3. ID 서비스에 대한 보안 LDAP 통신을 구성하는 방법

8.1.3.1. 방법 1

PEM 파일을 사용하여 LDAP 수준에서 CA 신뢰가 구성된 경우 이 방법을 사용합니다. CA 인증서 파일의 위치를 수동으로 지정합니다. 다음 절차에서는 ID 서비스뿐만 아니라 OpenLDAP 라이브러리를 사용하는 모든 애플리케이션에 대해 LDAP 통신을 보호합니다.

  1. PEM 형식의 CA 인증서 체인이 포함된 파일을 /etc/openldap/certs 디렉터리에 복사합니다.
  2. /etc/openldap/ldap.conf 를 편집하고 [CA_FILE]을 CA 인증서 파일의 위치 및 이름으로 교체하여 다음 지시문을 추가합니다.

    TLS_CACERT /etc/openldap/certs/[CA_FILE]
    Copy to Clipboard Toggle word wrap
  3. Horizon 컨테이너를 다시 시작합니다.

    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap

8.1.3.2. 방법 2

NSS(Network Security Services) 데이터베이스를 사용하여 LDAP 라이브러리 수준에서 CA 신뢰가 구성된 경우 이 방법을 사용합니다. certutil 명령을 사용하여 OpenLDAP 라이브러리에서 사용하는 NSS 인증서 데이터베이스로 CA 인증서를 가져오고 신뢰합니다. 다음 절차에서는 ID 서비스뿐만 아니라 OpenLDAP 라이브러리를 사용하는 모든 애플리케이션에 대해 LDAP 통신을 보호합니다.

  1. 인증서를 가져오고 신뢰하여 [CA_FILE]을 CA 인증서 파일의 위치 및 이름으로 바꿉니다.

    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
    # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
    Copy to Clipboard Toggle word wrap
  2. CA 인증서를 올바르게 가져왔는지 확인합니다.

    # certutil -d /etc/openldap/certs -L
    Copy to Clipboard Toggle word wrap

    CA 인증서가 나열되고 신뢰 속성이 CT,, 로 설정됩니다.

  3. Horizon 컨테이너를 다시 시작합니다.

    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap

8.1.3.3. 방법 3

PEM 파일을 사용하여 Keystone 수준에서 CA 신뢰가 구성된 경우 이 방법을 사용합니다. ID 서비스와 LDAP 서버 간의 통신을 보호하는 최종 방법은 ID 서비스에 대해 TLS를 구성하는 것입니다.

그러나 위의 두 가지 방법과 달리 이 방법은 ID 서비스에 대해서만 LDAP 통신을 보호하며 OpenLDAP 라이브러리를 사용하는 다른 애플리케이션에 대해 LDAP 통신을 보호하지 않습니다.

다음 절차에서는 openstack-config 명령을 사용하여 /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf 파일의 값을 편집합니다.

  1. TLS를 활성화합니다.

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap use_tls True
    Copy to Clipboard Toggle word wrap
  2. 인증서의 위치를 지정하고 [CA_FILE]을 CA 인증서 이름으로 바꿉니다.

    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]
    Copy to Clipboard Toggle word wrap
  3. [CERT_BEHAVIOR]를 아래에 나열된 동작 중 하나로 교체하여 LDAP 서버에서 수신 TLS 세션에서 수행되는 클라이언트 인증서 검사를 지정합니다.

    수요
    항상 LDAP 서버에서 인증서를 요청합니다. 인증서가 제공되지 않거나 제공된 인증서를 기존 인증 기관 파일에 대해 확인할 수 없는 경우 세션이 종료됩니다.
    allow
    항상 LDAP 서버에서 인증서를 요청합니다. 인증서가 제공되지 않은 경우에도 세션이 정상적으로 진행됩니다. 인증서가 제공되었지만 기존 인증 기관 파일에 대해 확인할 수 없는 경우 인증서는 무시되고 세션이 정상적으로 진행됩니다.
    never
    인증서는 요청되지 않습니다.
    # openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]
    Copy to Clipboard Toggle word wrap
  4. keystone 및 horizon 컨테이너를 다시 시작합니다.

    # systemctl restart tripleo_keystone
    # systemctl restart tripleo_horizon
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동