이 기능이 지원되는 버전: Frontline Standard 및 Frontline Plus, Business Plus, Enterprise Standard 및 Enterprise Plus, Education Fundamentals, Education Standard 및 Education Plus, Enterprise Essentials Plus 사용 중인 버전 비교하기
LDAP 클라이언트를 보안 LDAP 서비스에 연결하기 전에 필요에 따라 ldapsearch, ADSI 또는 ldp.exe와 같은 간단한 도구를 사용해 간편하게 연결 테스트를 할 수 있습니다. 또한 LDAP 클라이언트를 서비스에 연결하는 중에 오류가 발생하는 경우 문제를 해결할 때도 이 도구를 사용할 수 있습니다.
아래 섹션에 설명된 테스트를 통해 사용자에게 발생하는 구성 문제, 일반적인 오류 메시지, 이러한 문제를 해결할 수 있는 권장사항을 파악할 수 있습니다.
이 도움말에서는 다음 사항에 대해 설명합니다.
- 연결 확인 및 LDAP 쿼리 실행하기
LDAP 쿼리를 실행하면 보안 LDAP에 연결하고 쿼리를 수행할 수 있는지 확인할 수 있습니다. - 필요한 경우 기본 연결 테스트하기
LDAP 쿼리가 실행되지 않는 경우 기본 연결 테스트를 통해 네트워크 액세스와 인증을 테스트합니다.
참고: 이 과정에서 Google Workspace 지원팀 또는 Cloud ID Premium 지원팀에 문의해야 하는 경우 명령어 출력을 반드시 저장하세요. 지원팀과 명령어 출력을 공유하기 전에 출력에 표시된 모든 개인 식별 정보를 삭제하시기 바랍니다.
연결 확인 및 LDAP 쿼리 실행하기
Google 관리 콘솔에서 보안 LDAP 서비스를 설정한 후 ldapsearch, ADSI 또는 ldp.exe와 같은 간단한 도구 중 하나를 사용해 보안 LDAP와 연결되었는지 확인할 수 있습니다. 자세한 내용 및 안내는 아래 섹션을 참고하세요.
ldapsearch
명령줄에서 ldapsearch 유틸리티를 사용하여 기본 LDAP 쿼리를 실행하세요. LDAP 쿼리에 성공하면 LDAP 클라이언트, 기반 TLS 세션, TCP 연결이 정상적으로 작동하고 있다는 뜻입니다.
ldapsearch를 사용하여 연결을 테스트하려면 다음 안내를 따르세요.
- LDAP 클라이언트 추가의 안내에 따라 LDAP 구성을 만들고 인증서를 다운로드합니다.
참고: 테스트 환경을 단순화하려면 LDAP 클라이언트 액세스를 승인할 조직 단위에 한 명 이상의 사용자가 있어야 합니다.
- LDAP 쿼리를 실행합니다. 이 예에서는 특정 사용자를 쿼리합니다 (자세한 내용은 OpenLDAP ldapsearch 참고).
LDAPTLS_CERT={crt_file} LDAPTLS_KEY={key_file} ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} '(mail={user_email})'다음과 같이 자리표시자를 바꿉니다.
- {crt_file} .crt 파일의 이름
- {key_file} .key 파일의 파일 이름
- {domain} 도메인 이름의 각 부분입니다. 예를 들어 example.com은 'dc=example,dc=com'이 됩니다.
- {user_email} 도메인에 있는 사용자의 기본 이메일 주소입니다.
ldapsearch 사용 관련 참고사항
- BindDN 값이 제공되지 않으면 ldapsearch는 키와 인증서를 사용하여 검색을 승인합니다.
- BindDN 값이 관리 콘솔에서 생성한 LDAP 사용자 이름인 경우 ldapsearch는 관리 콘솔에 구성된 LDAP 클라이언트의 권한을 사용합니다.
ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {ldap_access_credentials_username} -W '(mail={user_email}) - BindDN 값이 Workspace 사용자의 이메일 주소 또는 LDAP 고유 이름인 경우 ldapsearch는 해당 사용자의 사용자 인증 정보를 사용하여 권한에 따라 검색합니다.
ldapsearch -H ldaps://ldap.google.com:636 -b dc={domain},dc={domain} -D {workspace_username@domain} -W '(mail={user_email})'
stunnel과 함께 ldapsearch 사용하기
배포 시 stunnel을 사용해야 하는 경우 다음 단계를 따르세요.
- 관리 콘솔에서 액세스 사용자 인증 정보를 생성하여 ldapsearch에 필요한 사용자 이름과 비밀번호를 생성합니다.
- 다음 명령어를 사용하세요.
ldapsearch -x -D "{username}" -w {password} -H ldap://{stunnel_host}:{stunnel_port} -b dc={domain},dc={domain} '(mail={user_email})'다음과 같이 자리표시자를 바꿉니다.
- {username} 관리 콘솔에서 생성된 사용자 인증 정보의 사용자 이름
- {password} 관리 콘솔에서 생성된 사용자 인증 정보의 비밀번호
- {stunnel_host} : 네트워크에서 stunnel을 실행하는 시스템의 IP 주소 또는 호스트 이름
- {stunnel_port} : stunnel이 실행 중인 포트(stunnel 구성 확인)
- {user_email} 도메인에 있는 사용자의 기본 이메일 주소
ldapsearch 명령어 실행 완료 시나리오
ldapsearch 명령어가 제대로 실행되면 LDAP 클라이언트를 만들 때 지정한 이메일을 사용하는 사용자가 LDIF 형식으로 표시됩니다.
예를 들면 다음과 같습니다.
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# example.com
dn: dc=example,dc=com
objectClass: top
objectClass: domain
objectClass: dcObject
dc: example
# admin-group, Groups, example.com
dn: cn=admin-group,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: admin-group
displayName: admin-group
description:
gidNumber: 12345
member: uid=admin,ou=Users,dc=example,dc=com
memberUid: admin
googleAdminCreated: FALSE
# example-user, Users, example.com
dn: uid=example-user,ou=Users,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: example-user
googleUid: example-user
posixUid: example-user
cn: example-user
cn: FirstName LastName
sn: FirstName
displayName: FirstName LastName
givenName: FirstName
mail: example-user@example.com
uidNumber: 12345
gidNumber: 12345
homeDirectory: /home/example-user
loginShell: /bin/bash
gecos:
발생할 수 있는 오류
- OpenLDAP 클라이언트 또는 라이브러리가 SNI 지원 없이 컴파일됨
LDAP 클라이언트 (이 경우 OpenLDAP)에는 SNI (서버 이름 확인) 지원이 필요합니다. SNI를 사용할 수 없는 경우 다음과 유사한 오류가 표시될 수 있습니다.SASL/EXTERNAL authentication startedldap_sasl_interactive_bind_s: Unknown authentication method (-6)additional info: SASL(-4): no mechanism available:
권장사항:- MacOS를 사용하는 경우 SASL이 기본적으로 사용 설정되어 있으나 '-x' 옵션을 사용하여 우회할 수 있습니다.
- ldapsearch에
-d5옵션을 추가하고 출력에서 다음 행을 확인하세요.TLS certificate verification: depth: 0, err: 18, subject: /OU=No SNI provided; please fix your client.
-
ldapsearch에서 상태 0 (성공)을 반환했지만 사용자가 출력되지 않음
클라이언트 인증서를 사용하여 ldapsearch 옵션-x(SASL 인증 사용)를 지정하면 인증에는 성공하더라도 도메인의 사용자가 표시되지 않습니다.
권장사항:-x옵션을 삭제하고 다시 시도하세요.
ADSI 편집 (Windows)
- ldp.exe (Windows)의 1~11단계에 따라 클라이언트 인증서를 설치합니다.
- Action > Connect to…로 이동합니다.
- 다음 연결 설정을 입력합니다.
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 기반 암호화 사용): 선택 - 고급...을 클릭하고 다음 세부정보를 입력합니다.
사용자 인증 정보 지정: 선택됨
사용자 이름: 관리 콘솔의 액세스 사용자 인증 정보 사용자 이름
비밀번호: 관리 콘솔의 액세스 사용자 인증 정보 비밀번호
포트 번호: 636
프로토콜: LDAP
단순 바인드 인증: 선택됨 - 확인을 클릭한 후 확인을 다시 클릭합니다.
- 연결에 성공하면 기본 DN의 디렉터리 내용이 오른쪽 창에 표시됩니다.
ldp.exe (Windows)
- OpenSSL을 설치합니다.
- 인증서 및 키 파일을 하나의 PKCS12 형식 파일로 변환합니다. 명령 프롬프트에 다음 명령어를 입력합니다.
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
출력 파일을 암호화할 비밀번호를 입력합니다. - 제어판으로 이동합니다.
- 검색창에서 'certificate'를 검색한 다음 Manage user certificates를 클릭합니다.
- Action > All Tasks > Import…로 이동합니다.
- Current User(현재 사용자)를 선택하고 Next(다음)를 클릭합니다.
- Browse(둘러보기)…를 클릭합니다.
- 대화상자의 오른쪽 하단에 있는 file type(파일 형식) 드롭다운에서 Personal Information Exchange (*.pfx;*.p12)를 선택합니다.
- 2단계에서 변환한 ldap-client.p12 파일을 선택하고 Open(열기)을 클릭한 후 Next(다음)를 클릭합니다.
- 2단계에서 입력한 비밀번호를 입력하고 Next를 클릭합니다.
- Personal 인증서 저장소를 선택하고 Next를 클릭한 다음 Finish를 클릭합니다.
- Ldp.exe를 실행합니다.
- Connection(연결) > Connect(연결)...로 이동합니다.
- 다음 연결 세부정보를 입력합니다.
Server(서버): ldap.google.com
Port(포트): 636
Connectionless(비연결): 선택 해제
SSL: 선택 - 확인을 클릭합니다.
- 보기 > 트리로 이동합니다.
- 기본 DN을 입력합니다. DN 형식의 도메인 이름입니다. (예: example.com의 경우 dc=example,dc=com)
- 확인을 클릭합니다.
- 연결에 성공하면 기본 DN의 디렉터리 내용이 오른쪽 창에 표시됩니다.
필요한 경우 기본 연결 테스트하기
연결 확인 및 LDAP 쿼리 실행 시 성공적인 결과를 얻을 수 없는 경우 이 섹션의 안내를 따라 연결을 테스트해 보세요. ldapsearch 실행 시 예상 사용자가 표시되지 않고 기반 TLS 세션이 완료되었다고 분명하게 표시되지 않는 경우 OpenSSL 클라이언트를 통해 OpenLDAP에서 사용하는 네트워크 계층이 정상적으로 작동하는지 확인하세요.
기본 연결을 테스트하려면 다음 안내를 따르세요.
운영체제에 맞는 openssl 클라이언트 유틸리티를 설치합니다.
대부분의 GNU/Linux 배포판에서는 'openssl'이라는 패키지를 사용합니다. 기타 운영체제에 대한 세부정보를 참고하세요.
openssl 클라이언트를 사용해 보안 LDAP 서비스에 수동으로 연결하려면 다음 명령어를 실행합니다.
openssl s_client -connect ldap.google.com:636openssl s_client 출력 끝부분에 다음과 같은 행이 표시되면 SSL 처리가 완료된 것입니다.
Verify return code: 0 (ok)
발생 가능한 오류
OpenSSL 클라이언트/라이브러리에서 SNI (서버 이름 표시)를 지원하지 않음
연결을 테스트하는 동안 다음 출력이 반환될 수 있습니다.
Verify return code: 18 (self signed certificate)
보안 LDAP 서비스에는 SNI (서버 이름 표시)를 사용하여 TLS 세션을 지원하고 시작하는 TLS 클라이언트가 필요합니다. TLS 클라이언트에서 SNI를 지원하지 않으면 TLS 서버 (ldap.google.com)에서 SNI가 필요하다는 것을 표시하기 위해 CA 유효성 검사를 통과하지 못한다는 자체 서명 인증서를 반환합니다.
이러한 동작은 다음 행의 출력 시작 부분에 표시되는 OpenSSL 클라이언트 출력을 통해 확인할 수 있습니다.
depth=0 OU = "No SNI provided; please fix your client.", CN = invalid2.invalid
SNI를 지원하지 않는 OpenSSL 버전 또는 SNI가 명시적으로 사용 중지된 OpenSSL 라이브러리를 사용하는 애플리케이션이 이러한 오류의 원인 중 하나일 수 있습니다.
연결이 거부됨
마이크로초 단위의 UNIX 타임스탬프인 {timestamp}에서 다음 출력이 반환되는 경우 TLS 처리가 시작되기 전에 TCP 연결이 거부되고 있는 것입니다.
{timestamp}:error:0200206F:system library:connect:Connection refused:crypto/bio/b_sock2.c:110:
{timestamp}:error:2008A067:BIO routines:BIO_connect:connect error:crypto/bio/b_sock2.c:111:connect:errno=111
다음과 같은 이유로 오류가 발생할 수 있습니다.
- 로컬 컴퓨터의 애플리케이션 수준 또는 시스템 수준 방화벽
- 동일한 실제 네트워크 또는 업스트림 네트워크의 방화벽
문제를 조사하려면 tcptraceroute(예: tcptraceroute ldap.google.com 636)를 사용해 연결을 거부하는 호스트를 파악하세요.