다음을 통해 공유


ldap_bind_s 함수(winldap.h)

ldap_bind_s 함수는 클라이언트를 LDAP 서버에 동기적으로 인증합니다.

구문

WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
  [in] LDAP        *ld,
  [in] const PSTR  dn,
  [in] const PCHAR cred,
  [in] ULONG       method
);

매개 변수

[in] ld

세션 핸들입니다.

[in] dn

바인딩하는 데 사용되는 항목의 고유 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. DN, UPN, WinNT 스타일 사용자 이름 또는 디렉터리 서버가 식별자로 허용할 다른 이름일 수 있습니다.

[in] cred

인증할 자격 증명을 포함하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수를 사용하여 임의 자격 증명을 전달할 수 있습니다. 자격 증명의 형식 및 콘텐츠는 메서드 매개 변수의 설정에 따라 달라집니다. 자세한 내용은 설명 부분을 참조하세요.

[in] method

사용할 인증 방법을 나타냅니다. 자세한 내용과 유효한 비동기 인증 방법 목록은 설명 섹션을 참조하세요. 유효한 비동기 인증 방법에 대한 자세한 내용과 설명은 ldap_bind.

반환 값

함수가 성공하면 반환 값이 LDAP_SUCCESS.

함수가 실패하면 오류 코드를 반환합니다. 자세한 내용은 반환 값을 참조하세요.

설명

Windows Server 2008 및 Windows Vista에서 사용자 계정 컨트롤이 도입된 것은 LDAP에서 수정 또는 추가와 관련하여 매우 중요한 결과를 초래합니다. 사용자가 제한된 UAC 관리자 토큰을 사용하여 DC에 로그온하고 NULL 자격 증명을 사용하는 경우 디렉터리에 대한 수정 또는 추가 또는 스키마 변경 작업이 실패합니다. 여기에는 DirSync 검색, SecurityDescriptorFlags를 사용할 때 개체의 ntSecurityDescriptor 특성에서 SACL 검색 및 기타 여러 작업이 포함됩니다.

이러한 모든 작업은 액세스 권한이 부족하여 실패합니다.

관리자가 DC에 로그온할 때 사용자 계정 컨트롤이 적용되는 경우 관리자는 로그온 세션에서 제한된 토큰을 받게 됩니다. 그런 다음 NULL 자격 증명이 있는 ldap_bind_s 사용하는 경우 수정 또는 추가 작업을 수행하지 못합니다.

ldap_bind_s 구현은 다음 표에 나열된 인증 방법을 지원합니다. LDAP_AUTH_SIMPLE 옵션을 사용하여 ldap_bind_s 호출하는 것은 ldap_simple_bind_s 호출하는 것과 같습니다.

메서드 Description 자격 증명
LDAP_AUTH_SIMPLE 일반 텍스트 암호를 사용하여 인증합니다. 사용자 암호를 포함하는 문자열입니다.
LDAP_AUTH_DIGEST 다이제스트 인증 패키지. 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호가 있는 SEC_WINNT_AUTH_IDENTITY 구조에 대한 포인터로 설정합니다.
LDAP_AUTH_DPA 분산 암호 인증. Microsoft 멤버 자격 시스템에서 사용됩니다. 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호가 있는 SEC_WINNT_AUTH_IDENTITY 구조에 대한 포인터로 설정합니다.
LDAP_AUTH_MSN Microsoft 네트워크 인증 서비스. 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호가 있는 SEC_WINNT_AUTH_IDENTITY 구조에 대한 포인터로 설정합니다.
LDAP_AUTH_NEGOTIATE GSS(일반 보안 서비스)(Snego). 인증을 제공하지 않고 사용 가능한 서비스 목록에서 가장 적절한 인증 방법을 선택하고 모든 인증 데이터를 해당 서비스에 전달합니다. 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호를 사용하여 SEC_WINNT_AUTH_IDENTITY 또는 SEC_WINNT_AUTH_IDENTITY_EX 구조체에 대한 포인터로 설정합니다.
LDAP_AUTH_NTLM NT LAN 관리자 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호를 사용하여 SEC_WINNT_AUTH_IDENTITY 또는 SEC_WINNT_AUTH_IDENTITY_EX 구조체에 대한 포인터로 설정합니다.
LDAP_AUTH_SICILY MSN 서버에 대한 패키지 협상을 다룹니다. 현재 사용자로 로그인하려면 dncred 매개 변수를 NULL로 설정합니다. 다른 사용자로 로그인하려면 dn 매개 변수를 NULL 로 설정하고 cred 매개 변수를 적절한 사용자 이름, 도메인 이름 및 암호가 있는 SEC_WINNT_AUTH_IDENTITY 구조에 대한 포인터로 설정합니다.
LDAP_AUTH_SSPI 사용되지 않습니다. 이전 버전과의 호환성을 위해 포함됩니다. 이 상수를 사용하면 GSS(Snego) 협상 서비스를 선택합니다. LDAP_AUTH_NEGOTIATE 동일합니다.
 

비동기 바인딩 인증의 경우 ldap_bind LDAP_AUTH_SIMPLE사용합니다.

바인딩 작업은 고유 이름과 암호와 같은 일부 유형의 인증 자격 증명을 제공하여 디렉터리 서버에 대한 클라이언트를 식별합니다. 정확한 자격 증명은 사용되는 인증 방법에 따라 달라집니다. ldap_bind_s()(단순하지 않은) 자격 증명에 대해 NULL을 전달하면 현재 사용자 또는 서비스 자격 증명이 사용됩니다. 간단한 바인딩 메서드( ldap_simple_bind_s)를 지정하면 NULL 일반 텍스트 암호와 동일합니다. 자세한 내용은 ldap_bind 참조하세요.

LDAP 2 서버는 인증이 필요한 다른 작업을 시도하기 전에 애플리케이션을 바인딩해야 합니다.

다중 스레딩: 바인딩 호출은 연결 전체에 적용되므로 안전하지 않습니다. 스레드가 연결을 공유하고 바인딩 작업을 다른 작업과 스레드하려는 경우 주의해야 합니다.

참고 Microsoft LDAP 클라이언트는 각 바인딩 응답 왕복에 대해 기본 시간 제한 값 120초(2분)를 사용합니다. 이 시간 제한 값은 LDAP_OPT_TIMELIMIT 세션 옵션을 사용하여 변경할 수 있습니다. ldap_set_option 사용하여 지정하지 않는 한 다른 작업에는 시간 제한이 없습니다.
 
세션 핸들의 모든 작업이 완료되면 LDAP 세션 핸들을 ldap_unbind 함수에 전달하여 세션을 종료해야 합니다. 또한 ldap_bind_s 호출이 실패하면 오류 복구에 더 이상 필요하지 않은 경우 ldap_unbind 호출을 통해 세션 핸들을 해제해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 winldap.h
라이브러리 Wldap32.lib
DLL Wldap32.dll

추가 정보

LDAP 세션 설정

함수

반환 값

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind