알림

Duet AI가 Google Workspace를 위한 Gemini로 바뀌었습니다. 자세히 알아보기

4. LDAP 클라이언트를 보안 LDAP 서비스에 연결하기

LDAP 클라이언트를 보안 LDAP 서비스에 연결하려면 이 도움말의 안내를 따르세요.

중요:

  • 공급업체 설명서 읽기
    이 도움말에 안내된 LDAP 클라이언트를 보안 LDAP 서비스에 연결하는 방법에 관한 세부정보는 참고용으로만 제공되며 변경될 수 있습니다. 이 도움말 외에도 클라이언트를 보안 LDAP 서비스에 연결하는 방법에 관한 최신 정보가 안내된 공급업체의 설명서를 읽어보세요. 
  • 시작하기 전에
    이 안내를 따르기 전에 먼저 보안 LDAP 서비스에 클라이언트 추가, 액세스 권한 설정클라이언트 인증서와 키 다운로드, 그리고 필요한 경우 액세스 사용자 인증 정보 생성을 모두 마쳤는지 확인하시기 바랍니다.
  • 연결 테스트하기
    필요한 경우 이 단계를 시작하기 전에 ldapsearch, ADSI, ldp.exe와 같은 간단한 도구를 사용해 간편하게 연결 테스트를 할 수 있습니다. 또한 LDAP 클라이언트를 서비스에 연결하는 중에 오류가 발생하는 경우 문제를 해결할 때도 이 도구를 사용할 수 있습니다. 자세한 내용은 보안 LDAP 연결 테스트하기를 참고하세요.
  • 설정 단계를 완료하는 방법
    이 페이지의 안내에 따라 LDAP 클라이언트를 연결한 후 Google 관리 콘솔에서 서비스 상태를 사용으로 전환하여 LDAP 클라이언트의 설정을 완료해야 합니다. 자세한 안내는 5. LDAP 클라이언트를 사용으로 전환하기를 참고하세요.

이 도움말에 포함된 내용

이 도움말에는 다음과 같은 섹션이 포함되어 있습니다.

  • 기본 구성 안내: 이 도움말에 설명되지 않은 LDAP 클라이언트 연결 방법에 관한 일반적인 안내가 포함되어 있습니다.
  • 특정 LDAP 클라이언트 구성 안내: Atlassian Jira 또는 OpenVPN과 같은 특정 LDAP 클라이언트를 보안 LDAP 서비스에 연결하는 방법에 관한 안내가 포함되어 있습니다. 단계는 클라이언트 유형에 따라 다릅니다.
  • 자바 애플리케이션 구성 안내: LDAP 기능을 제공하는 자바 기반 애플리케이션에 대한 일반적인 안내가 포함되어 있습니다.
  • (선택사항) stunnel을 프록시로 사용하기: 이 섹션에는 디지털 인증서를 지원하지 않는 LDAP 클라이언트를 연결할 때 추가적으로 고려할 사항에 관한 안내가 포함되어 있습니다.

다음 안내에서는 다운로드한 클라이언트 키 및 인증서 파일을 각각 ldap-client.keyldap-client.crt라고 가정합니다.

기본 구성 안내

이 섹션에는 LDAP 클라이언트를 보안 LDAP 서비스에 연결하는 방법에 관한 일반적인 안내가 포함되어 있습니다. LDAP 클라이언트가 아래 안내에 표시되어 있지 않으면 해당 애플리케이션의 설명서를 확인하세요.

참고: 특정 LDAP 클라이언트(예: Atlassian Jira, SSSD 등)는 사용자를 인증하는 동안에 사용자 조회를 수행하여 사용자에 대한 자세한 정보를 얻습니다. 이러한 LDAP 클라이언트에서 사용자 인증이 제대로 작동하기 위해서는 사용자 인증 정보 확인이 사용 설정된 모든 조직 단위에 대해 사용자 정보 읽기를 사용 설정해야 합니다. 자세한 내용은 액세스 권한 설정하기를 참고하세요.

LDAP 클라이언트를 보안 LDAP 서비스에 연결하려면 다음 안내를 따르세요.

  1. 클라우드 디렉터리를 사용하여 LDAP 클라이언트를 LDAP 서버로 구성합니다.
  2. 인증서를 LDAP 클라이언트에 업로드합니다.


    보안 LDAP 서비스는 TLS 클라이언트 인증서를 기본 인증 메커니즘으로 사용합니다. 인증서를 LDAP 클라이언트에 업로드하는 절차를 시작하려면 LDAP 클라이언트의 인증 또는 디렉터리 설정을 열고 아래 표에 제공된 세부정보를 입력하세요. 

    참고: TLS 인증서를 업로드하는 방법 및 업로드할 위치에 관한 자세한 내용은 공급업체의 설명서를 참고하세요.

기본 연결 정보는 다음 표를 참고하세요.

호스트 이름

ldap.google.com

포트

StartTLS가 사용 설정된 LDAP의 경우 389
SSL/TLS가 사용 설정된 LDAPS의 경우636

기본 DN

DN 형식의 도메인으로, 예를 들면 다음과 같습니다.

example.com의 경우 dc=example,dc=com

사용자 이름 및 비밀번호

일부 LDAP 클라이언트에서는 인증서로 인증하더라도 추가로 사용자 이름과 비밀번호를 입력해야 합니다. 사용자 이름과 비밀번호의 입력이 선택사항인 경우 이 단계를 건너뛸 수 있습니다. 

Google 관리 콘솔에서 사용자 이름과 비밀번호를 생성합니다. 자세한 내용은 액세스 사용자 인증 정보 생성하기를 참고하세요.

클라이언트 인증서 및 키 파일

Google 관리 콘솔에서 다운로드한 인증서 및 키 파일을 사용합니다. LDAP 클라이언트에서 클라이언트 인증서로 인증하는 방법을 제공하지 않는 경우 stunnel을 프록시로 사용하기를 참고하세요. 

중요: Apache Directory Studio와 같은 일부 LDAP 클라이언트는 디지털 인증서 업로드를 지원하지 않습니다. 이 경우 문제를 해결하려면 stunnel을 프록시로 사용하기를 참고하세요.

LDAP 클라이언트별 구성 안내

ADSI Edit(Windows)

다음 단계를 따르세요.

  1. ldp.exe(Windows)의 1~11단계에 따라 클라이언트 인증서를 설치합니다.
  2. Action(액션) > Connect to(연결)…로 이동합니다.
  3. 다음 연결 설정을 입력합니다.

    Name(이름): 연결 이름(예: Google LDAP)을 입력합니다.
    Connection Point(연결 포인트): 'Select or type a Distinguished Name or Naming Context(고유 이름 또는 명명 컨텍스트를 선택하거나 입력)'에서
    도메인 이름을 DN 형식(예: example.com의 경우 dc=example,dc=com)으로 입력합니다.

    Computer(컴퓨터): 'Select or type a domain or server(도메인 또는 서버를 선택하거나 입력)'에서
    ldap.google.com

    Use SSL-based Encryption(SSL 기반 암호화 사용): 선택
     
  4. Advanced(고급)...를 클릭한 후 다음 세부정보를 입력합니다.

    Specify credentials(사용자 인증 정보 지정): 선택
    Username(사용자 이름): 관리 콘솔의 액세스 사용자 인증 정보 사용자 이름
    Password(비밀번호): 관리 콘솔의 액세스 사용자 인증 정보 비밀번호
    Port Number(포트 번호): 636
    Protocol(프로토콜): LDAP
    Simple bind authentication(단순 바인드 인증): 선택
     
  5. OK(확인)를 클릭한 후 OK(확인)를 다시 클릭합니다.
  6. 연결에 성공하면 기본 DN의 Active Directory 내용이 오른쪽 창에 표시됩니다.
Apache Directory Studio

Apache Directory Studio를 사용하려면 stunnel을 통해 연결하고 Google 관리 콘솔에서 생성된 액세스 사용자 인증 정보(사용자 이름 및 비밀번호)를 사용합니다. 사용자 인증 정보가 있고 stunnel에서 localhost 포트 1389를 수신한다는 가정 하에 다음 단계를 따르세요.

  1. File(파일) > New(새 파일)…를 클릭합니다.
  2. LDAP Browser(LDAP 브라우저) > LDAP Connection(LDAP 연결)을 선택합니다.
  3. Next(다음)를 클릭합니다.
  4. 다음 연결 매개변수를 입력합니다.

    Connection name(연결 이름): 이름(예: Google LDAP) 선택
    Hostname(호스트 이름): localhost
    Port(포트): 1389(또는 stunnel 수신/수락 포트)
    Encryption method(암호화 방법): 암호화 없음(참고: stunnel이 원격으로 실행되는 경우 stunnel과 클라이언트 간 암호화가 권장됨)
     
  5. Next(다음)를 클릭합니다.
  6. 다음 인증 매개변수를 입력합니다.

    Authentication Method(인증 방법): Simple Authentication(단순 인증)
    Bind DN or user(바인드 DN 또는 사용자): 관리 콘솔의 액세스 사용자 인증 정보 사용자 이름
    Bind password(바인드 비밀번호): 관리 콘솔의 액세스 사용자 인증 정보 비밀번호
     
  7. Next(다음)를 클릭합니다.
  8. 기본 DN을 입력합니다.
    DN 형식의 도메인 이름(example.com의 경우 dc=example,dc=com)입니다.
  9. Finish(마침)를 클릭합니다.
Atlassian Jira

Atlassian Jira에서는 사용자를 인증하는 동안 사용자 조회를 수행하여 사용자에 대한 자세한 정보를 얻습니다. LDAP 클라이언트의 사용자 인증이 제대로 작동하기 위해서는 사용자 인증 정보 확인이 사용 설정된 모든 조직 단위에 대해 사용자 정보 읽기 그룹 정보 읽기를 사용 설정해야 합니다. 자세한 안내는 액세스 권한 설정하기를 참고하세요.

중요: 다음 안내를 따를 경우 keystorePassword가 사용자 및 로그 파일에 노출될 수 있습니다. 예방 조치를 취하여 로컬 셸, 로그 파일, Google 관리 콘솔에 대한 무단 액세스를 방지하세요. 다음 안내의 대안으로 stunnel4 메서드를 사용할 수도 있습니다(선택사항: stunnel을 프록시로 사용하기 참고). 

참고: 다음 안내에서는 Jira가 /opt/atlassian/jira에 설치된 것으로 가정합니다.

Atlassian Jira 클라이언트를 보안 LDAP 서비스에 연결하려면 다음 안내를 따르세요.

  1. 인증서와 키를 Jira 서버에 복사합니다. 이때 이 인증서는 LDAP 클라이언트를 보안 LDAP 서비스에 추가할 때 Google 관리 콘솔에서 생성된 인증서입니다.

    예를 들면 다음과 같습니다.
    $  scp ldap-client.key user@jira-server:
     
  2. 인증서와 키를 자바 키 저장소 형식으로 변환합니다. 변환하는 과정에서 비밀번호를 입력하라는 메시지가 표시됩니다. 안전한 비밀번호를 선택하여 프롬프트가 표시될 때마다 동일하게 사용하면 간편합니다.

    $  openssl pkcs12 -export -out jira-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    $  sudo /opt/atlassian/jira/jre/bin/keytool -v -importkeystore -srckeystore jira-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore /opt/atlassian/jira/jira-ldap.jks -deststoretype JKS

     
  3. 새로 생성된 키 저장소를 사용하도록 Jira를 구성합니다. 여기에 설명된 안내에 따라 다음 옵션을 추가합니다.

    “-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password”

    Linux의 경우:
    1. /opt/atlassian/jira/bin/setenv.sh를 수정합니다.
    2. JVM_SUPPORT_RECOMMENDED_ARGS 설정을 찾습니다.
    3. '-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password'를 추가하고 'password'를 위에서 선택한 비밀번호로 변경합니다.
  4. Jira를 다시 시작합니다.

    $  /opt/atlassian/jira/bin/stop-jira.sh
    $  /opt/atlassian/jira/bin/start-jira.sh

     
  5. 관리자로 Jira 웹 인터페이스에 로그인합니다.
    1. Settings(설정) > User management(사용자 관리)로 이동합니다('Settings(설정)'는 오른쪽 상단의 톱니바퀴 아이콘을 클릭합니다).
    2. User Directories(디렉터리 사용)를 클릭합니다.
    3. Add Directory(디렉터리 추가)를 클릭합니다.
    4. 유형에서 LDAP을 선택합니다.
    5. Next(다음)를 클릭합니다.
  6. 다음을 입력합니다.

    Name(이름)

    Google 보안 LDAP

    Directory type(디렉터리 유형)

    OpenLDAP

    Hostname(호스트 이름)

    ldap.google.com

    Port(포트)

    636

    Use SSL(SSL 사용)

    선택

    Username(사용자 이름)

    Google 관리 콘솔에서 사용자 이름과 비밀번호를 생성합니다. 자세한 내용은 액세스 사용자 인증 정보 생성하기를 참고하세요.

    Password(비밀번호)

    Google 관리 콘솔에서 사용자 이름과 비밀번호를 생성합니다. 자세한 내용은 액세스 사용자 인증 정보 생성하기를 참고하세요.

    Base DN(기본 DN)

    DN 형식의 도메인 이름(예: example.com의 경우 dc=example,dc=com)

    Additional User DN(추가 사용자 DN)

    선택사항입니다. 'ou=Users'

    Additional Group DN(추가 그룹 DN)

    선택사항입니다. 'ou=Groups'

    LDAP Permissions(LDAP 권한)

    읽기 전용

    Advanced Settings(고급 설정)

    변경하지 않음

    User Schema Settings(사용자 스키마 설정) >
    User Name Attribute(사용자 이름 속성)

    googleUid

    User Schema Settings(사용자 스키마 설정) >
    User Name RDN Attribute(사용자 이름 RDN 속성)

    uid

    Group Schema Settings(그룹 스키마 설정) >
    Group Object Class(그룹 객체 클래스)

    groupOfNames

    Group Schema Settings(그룹 스키마 설정) >
    Group Object Filter(그룹 객체 필터)

    (objectClass=groupOfNames)

    Membership Schema Settings(멤버십 스키마 설정) >
    Group Members Attribute(그룹 회원 속성)

    member

    Membership Schema Settings(멤버십 스키마 설정) >
    Use the User Membership Attribute(사용자 멤버십 속성 사용)

    선택

     

  7. 그룹에 역할을 부여합니다.

    사용자가 Jira에 액세스할 수 있도록 승인된 그룹의 회원인 경우에만 Atlassian Jira에 로그인할 수 있습니다.

    그룹에 역할을 부여하려면 다음 안내를 따르세요.
    1. Settings(설정) > Applications(애플리케이션) > Application access(애플리케이션 액세스)로 이동합니다. 
    2. Select group(그룹 선택) 입력란에 Jira에 대한 액세스 권한을 제공하려는 Google 그룹의 이름을 입력합니다.
CloudBees Core/Jenkins

CloudBees Core를 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 Google Cloud ID 보안 LDAP로 CloudBees Core 구성하기를 참고하세요.

FreeRadius

다음 단계를 따르세요.

  1. /etc/freeradius/3.0/FreeRADIUS를 설치하고 구성합니다.

    FreeRADIUS가 설치되면 freeradius-ldap 플러그인을 설치하여 LDAP 구성을 추가할 수 있습니다.

    $  sudo apt-get install freeradius freeradius-ldap
     
  2. LDAP 클라이언트 키 및 인증서 파일을 /etc/freeradius/3.0/certs/ldap-client.key/etc/freeradius/3.0/certs/ldap-client.crt에 각각 복사합니다.

    $  chown freeradius:freeradius
         /etc/freeradius/3.0/certs/ldap-client.*
    $  chmod 640 /etc/freeradius/3.0/certs/ldap-client.*

     
  3. LDAP 모듈을 사용 설정합니다.

    $  cd /etc/freeradius/3.0/mods-enabled/
    $  ln -s ../mods-available/ldap ldap

     
  4. /etc/freeradius/3.0/mods-available/ldap을 수정합니다.
    1. ldap->server = 'ldaps://ldap.google.com:636'
    2. identity = 애플리케이션 사용자 인증 정보의 사용자 이름
    3. password = 애플리케이션 사용자 인증 정보의 비밀번호
    4. base_dn = ‘dc=domain,dc=com’
    5. tls->start_tls = no
    6. tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
    7. tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
    8. tls->require_cert = ‘allow’
    9. 'ldap -> post-auth -> update' 섹션을 나타내는 탐색경로의 모든 필드를 주석 처리합니다.
  5. /etc/freeradius/3.0/sites-available/default를 수정합니다.
    수정하면 FreeRadius 클라이언트 연결이 변경됩니다. 기본 클라이언트를 사용하지 않는 경우에는 구성한 관련 클라이언트(내부 터널 또는 모든 맞춤 클라이언트)를 업데이트해야 합니다.
     
    1. authorize(승인) 섹션을 수정하여 하단의 비밀번호 인증 프로토콜(PAP) 구문 뒤에 다음 블록을 추가합니다.

      if (User-Password) {
          update control {
              Auth-Type := ldap
          }
      }

       
    2. authorize(승인) 섹션에서 ldap 앞에 있는 ‘-’ 기호를 삭제하여 LDAP을 사용 설정합니다.

          #
          #  The ldap module reads passwords from the LDAP database.
          ldap
       
    3. 다음과 같이 Auth-Type LDAP 블록을 수정하여 authenticate(인증) 섹션을 변경합니다.

      # Auth-Type LDAP {
          ldap
      # }

       
    4. 다음과 같이 Auth-Type PAP 블록을 수정하여 authenticate(인증) 섹션을 변경합니다.

      Auth-Type PAP {
          #  pap
          ldap
      }
GitLab

GitLab을 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 GitLab용 Google 보안 LDAP 구성하기를 참고하세요.

Itopia/Ubuntu

Itopia/Ubuntu를 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 사용자 로그인을 위해 Ubuntu 16.04에서 Google Cloud ID LDAP 구성하기를 참고하세요.

Ivanti/LanDesk

다음 단계를 따르세요.

  1. Ivanti 웹 서버에서 텍스트 편집기로 다음 두 폴더에서 OpenLDAPAuthenticationConfiguration.xml 또는 OpenLDAPSSLAuthenticationConfiguration.xml을 엽니다.

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.FrameworkC:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess(여기에서 servicedesk는 인스턴스 이름임)
  2. <Server> 값을 ldap.google.com으로 업데이트합니다.
  3. <Port> 값을 StartTLS가 사용 설정된 클리어텍스트인 경우 포트 3268로 업데이트하고, SSL/TLS 포트인 경우 3269로 업데이트합니다. 기본값은 클리어텍스트 포트인 경우 389이며 SSL/TLS인 경우에는 636입니다. 
  4. <TestDN> 값을 DN 형식의 도메인 이름(예: example.com의 경우 dc=example,dc=com)으로 설정합니다.
  5. ..ProgramData\LANDesk\ServiceDesk\ServiceDesk.Framework\tps.config..ProgramData\LANDesk\ServiceDesk\WebAccess\tps.config 모두에 다음 행을 추가합니다.

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPLogon.OpenLDAPAuthenticationProvider" />

    또는 다음 행을 추가합니다.

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPSSLLogon.OpenLDAPSSLAuthenticationProvider" />
     
  6. Ivanti Configuration Center에서 필수 인스턴스를 엽니다.
  7. Service Desk Framework 애플리케이션 옆에 있는 Edit(수정)를 클릭합니다.
    Service Desk Framework의 Edit Application(애플리케이션 수정) 대화상자가 표시됩니다.
  8. Configuration parameters(구성 매개변수) 그룹의 Logon policy(로그온 정책) 목록에서 Explicit only(명시적)를 선택한 다음 OK(확인)를 클릭합니다.
  9. Web Access 애플리케이션 옆에 있는 Edit(수정)를 클릭합니다.
    Web Access의 Edit Application(애플리케이션 수정) 대화상자가 표시됩니다.
  10. Configuration parameters(구성 매개변수) 그룹의 Logon policy(로그온 정책) 목록에서 Explicit only(명시적)를 선택한 다음 OK(확인)를 클릭합니다.

로그인할 때 연결된 도메인 사용자의 네트워크 비밀번호를 사용합니다.

LDAP 서버 인증에 대한 예외적인 로그 기록

LDAP 서버 인증을 구성하는 데 문제가 발생하는 경우 예외적인 로그 기록을 사용 설정하여 문제를 확인할 수 있습니다. 이 기능은 기본적으로 사용 중지되어 있으며 조사를 마치면 예외적인 로그 기록을 다시 사용 중지하는 것이 좋습니다.

LDAP 서버 인증에 대해 예외적인 로그 기록을 사용 설정하려면 다음 안내를 따르세요.

  1. 텍스트 편집기에서 적절한 인증 구성 XML 파일을 엽니다.

    DirectoryServiceAuthenticationConfiguration.xml, OpenLDAPAuthenticationConfiguration.xml 또는 OpenLDAPSSLAuthenticationConfiguration.xml
  2. 다음과 같이 행을 변경합니다.

    <ShowExceptions>false</ShowExceptions>

    <ShowExceptions>true</ShowExceptions>
    로 변경  
  3. 변경사항을 저장합니다.
Ldp.exe(Windows)

다음 단계를 따르세요.

  1. 인증서 및 키 파일을 하나의 PKCS12 형식 파일로 변환합니다. 명령 프롬프트에 다음 명령어를 입력합니다.

    macOS 또는 Linux를 사용하는 경우 다음 명령어를 사용합니다.​

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    출력 파일을 암호화할 비밀번호를 입력합니다.
     

    Windows를 사용하는 경우 다음 명령어를 사용합니다.

    $  certutil -mergepfx ldap-client.crt ldap-client.p12

    중요:  두 개의 파일(<CERT_FILE>.crt<CERT_FILE>.key)은 같은 디렉터리에 있어야 합니다. 또한 keycrt의 이름은 확장자만 다르고 동일해야 합니다. 이 예에서는 ldap-client.crtldap-client.key라는 이름을 사용합니다.

  2. Control Panel(제어판)로 이동합니다.
  3. 검색창에서 'certificate'를 검색한 다음 Manage user certificates(사용자 인증서 관리)를 클릭합니다.
  4. Action(조치) > All Tasks(모든 할 일) > Import(가져오기)…로 이동합니다.
  5. Current User(현재 사용자)를 선택하고 Next(다음)를 클릭합니다.
  6. Browse(둘러보기)…를 클릭합니다.
  7. 대화상자의 오른쪽 하단에 있는 file type(파일 형식) 드롭다운에서 Personal Information Exchange (*.pfx;*.p12)를 선택합니다.
  8. 2단계에서 변환한 ldap-client.p12 파일을 선택하고 Open(열기)을 클릭한 후 Next(다음)를 클릭합니다.
  9. 2단계에서 입력한 비밀번호를 입력하고 Next(다음)를 클릭합니다.
  10. Personal(개인) 인증서 저장소를 선택하고 Next(다음)를 클릭한 후 Finish(마침)를 클릭합니다.
  11. Ldp.exe를 실행합니다.
  12. Connection(연결) > Connect(연결)...로 이동합니다.
  13. 다음 연결 세부정보를 입력합니다.

    Server(서버): ldap.google.com
    Port(포트): 636
    Connectionless(비연결): 선택 해제
    SSL: 선택
     
  14. OK(확인)를 클릭합니다.
  15. View(보기) > Tree(트리)로 이동합니다.
  16. 기본 DN을 입력합니다. DN 형식의 도메인 이름(예: example.com의 경우 dc=example,dc=com)입니다.
  17. OK(확인)를 클릭합니다.
  18. 연결에 성공하면 LDP.exe에서 Active Directory 내용(예: 기본 DN에 있는 모든 속성)을 오른쪽 창에 표시합니다.
Netgate/pfSense

Netgate/pfSense를 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 Google Cloud ID를 인증 소스로 구성하기를 참고하세요.

OpenLDAP/ldapsearch(Linux)

명령줄에서 LDAP 디렉터리에 액세스하기 위해서는 OpenLDAP ldapsearch 명령어를 사용할 수도 있습니다.

클라이언트 인증서와 키 파일이 각각 ldap-client.crtldap-client.key이고 도메인은 example.com이며 사용자 이름이 jsmith라고 가정합니다.

$   LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(uid=jsmith)'

위의 명령어를 실행하면 관련 환경 변수가 클라이언트 키를 가리키도록 설정됩니다. 다른 ldapsearch 옵션을 원하는 필터, 요청된 속성 등으로 대체할 수 있습니다. 기타 자세한 내용은 ldapsearch man 페이지('man ldapsearch')를 참고하세요.

ldapsearch(macOS)

다음 단계를 따르세요.

  1. 인증서 및 키 파일을 하나의 PKCS12 형식 파일로 변환합니다. 명령 프롬프트에 다음 명령어를 입력합니다.

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    출력 파일을 암호화할 비밀번호를 입력합니다.
     
  2. 메뉴 바 오른쪽 상단에서 을 클릭하고 Keychain Access를 입력합니다.
  3. Keychain Access 애플리케이션을 열고 왼쪽 목록에서 System(시스템)을 클릭합니다.
  4. 왼쪽 상단 메뉴 바에서 File(파일) 옵션을 클릭하고 Import Items(항목 가져오기)를 선택합니다.
  5. 생성된 ldap-client.p12로 위치를 찾아 ldap-client.p12를 선택하고 Open(열기)을 클릭합니다.
    메시지가 표시되면 비밀번호를 입력합니다.
    이제 LDAP Client라는 이름의 인증서가 System Keychain 인증서 목록에 나타나게 됩니다. 
  6. LDAP Client 인증서 옆에 있는 화살표를 클릭합니다. 비공개 키가 아래에 표시됩니다. 
    1. 비공개 키를 더블클릭합니다.
    2. 대화 상자에서 Access Control(액세스 제어) 탭을 선택하고 왼쪽 하단에 있는 +을 클릭합니다.
    3. 열려있는 창에서 Command+Shift+G를 입력하여 새 창을 연 다음 기존 텍스트를 /usr/bin/ldapsearch로 변경합니다.

    4. Go(이동)클릭합니다.

      그러면 ldapsearch가 강조표시된 창이 열립니다.

    5. Add(추가)를 클릭합니다.

    6. Save Changes(변경사항 저장)를 클릭하고 메시지가 표시되면 비밀번호를 입력합니다.

      이제 OpenLDAP ldapsearch 명령어를 사용하여 명령줄에서 LDAP 디렉터리에 액세스할 수 있습니다.

  7. 이전에 키체인으로 가져온 ldap-client.p12 파일의 이름이 LDAP Client이고 도메인이 example.com이며 사용자 이름이 jsmith인 경우 다음을 입력합니다.

    $   LDAPTLS_IDENTITY="LDAP Client" ldapsearch -H ldaps://ldap.google.com:636 -b dc=example,dc=com '(uid=jsmith)'

위의 명령어를 실행하면 관련 환경 변수가 가져온 클라이언트 인증서를 가리키도록 설정됩니다. 다른 ldapsearch 옵션을 원하는 필터, 요청된 속성 등으로 대체할 수 있습니다. 자세한 내용은 ldapsearch man 페이지(man ldapsearch)를 참고하세요.

OpenVPN(커뮤니티 버전)

다음 단계를 따르세요.

  1. 필요한 경우 OpenVPN을 설치 및 구성하고 이미 설치 및 구성한 경우에는 OpenVPN의 설정 페이지를 엽니다.

    이 도움말에서는 일반 VPN 구성을 다루지 않습니다. VPN이 이미 구성되었다면 LDAP을 통해 사용자 인증 및 승인을 추가할 수 있으며 특히 openvpn-auth-ldap 플러그인을 설치해야 합니다.

    $  sudo apt-get install openvpn openvpn-auth-ldap
     
  2. LDAP 클라이언트 키 및 인증서 파일을 /etc/openvpn/ldap-client.key/etc/openvpn/ldap-client.crt에 복사합니다.
  3. 다음을 포함하여 /etc/openvpn/auth-ldap.conf 파일을 만듭니다(도메인 이름이 example.com이라고 가정).

    <LDAP>
      URL ldaps://ldap.google.com:636 #
      Timeout 15
      TLSEnable false
      TLSCACertDir /etc/ssl/certs
      TLSCertFile /etc/openvpn/ldap-client.crt
      TLSKeyFile /etc/openvpn/ldap-client.key
    </LDAP>
    <Authorization>
      BaseDN "dc=example,dc=com"
      SearchFilter "(uid=%u)" # (or choose your own LDAP filter for users)
      RequireGroup false
    </Authorization>

     
  4. OpenVPN 구성 파일을 수정합니다. 보통 이 파일명은 /etc/openvpn/server.conf 또는 이와 유사한 이름입니다. 파일 하단에 다음을 추가합니다.

    plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
    verify-client-cert optional

     
  5. OpenVPN 서버를 다시 시작합니다.

    $  sudo systemctl restart openvpn@server
     
  6. 사용자의 사용자 이름 및 비밀번호를 사용하도록 VPN 클라이언트를 구성합니다. 예를 들어 OpenVPN 클라이언트 구성에서 OpenVPN 클라이언트 구성 파일 끝부분에 auth-user-pass를 추가하고 OpenVPN 클라이언트를 시작합니다.

    $  openvpn --config /path/to/client.conf
     
  7. stunnel을 프록시로 사용하기의 안내를 따릅니다.
OpenVPN 액세스 서버(상용 버전)

OpenVPN 액세스 서버를 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 OpenVPN 액세스 서버로 Google 보안 LDAP 구성하기를 참고하세요.

PaperCut MF 및 NG

PaperCut을 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 PaperCut에서 Google Workspace 및 Google Cloud ID 사용자를 동기화하고 인증하는 방법을 참고하세요.

Puppet Enteprise

Puppet Enterprise를 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 PE용 Google Cloud 디렉터리를 참고하세요.

Softerra LDAP Browser

중요: 시작하기 전에 Softerra LDAP Browser 버전 4.5(4.5.19808.0) 이상을 설치했는지 확인합니다. LDAP Browser 4.5를 참고하세요.

다음 단계를 따르세요.

  1. 인증서 및 키 파일을 하나의 PKCS12 형식 파일로 변환합니다. 명령 프롬프트에 다음 명령어를 입력합니다.

    macOS 또는 Linux를 사용하는 경우 다음 명령어를 사용합니다.​

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    출력 파일을 암호화할 비밀번호를 입력합니다.
     

    Windows를 사용하는 경우 다음 명령어를 사용합니다.

    $  certutil -mergepfx ldap-client.crt ldap-client.p12

    중요:  두 개의 파일(<CERT_FILE>.crt<CERT_FILE>.key)은 같은 디렉터리에 있어야 합니다. 또한 keycrt의 이름은 확장자만 다르고 동일해야 합니다. 이 예에서는 ldap-client.crtldap-client.key라는 이름을 사용합니다.

  2. Softerra LDAP Browser에서 키 쌍을 설치합니다.
    1. Tools > Certificate Manager로 이동합니다.
    2. Import…를 클릭합니다.
    3. Next를 클릭합니다.
    4. Browse…를 클릭합니다.
    5. 대화상자의 오른쪽 하단에 있는 File type(파일 형식) 드롭다운 목록에서 Personal Information Exchange (*.pfx;*.p12)를 선택합니다.
    6. 위의 2단계에서 변환한 ldap-client.p12 파일을 선택합니다.
    7. Open(열기)을 클릭한 다음 Next(다음)를 클릭합니다.
    8. 위의 2단계에서 입력한 비밀번호를 입력하고 Next를 클릭합니다.
    9. Personal 인증서 저장소를 선택합니다.
    10. Next를 클릭합니다.
    11. Finish를 클릭합니다.
  3. 서버 프로필을 추가합니다.
    1. File > New > New Profile…로 이동합니다.
    2. 프로필 이름(예: Google LDAP)을 입력합니다.
    3. Next(다음)를 클릭합니다.

      다음을 입력합니다.

      Host(호스트): ldap.google.com
      Port(포트):
      636
      Base DN(기본 DN): DN 형식의 도메인 이름 (예: example.com의 경우 dc=example,dc=com)
      Use secure connection(보안 연결 사용) (SSL): 선택
       
    4. Next(다음)를 클릭합니다.
    5. External (SSL Certificate)를 선택합니다.
    6. Next를 클릭합니다.
    7. Finish를 클릭합니다.
Sophos Mobile

Sophos Mobile을 보안 LDAP 서비스에 연결하는 방법에 대한 안내는 보안 LDAP을 사용하여 Sophos Mobile을 Google Cloud ID/Google Cloud 디렉터리에 연결하기를 참고하세요.

Splunk

Splunk를 보안 LDAP 서비스에 연결할 때는 Splunk 버전 8.1.4 이상을 사용해야 합니다. Splunk 버전 8.1.3과 같은 이전 Splunk 버전을 사용하는 경우 LDAP 서버에 과도한 LDAP 쿼리가 전송되어 LDAP 할당량이 빠르게 소진될 수 있습니다. Splunk 버전 8.1.3 문제에 대한 자세한 내용은 Splunk 관련 알려진 문제를 참고하세요.

다음 단계를 따르세요.

  1. LDAP 클라이언트 키 및 인증서 파일을 /home/splunk/splunkadmin/etc/openldap/certs/ldap-client.key/home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt에 복사합니다.

    $  cat /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.key > /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

    $  sudo chown $(splunkuser):$(splunkuser) /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

    $  sudo chmod 644 /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

     
  2. ldap.conf 파일을 수정하여 다음 구성을 추가합니다.

    ssl start_tls
    TLS_REQCERT never
    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem

  3.  사용자의 /home/splunkadmin/.ldaprc 파일에 다음 구성을 추가합니다.

    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

     
  4. Splunk 웹 UI를 사용하여 LDAP 전략을 추가합니다. 다음 세부정보를 입력한 다음 Save(저장)를 클릭합니다.
     

Name(이름)

Google 보안 LDAP

Host

ldap.google.com

Port

636

SSL enabled

선택

Connection order

1

Bind DN(바인드 DN)

Google 관리 콘솔에서 생성한 액세스 사용자 인증 정보를 입력합니다.

Bind DN password(바인드 DN 비밀번호)

Google 관리 콘솔에서 생성한 액세스 사용자 인증 정보를 입력합니다.

기본 DN

DN 형식의 도메인 이름(예: example.com의 경우 dc=example,dc=com)

User base filter

사용자를 필터링하려는 객체 클래스의 사용자 기반 필터를 입력합니다.

User name attribute

uid

Real name attribute

displayname

Email attribute

mail

Group mapping attribute

dn

Group base DN

DN 형식의 도메인 이름(예: example.com 도메인의 경우 ou=Groups,dc=example,dc=com)

Static group search filter

정적 그룹을 필터링하려는 객체 클래스의 정적 그룹 검색 필터를 입력합니다.

Group name attribute

cn

Static member attribute

member

 

SSSD(Red Hat Enterprise 및 CentOS)

SSSD에서는 사용자를 인증하는 동안 사용자 조회를 수행하여 사용자에 대한 자세한 정보를 얻습니다. LDAP 클라이언트의 사용자 인증이 제대로 작동하기 위해서는 사용자 인증 정보 확인이 사용 설정된 모든 조직 단위에 대해 사용자 정보 읽기 그룹 정보 읽기를 사용 설정해야 합니다. 자세한 안내는 액세스 권한 설정하기를 참고하세요.

Red Hat 8 또는 CentOS 8의 SSSD 클라이언트를 보안 LDAP 서비스에 연결하려면 다음 안내를 따르세요.

  1. SSSD 클라이언트를 보안 LDAP 서비스에 추가합니다.
    1. Google 관리 콘솔에서 앱 > LDAP > 클라이언트 추가로 이동합니다.
      개인 Gmail 계정이 아니라 회사 계정을 사용하여 로그인해야 합니다.
    2. 클라이언트 세부정보를 입력하고 계속을 클릭합니다.
    3. 액세스 권한을 다음과 같이 구성합니다.
      사용자 인증 정보 확인: 전체 도메인
      사용자 정보 읽기: 전체 도메인
      그룹 정보 읽기: 사용
    4. LDAP 클라이언트 추가를 클릭합니다.
    5. 생성된 인증서를 다운로드합니다.
    6. 클라이언트 세부정보에 연결을 클릭합니다.
    7. 서비스 상태를 사용으로 변경합니다.
  2. 종속 항목을 설치합니다.

    dnf install openldap-clients sssd-ldap
    install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap


    인증서 .zip 파일의 압축을 풀고 .crt 및 .key 파일을 /etc/sssd/ldap에 복사합니다.
     
  3. (선택사항) ldapsearch로 테스트합니다.

    LDAPTLS_REQCERT=never \
    LDAPTLS_KEY=Google.key \
    LDAPTLS_CERT=Google.crt \
    ldapsearch -H ldaps://ldap.google.com:636/ \
    -b dc=example,dc=com \
    -D usertoverify@example.com \
    -W \
    '(mail=usertoverify@example.com)' \
    mail dn


    메시지가 표시되면 사용자의 Google 비밀번호를 입력합니다.

    참고: 사용자에게 할당된 Google Workspace Enterprise 또는 Cloud ID Premium 라이선스가 있어야 합니다.

  4. 다음 내용이 포함된 /etc/sssd/sssd.conf 파일을 만듭니다.
     

    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /etc/sssd/ldap/Google.crt
    ldap_tls_key = /etc/sssd/ldap/Google.key
    ldap_tls_reqcert = never
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID

  5. 권한 및 SELinux 라벨을 변경합니다.

    chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    restorecon -FRv /etc/sssd

     
  6. SSSD를 다시 시작합니다.

    systemctl restart sssd
     
  7. 다음을 테스트합니다.

    서버로의 ssh 연결:

    ssh -l user@example.com {HOSTNAME}

문제 해결

  1. SSSD 버전을 확인합니다(1.15.2 이상이어야 함).

    # sssd --version
    2.2.3

     
  2. RHEL/CentOS(또는 SELinux 시행이 포함된 모든 배포판)에서 SSSD 구성 파일 및 인증서 파일과 키는 sssd_conf_t 역할로 액세스할 수 있는 디렉터리에 있어야 합니다.

    # egrep "object_r:sssd_conf_t" /etc/selinux/targeted/contexts/files/file_contexts

    /var/log/audit/audit.log에서 AVC 거부 메시지를 확인합니다.
     

  3. /etc/nsswitch.conf에서 passwd, shadow, group, netgroup 항목에 'sss'가 있는지 확인합니다.

    passwd:  files sss
    shadow:  files sss
    group:   files sss
    netgroup:  files sss


    여기서 로컬 파일은 LDAP 사용자를 재정의합니다.
     
  4. /var/log/sssd.conf에서 구성 오류를 확인합니다.
     

    예:
    [sssd] [sss_ini_add_snippets] (0x0020): Config merge error: File /etc/sssd/sssd.conf did not pass access check. Skipping.

    조치: .conf 파일에 chmod 600을 실행해야 합니다.

    예:
    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_groups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos.

    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_initgroups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos.

    조치: sssd.conf에서 지원되지 않는 group match LDAP 확장 프로그램을 삭제합니다.

  5. /var/log/sssd_{DOMAIN}.log에서 LDAP/network/auth 오류를 확인합니다.

    예:

    [sssd[be[example.com]]] [sss_ldap_init_sys_connect_done] (0x0020): ldap_install_tls failed: [Connect error] [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate)]

    조치: sssd.conf에 'ldap_tls_reqcert = never'를 추가해야 합니다.

    오류의 세부정보 수준을 높이려면 도메인 섹션 아래 ssd.conf에 'debug_level = 9'를 추가하고 sssd를 다시 시작합니다.

SSSD(기타 Linux 배포판)

SSSD에서는 사용자를 인증하는 동안 사용자 조회를 수행하여 사용자에 대한 자세한 정보를 얻습니다. LDAP 클라이언트의 사용자 인증이 제대로 작동하기 위해서는 사용자 인증 정보 확인이 사용 설정된 모든 조직 단위에 대해 사용자 정보 읽기 그룹 정보 읽기를 사용 설정해야 합니다. 자세한 내용은 액세스 권한 설정하기를 참고하세요.

SSSD 클라이언트를 보안 LDAP 서비스에 연결하려면 다음 안내를 따르세요.

  1. 버전 1.15.2. 이상의 SSSD를 설치합니다.

    $  sudo apt-get install sssd
     
  2. 클라이언트 인증서와 키 파일 이름이 각각 /var/ldap-client.crt/var/ldap-client.key이고 도메인은 example.com이라는 가정 하에, 다음과 같은 구성으로 /etc/sssd/sssd.conf 파일을 수정합니다.


    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /var/ldap-client.crt
    ldap_tls_key = /var/ldap-client.key
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID
    ldap_groups_use_matching_rule_in_chain = true
    ldap_initgroups_use_matching_rule_in_chain = true
     

  3. 구성 파일의 소유권과 권한을 변경합니다.

    $  sudo chown root:root /etc/sssd/sssd.conf
    $  sudo chmod 600 /etc/sssd/sssd.conf

  4. SSSD를 다시 시작합니다.

    $  sudo service sssd restart

도움말: Google Compute Engine의 외부 IP 주소가 없는 Linux 컴퓨터에서 SSSD 모듈을 사용하는 경우에도 Google 서비스에 대한 내부 액세스 권한이 사용 설정되어 있다면 보안 LDAP 서비스에 연결할 수 있습니다. 자세한 내용은 비공개 Google 액세스 구성을 참고하세요. 

macOS

보안 LDAP 서비스를 사용하여 사용자 계정 인증을 위해 macOS 클라이언트를 연결하려면 다음 단계를 따르세요.

시스템 요구사항

  • macOS는 Catalina 버전 10.15.4 이상이어야 합니다.
  • 준비 단계의 1단계를 완료하려면 Google 최고 관리자의 사용자 ID가 필요합니다.
  • 이 구성을 실행하려면 로컬 관리자 권한이 필요합니다.

목차:

준비 단계

이 섹션에서는 보안 LDAP 서비스를 사용하여 macOS 인증을 수동으로 설정하고 테스트하는 방법을 중점적으로 안내합니다.

1단계: Google 관리 콘솔에서 macOS를 LDAP 클라이언트로 온보딩하기

자세한 안내는 LDAP 클라이언트 추가하기 문서 또는 보안 LDAP 데모 동영상을 참고하세요. 이 과정에서 자동 생성된 TLS 클라이언트 인증서도 다운로드하게 됩니다. 

2단계: 인증서를 시스템 키체인으로 가져오기

  1. 인증서(1단계에서 다운로드한 zip 파일)와 키를 macOS 시스템에 복사합니다.
    도움말: 파일의 압축을 풀고 인증서 및 키 파일을 찾습니다.
  2. 키 쌍을 시스템 키체인으로 가져옵니다.
    1. 키와 인증서를 PKCS 12(p12) 파일로 변환하고, 터미널에서 다음 명령어를 실행합니다.

      openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key

      도움말: .p12 파일의 이름을 적어둡니다.

      시스템에서 비밀번호를 입력하라는 메시지가 표시되면 p12 파일을 암호화할 비밀번호를 입력합니다.

    2. Keychain Access 애플리케이션을 엽니다.

    3. System(시스템) 키체인을 클릭합니다.

    4. File(파일) > Import Items(항목 가져오기)를 클릭합니다.

    5. 위에서 만든 ldap-client.p12 파일을 선택합니다.

    6. 메시지가 표시되면 관리자 비밀번호를 입력하여 시스템 키체인을 수정하도록 허용합니다.

    7. 위에서 만든 비밀번호를 입력하여 .p12 파일을 복호화합니다.

      참고: 키 목록에 새 인증서 및 연결된 비공개 키가 표시되며 이를 LDAP 클라이언트라고도 합니다. 다음 단계를 위해 인증서 이름을 적어둡니다.
       
    8. 이 도움말에서 ldapsearch(macOS) 섹션의 6단계에 따라 비공개 키에 대한 액세스 제어를 설정하여 아래 지정된 앱을 추가합니다. 비공개 키가 All Items(모든 항목) 카테고리에 표시되지 않는 경우 My Certificates(내 인증서) 카테고리로 전환하고 해당하는 인증서를 펼쳐 올바른 비공개 키 항목을 찾습니다.

      안내에 명시된 대로 ldapsearch 앱은 문제 해결이 필요한 경우에만 관련이 있으며 다른 목적으로는 필요하지 않으므로 일반적으로 사용자에게 macOS에 대한 액세스 권한이 부여되기 전에 삭제됩니다.

      다음 3개의 앱을 액세스 제어 목록(ACL)에 추가해야 합니다.

      /System/Library/CoreServices/Applications/Directory Utility
      /usr/libexec/opendirectoryd
      /usr/bin/dscl
  3. /etc/openldap/ldap.conf 파일에 행을 추가합니다. 이때 'LDAP Client'와 .p12 파일을 가져온 후에 macOS Keychain Access 애플리케이션에 표시되는 인증서 이름(발행된 인증서의 X.509 Subject Common Name의 이름)과 정확히 일치하는지 확인합니다.

    sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'

3단계: 인증을 위해 기기에 Google 디렉터리 설정하기

Directory Utility 애플리케이션을 열고 새 LDAP 디렉터리 노드를 만듭니다.

  1. 변경하려면 자물쇠 아이콘을 클릭하고 비밀번호를 입력합니다.
  2. LDAPv3을 선택하고 연필 아이콘을 클릭하여 설정을 수정합니다.
  3. New(새로 만들기)…를 클릭합니다.
  4. 서버 이름으로 ldap.google.com을 입력하고 Encrypt using SSL(SSL을 사용한 암호화)을 선택한 다음 Manual(수동)을 클릭합니다.
  5. 새 서버 이름을 선택하고 Edit(수정)…를 클릭합니다.
  6. 구성 이름으로 Google 보안 LDAP과 같은 설명이 포함된 이름을 입력합니다.
  7. Encrypt using SSL(SSL을 사용한 암호화)을 선택하고 포트는 636으로 설정해야 합니다.
  8. Search & Mappings(검색 및 매핑) 탭으로 이동합니다.
    1. Access this LDAPv3 server using(다음을 사용하여 이 LDAPv3 서버에 액세스) 드롭다운 목록에서 RFC2307을 선택합니다.
    2. 메시지가 표시되면 Search Base Suffix(검색 기반 확장자)에 도메인 관련 정보를 입력합니다. 예를 들어 도메인 이름이 zomato.com인 경우 dc=zomato,dc=com을 입력합니다.
    3. OK(확인)를 클릭합니다.
    4. Users(사용자) 레코드 유형에서 속성을 구성합니다.
      1. Record Types and Attributes(레코드 유형 및 속성) 섹션에서 Users(사용자)를 선택하고 '+' 버튼을 클릭합니다.
      2. 팝업 창에서 Attribute Types(속성 유형)을 선택하고 GeneratedUID를 선택한 다음 OK(확인)를 클릭하여 팝업 창을 닫습니다.

        GeneratedUID는 Users(사용자)를 펼치면 그 아래 표시됩니다.
         
      3. GeneratedUID를 클릭하고 오른쪽 상자에서 '+' 아이콘을 클릭합니다.
      4. 텍스트 상자에 apple-generateduid를 입력하고 Enter(입력)를 클릭합니다.
      5. Users(사용자) 노드에서 NFSHomeDirectory 속성을 클릭합니다.
      6. 오른쪽 화면에서 이 속성의 값을 #/Users/$uid$로 업데이트합니다.
      7. OK(확인)를 클릭하고 비밀번호를 입력하여 변경사항을 저장합니다.
  9. Directory Utility 창에서 새 LDAP 구성을 설정합니다.
    1. Search Policy(검색 정책) 탭으로 이동합니다.
    2. 자물쇠 아이콘을 클릭하여 변경하고, 메시지가 표시되면 현재 사용자의 비밀번호를 입력합니다.
    3. 드롭다운 옵션을 Search Path(검색 경로)에서 Custom Path(맞춤 경로)로 변경합니다.
    4. Authentication(인증) 탭을 열고 '+' 아이콘을 클릭합니다. 
    5. Directory Domains(디렉터리 도메인) 목록에서 /LDAPv3/ldap.google.com을 선택한 다음 Add(추가)를 클릭합니다.
    6. Apply(적용) 버튼을 클릭하고 메시지가 표시되면 관리자 비밀번호를 입력합니다.
  10. 다음 4개의 명령어를 실행하여 DIGEST-MD5, CRAM-MD5, NTLM, GSSAPI SASL 인증 메커니즘을 사용 중지합니다. macOS에서는 Simple Bind(단순 바인드)를 사용하여 Google 보안 LDAP 서비스 사용을 인증합니다.

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string DIGEST-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist 

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

     
  11. 재부팅하여 OpenDirectory 구성을 다시 로드합니다.

4단계: 휴대기기 계정 만들기(오프라인 로그인 허용)

모든 Google Workspace 또는 Cloud ID 사용자는 사용자 이름과 비밀번호를 사용하는 네트워크 계정(Google 계정)을 사용하여 로그인할 수 있습니다. 이 로그인 절차에는 네트워크 연결이 필요합니다. 네트워크에 연결되지 않았을 때에도 사용자가 로그인해야 하는 경우 휴대기기 계정을 만들 수 있습니다. 휴대기기 계정을 사용하면 네트워크 연결 상태에 관계없이 네트워크 계정(Google 계정) 사용자 이름과 비밀번호를 사용하여 로그인할 수 있습니다. 자세한 내용은 Mac에서 휴대기기 계정 만들기 및 구성하기를 참고하세요.

보안 LDAP 사용자의 휴대기기 계정을 만들려면 다음 안내를 따르세요.

  1. 다음 명령어를 실행하여 보안 LDAP 서버에 연결하고 홈 경로 및 휴대기기 계정을 설정합니다.

    sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v 

    도움말: $uid를 사용자의 Google 계정과 연결된 이메일 주소의 사용자 이름 부분으로 바꿉니다. 예를 들어 jsmith@solarmora.com의 사용자 이름 부분은 jsmith입니다.

  2. SecureToken admin user name(SecureToken 관리자 사용자 이름)을 입력하라는 메시지가 표시되면 관리자 사용자 이름을 입력하고 다음 프롬프트에 비밀번호를 입력합니다. 그러면 $uid가 FileVault에 추가됩니다. 이 작업은 macOS 디스크가 암호화된 경우에 필요합니다. 

5단계: (선택사항) 로그인 화면 환경 설정하기

  1. 왼쪽 하단에서 System preferences(시스템 환경설정) > Users & Groups(사용자 및 그룹) > Login Options(로그인 옵션)으로 이동합니다.
  2. 관리자의 사용자 인증 정보를 제공하여 잠금을 해제합니다.
  3. Display login window as(다음 형식으로 로그인 창 표시)를 Name and password(이름 및 비밀번호)로 변경합니다.

6단계: 재부팅하여 내 기기에 로그인하기

  1. 기기가 인터넷에 연결되었는지 확인합니다. 인터넷에 연결되어 있지 않으면 보안 LDAP 사용자의 로그인이 작동하지 않습니다.
    참고: 인터넷 연결은 처음 로그인할 때만 필요하며, 이후 모든 로그인은 인터넷 액세스 없이 실행될 수 있습니다. 
  2. 인증에 보안 LDAP을 사용하도록 구성된 사용자 계정으로 기기에 로그인합니다. 

배포 단계

이 섹션에서는 사용자의 기기 설정 자동화를 중점적으로 안내합니다. 준비 단계에서 수동 구성을 완료한 동일한 macOS 기기에서 아래 1단계와 2단계를 수행합니다. 

1단계: Apple Configurator 2를 사용하여 인증서로 Mac 프로필 만들기

  1. 보안 LDAP으로 macOS 인증을 수동으로 구성한 시스템에 Apple Configurator 2를 설치합니다.
  2. Apple Configurator 2를 열고 새 프로필을 만든 후 Certificate(인증서) 섹션에서 Configure(구성)를 클릭한 다음 이전에 생성한 .p12 파일을 가져옵니다.
    참고: 이 .p12에 비밀번호가 있는지 확인하고 Certificate(인증서)의 Password(비밀번호) 섹션에 해당 비밀번호를 입력합니다.
  3. 이 프로필을 저장합니다. 
  4. 텍스트 편집기에서 이 프로필을 열고 첫 번째 <dict> 태그에 다음 행을 추가합니다.

    <key>PayloadScope</key>
    <string>System</string>


    Apple Configurator에서 아직 macOS용 프로필을 지원하지 않기 때문에 추가하는 것입니다.
     
  5. 인증서 데이터와 마찬가지로 두 번째 <dict> 태그에 다음 행을 추가합니다.

    <key>AllowAllAppsAccess</key>
    <true/>


    이렇게 하면 모든 애플리케이션에서 이 인증서에 액세스할 수 있습니다.

2단계: 디렉터리 구성 파일(plist)을 xml로 변환하기 

이 단계에서는 준비 단계의 3단계에서 완료한 모든 수동 구성을 XML 파일로 추출합니다. 이 파일과 위의 1단계에서 만든 Mac 프로필을 사용하여 다른 macOS 기기를 자동으로 구성할 수 있습니다. 

  1. /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist를 데스크톱이나 다른 위치로 복사합니다.
  2. 모든 텍스트 편집기에서 검사할 수 있도록 XML로 변환하기 위해 터미널에서 다음 명령어를 실행합니다.

    sudo plutil -convert xml1 <path>/ldap.google.com.plist

    <path>/ldap.google.com.plist로 파일에 액세스할 수 있습니다.
     
  3. XML 파일을 열 수 있도록 위 파일의 권한을 변경하고 파일이 비어 있지 않은지 확인합니다.

3단계: Python 스크립트를 만들어 최종 사용자 기기의 구성 자동화하기

아래의 Python 스크립트를 복사하여 Python 파일(.py 파일)로 저장합니다.

참고: 이 샘플 스크립트는 있는 그대로 제공되며 Google 지원팀에서는 샘플 스크립트에 대한 지원을 제공하지 않습니다. 

Ldap_pythong_config.py

#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData

import os
import sys

# Reading plist
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()

# Write the plist
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b'\x00'*32, 32)
request.appendData_(NSData.dataWithBytes_length_(CONFIG, len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)

# Edit the default search path and append the new node to allow for login
os.system("dscl -q localhost -append /Search CSPSearchPath /LDAPv3/ldap.google.com")
os.system("bash -c 'echo -e \"TLS_IDENTITY\tLDAP Client\" >> /etc/openldap/ldap.conf' ")

4단계: 최종 사용자 기기 자동 구성하기

구성하려는 다른 macOS 기기로 이동하여 다음 단계를 따르세요.

  1. 1단계에서 생성된 Mac 프로필 파일, 2단계에서 생성된 XML 구성 파일, 3단계의 Python 스크립트를 기기에 복사합니다.
  2. 다음 명령어를 실행합니다.

    sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2>
     
  3. 인증서를 macOS 시스템 키체인으로 가져오려는 경우 1단계에서 생성된 Mac 프로필 파일을 더블클릭하고 메시지가 표시되면 macOS 로컬 관리자 사용자 인증 정보를 제공합니다. 그러면 준비 단계에서 설정한 .p12 비밀번호를 입력하라는 메시지가 표시됩니다. 
  4. macOS 시스템을 다시 시작합니다.
  5. 준비 단계의 4단계에 설명된 대로 휴대기기 계정을 만들고, 원하는 경우 준비 단계의 5단계에서 설명된 추가 환경설정을 설정합니다.

제한사항 및 가이드라인

  • 사용자가 Google 사용자 인증 정보를 사용하여 macOS에 로그인하기 시작하면 사용자 비밀번호 관리(재설정 또는 복구)가 Google 웹사이트(예: myaccount.google.com 또는 Google 관리 콘솔)에서 실행되어야 합니다. 타사 솔루션을 사용하여 비밀번호 관리를 수행하도록 선택하는 경우 최신 비밀번호가 Google과 동기화되는지 확인하세요.
  • 관리자가 새 사용자를 만들거나 다음 로그인 시 비밀번호 변경 요청을 사용 설정하여 기존 사용자의 비밀번호를 재설정하는 경우, 사용자는 관리자가 설정한 임시 비밀번호를 사용하여 Mac에 로그인할 수 없습니다. 
    해결 방법: 사용자는 다른 기기(예: 휴대기기 또는 기타 데스크톱 기기)를 사용하여 Google에 로그인하고 영구 비밀번호를 설정한 다음 새 비밀번호로 macOS에 로그인해야 합니다. 
  • 위의 구성 후 처음 로그인할 때 ldap.google.com에 연결할 수 있도록 Mac이 인터넷에 연결된 상태여야 합니다.  휴대기기 계정을 설정하도록 선택한 경우 이후의 모든 로그인에는 인터넷 액세스가 필요하지 않습니다.
  • Google 보안 LDAP과 macOS와의 통합은 macOS Catalina 및 Big Sur에서 테스트되었습니다.

문제 해결

보안 LDAP 서비스에 연결하는 데 문제가 있는 경우 다음 안내를 따르세요.

1단계: 연결 확인하기

odutil을 사용하여 연결 확인하기
터미널에서 odutil show nodenames 명령어를 실행합니다.
/LDAPv3/ldap.google.com 상태가 온라인인지 확인합니다. 온라인 상태가 아닌 경우 telnet 옵션을 시도해 보세요.

nc를 사용하여 연결 확인하기
터미널에서 다음 명령어를 실행합니다.nc -zv  ldap.google.com 636
이 방법을 사용하여 Google에 연결할 수 없는 경우 IPv4를 사용하여 연결을 시도해 보세요.

IPv4를 사용하여 연결 확인하기
다음 단계에 따라 IPv4를 사용하도록 기기를 변경할 수 있습니다.

  1. System Preferences(시스템 환경설정) > Network(네트워크) > Wi-Fi > Advanced(고급)로 이동합니다.
  2. Advanced(고급) 메뉴에서 TCP/IP 탭으로 이동합니다.
  3. 드롭다운 선택을 Configure IPv6(IPv6 구성)에서 Link-local only(링크-로컬 전용)로 변경합니다.
  4. OK(확인)를 클릭한 후 Apply(적용)를 클릭하여 변경사항을 저장합니다.
  5. ldapsearch 연결 및 유효한 검색을 통해 서비스 인증을 확인합니다.

2단계: 디렉터리 객체를 볼 수 있는지 확인하기

  1. Directory Utility(디렉터리 유틸리티)를 열고 Directory Editor(디렉터리 편집기) 탭을 엽니다. 
  2. 드롭다운 목록에서 /LDAPv3/ldap.google.com 노드를 선택합니다.
  3. Google 도메인의 사용자 및 그룹을 볼 수 있는지 확인합니다.

자바 애플리케이션 구성 안내

LDAP 기능이 있는 대부분의 자바 기반 애플리케이션은 애플리케이션의 키 저장소에 클라이언트 인증서를 설치하여 클라이언트 인증서로 인증하도록 구성할 수 있습니다. 정확한 구성 파일은 애플리케이션마다 다르지만 프로세스는 대체로 비슷합니다. 설정하려면 OpenSSL 및 자바 런타임 환경이 설치되어 있어야 합니다.

  1. 인증서와 키를 자바 키 저장소 형식으로 변환합니다. 변환하는 과정에서 비밀번호를 입력하라는 메시지가 표시됩니다. 안전한 비밀번호를 선택하여 메시지가 표시될 때마다 동일한 암호를 사용하세요. 클라이언트 키 파일의 이름이 ldap-client.key라고 가정하고 다음 안내를 따르세요.

    macOS 또는 Linux를 사용하는 경우 다음 명령어를 사용합니다.

    $  openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    Windows를 사용하는 경우 다음 명령어를 사용합니다.

    $  certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12

    중요:  두 개의 파일(<CERT_FILE>.crt<CERT_FILE>.key)은 같은 디렉터리에 있어야 합니다. 또한 keycrt의 이름은 확장자만 다르고 동일해야 합니다. 이 예에서는 ldap-client.crtldap-client.key라는 이름을 사용합니다.
     

  2. 인증서를 키 저장소로 가져옵니다.

    $  keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
     
  3. 자바 속성은 애플리케이션에 따라 다른 방식으로 구성될 수 있습니다. 보통 애플리케이션을 시작하기 위해 사용되는 'java' 명령줄에서 -D 옵션으로 설정할 수 있습니다. 애플리케이션의 자바 속성을 다음과 같이 설정합니다.

    javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <password selected above>

     
  4. 기본 구성 안내의 정보를 사용하여 애플리케이션의 LDAP 연결 설정을 구성합니다.

     

선택사항: stunnel을 프록시로 사용하기

클라이언트 인증서로 LDAP에 인증하는 방법을 제공하지 않는 클라이언트의 경우 stunnel을 프록시로 사용합니다. 

LDAP 서버에 클라이언트 인증서를 제공하도록 stunnel을 구성하고 stunnel에 연결하도록 클라이언트를 구성합니다. 애플리케이션과 동일한 서버에서 stunnel을 실행하고 로컬로만 수신하여 LDAP 디렉터리를 해당 서버 외부로 노출하지 않는 것이 가장 좋습니다. 

다음 단계를 따르세요.

  1. stunnel을 설치합니다. 예를 들어 Ubuntu에서는 다음과 같습니다.

    $  sudo apt-get install stunnel4
     
  2. 다음 내용으로 /etc/stunnel/google-ldap.conf 구성 파일을 만듭니다(인증서 파일은 ldap-client.crt 키 파일은 ldap-client.key라고 가정).

    [ldap]
    client = yes
    accept = 127.0.0.1:1636
    connect = ldap.google.com:636
    cert = ldap-client.crt
    key =
    ldap-client.key
     
  3. stunnel을 사용 설정하려면 /etc/default/stunnel4를 수정하고 ENABLED=1을 설정합니다.
  4. stunnel을 다시 시작합니다.

    $  sudo /etc/init.d/stunnel4 restart
     
  5. ldap://127.0.0.1:1636을 가리키도록 애플리케이션을 구성합니다.

    위 구성 파일의 accept 행도 변경하는 경우 '1636'을 사용하지 않는 다른 포트로 바꿀 수 있습니다. 클라이언트와 stunnel은 로컬로 통신하기 때문에 둘 사이에는 StartTLS/SSL/TLS를 사용 설정하지 않은 상태로 일반 텍스트 LDAP를 사용합니다.

참고: stunnel을 별도의 서버에서 실행하는 경우에는 필요한 애플리케이션에서만 stunnel 서버에 액세스할 수 있도록 방화벽을 설정해야 합니다 stunnel이 TLS를 통해 수신하도록 구성하여 애플리케이션과 stunnel 서버 간의 데이터가 암호화되도록 할 수도 있습니다. 이 두 가지 구성의 세부사항은 사용자의 환경에 따라 달라집니다.

다음 단계

LDAP 클라이언트를 보안 LDAP 서비스에 연결했다면 이제 LDAP 클라이언트의 서비스 상태를 사용으로 전환해야 합니다.

다음 단계로 진행하려면 5. LDAP 클라이언트를 사용으로 전환하기를 참고하세요.

참고: LDAP 클라이언트를 서비스에 연결하는 동안 오류가 발생하는 등 필요한 경우에는 ldapsearchADSI 또는 ldp.exe 같은 간단한 도구를 사용하여 문제를 해결할 수 있습니다. 자세한 안내는 연결 테스트 및 문제해결하기를 참고하세요.

관련 도움말

도움이 되었나요?

어떻게 하면 개선할 수 있을까요?
검색
검색어 지우기
검색 닫기
기본 메뉴
9689805034493162103
true
도움말 센터 검색
true
true
true
true
true
73010
false
false