InitializeSecurityContext(일반) 함수

InitializeSecurityContext(일반) 함수는 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다. 이 함수는 클라이언트 애플리케이션과 원격 피어 간에 보안 컨텍스트를 빌드하는 데 사용됩니다. InitializeSecurityContext(일반)는 클라이언트가 원격 피어에 전달해야 하는 토큰을 반환하며, 피어는 AcceptSecurityContext(일반) 호출을 통해 로컬 보안 구현에 제출합니다. 생성된 토큰은 모든 호출자가 불투명한 것으로 간주해야 합니다.

일반적으로 InitializeSecurityContext(일반) 함수는 충분한 보안 컨텍스트 가 설정될 때까지 루프에서 호출됩니다.

특정 SSP(보안 지원 공급자 )와 함께 이 함수를 사용하는 방법에 대한 자세한 내용은 다음 항목을 참조하세요.

항목 설명
InitializeSecurityContext(CredSSP) CredSSP(자격 증명 보안 지원 공급자) 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.
InitializeSecurityContext(다이제스트) 다이제스트 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.
InitializeSecurityContext(Kerberos) Kerberos 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.
InitializeSecurityContext(협상) 협상 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.
InitializeSecurityContext(NTLM) NTLM 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.
InitializeSecurityContext(Schannel) Schannel 보안 패키지를 사용하여 자격 증명 핸들에서 클라이언트 쪽 아웃바운드 보안 컨텍스트를 시작합니다.

구문

SECURITY_STATUS SEC_Entry InitializeSecurityContext(
  _In_opt_    PCredHandle    phCredential,
  _In_opt_    PCtxtHandle    phContext,
  _In_opt_    SEC_CHAR       *pszTargetName,
  _In_        ULONG          fContextReq,
  _In_        ULONG          Reserved1,
  _In_        ULONG          TargetDataRep,
  _In_opt_    PSecBufferDesc pInput,
  _In_        ULONG          Reserved2,
  _Inout_opt_ PCtxtHandle    phNewContext,
  _Inout_opt_ PSecBufferDesc pOutput,
  _Out_       PULONG         pfContextAttr,
  _Out_opt_   PTimeStamp     ptsExpiry
);

매개 변수

phCredential[in, optional]

AcquireCredentialsHandle(일반)에서 반환된 자격 증명에 대한 핸들입니다. 이 핸들은 보안 컨텍스트를 빌드하는 데 사용됩니다. InitializeSecurityContext(일반) 함수에는 적어도 OUTBOUND 자격 증명이 필요합니다.

phContext[in, optional]

CtxtHandle 구조체에 대한 포인터입니다. InitializeSecurityContext(일반)대한 첫 번째 호출에서 이 포인터는 다음과 같습니다NULL. 두 번째 호출에서 이 매개 변수는 첫 번째 호출에 의해 phNewContext 매개 변수에 반환된 부분적으로 형성된 컨텍스트에 대한 핸들에 대한 포인터입니다.

이 매개 변수는 Microsoft Digest SSP에서 선택 사항이며 으로 설정할 NULL수 있습니다.

Schannel SSP를 사용하는 경우 InitializeSecurityContext(일반)에 대한 첫 번째 호출에서 지정NULL합니다. 이후 호출에서 이 함수에 대한 첫 번째 호출 후 phNewContext 매개 변수에서 받은 토큰을 지정합니다.

Warning

InitializeSecurityContext(일반)에 대한 동시 호출에서 동일한 컨텍스트 핸들을 사용하지 마세요. 보안 서비스 공급자의 API 구현은 스레드로부터 안전하지 않습니다.

pTargetName[in, optional]

컨텍스트의 대상을 나타내는 null로 끝나는 문자열에 대한 포인터입니다. 문자열 내용은 다음 표에 설명된 대로 보안 패키지 에 따라 다릅니다. 현재 이 목록은 완전한 목록이 아닙니다. 시스템에 추가 시스템 SSP 및 타사 SSP를 추가할 수 있습니다.

사용 중인 SSP 의미
다이제스트 요청된 리소스의 URI를 고유하게 식별하는 Null로 끝나는 문자열입니다. 문자열은 URI에서 허용되는 문자로 구성되어야 하며 미국 ASCII 코드 집합으로 나타낼 수 있어야 합니다. 백분율 인코딩을 사용하여 미국 ASCII 코드 집합 외부의 문자를 나타낼 수 있습니다.
Kerberos 또는 Negotiate SPN(서비스 사용자 이름) 또는 대상 서버의 보안 컨텍스트 입니다.
NTLM SPN(서비스 사용자 이름) 또는 대상 서버의 보안 컨텍스트 입니다.
Schannel/SSL 대상 서버를 고유하게 식별하는 Null로 끝나는 문자열입니다. Schannel은 이 값을 사용하여 서버 인증서를 확인합니다. 또한 Schannel은 이 값을 사용하여 연결을 다시 설정하면 세션 캐시에서 세션을 찾습니다. 캐시된 세션은 다음 조건이 모두 충족되는 경우에만 사용됩니다.
-대상 이름이 동일합니다.
-캐시 항목이 만료되지 않았습니다.
-함수를 호출하는 애플리케이션 프로세스는 동일합니다.
-로그온 세션이 동일합니다.
-자격 증명 핸들이 동일합니다.

fContextReq[in]

컨텍스트에 대한 요청을 나타내는 비트 플래그입니다. 모든 패키지가 모든 요구 사항을 지원할 수 있는 것은 아닙니다. 이 매개 변수에 사용되는 플래그에는 접두사 앞에 ISC_REQ_(예: ISC_REQ_DELEGATE)가 있습니다. 이 매개 변수는 다음 특성 플래그 중 하나 이상일 수 있습니다.

의미
ISC_REQ_ALLOCATE_MEMORY 보안 패키지출력 버퍼를 할당합니다. 출력 버퍼 사용을 마쳤으면 FreeContextBuffer 함수를 호출하여 해제합니다.
ISC_REQ_CONFIDENTIALITY EncryptMessage 함수를 사용하여 메시지를 암호화합니다.
ISC_REQ_CONNECTION 보안 컨텍스트메시지 서식을 처리하지 않습니다. 이 값은 Kerberos, Negotiate 및 NTLM 제한 위임의 기본값입니다.
ISC_REQ_DELEGATE 서버는 컨텍스트를 사용하여 다른 서버에 클라이언트로 인증할 수 있습니다. 이 플래그가 작동하려면 ISC_REQ_MUTUAL_AUTH 플래그를 설정해야 합니다. Kerberos에 유효합니다. 제한된 위임에 대해 이 플래그를 무시합니다.
ISC_REQ_EXTENDED_ERROR 오류가 발생하면 원격 당사자에게 알림이 표시됩니다.
ISC_REQ_HTTP HTTP용 다이제스트를 사용합니다. 다이제스트를 SASL 메커니즘으로 사용하려면 이 플래그를 생략합니다.
ISC_REQ_INTEGRITY EncryptMessage 및 MakeSignature 함수를 사용하여 메시지에 서명하고 서명을 확인합니다.
ISC_REQ_MANUAL_CRED_VALIDATION Schannel은 서버를 자동으로 인증하지 않아야 합니다.
ISC_REQ_MUTUAL_AUTH 서비스의 상호 인증 정책이 충족됩니다.
주의: 이는 반드시 상호 인증이 수행된다는 의미는 아니며 서비스의 인증 정책이 충족된다는 것만을 의미합니다. 상호 인증이 수행되도록 하려면 QueryContextAttributes(일반) 함수를 호출합니다.
ISC_REQ_NO_INTEGRITY 이 플래그를 설정 하면 ISC_REQ_INTEGRITY 플래그가 무시됩니다.
이 값은 Negotiate 및 Kerberos 제한 위임에서만 지원됩니다.
ISC_REQ_REPLAY_DETECT EncryptMessage 또는 MakeSignature 함수를 사용하여 인코딩된 재생된 메시지를 검색합니다.
ISC_REQ_SEQUENCE_DETECT 시퀀스에서 수신된 메시지를 검색합니다.
ISC_REQ_STREAM 스트림 지향 연결을 지원합니다.
ISC_REQ_USE_SESSION_KEY 세션 키를 협상해야 합니다.
이 값은 Kerberos 제한 위임에서만 지원됩니다.
ISC_REQ_USE_SUPPLIED_CREDS Schannel은 클라이언트에 대한 자격 증명을 자동으로 제공하려고 시도해서는 안됩니다.

요청된 특성은 클라이언트에서 지원되지 않을 수 있습니다. 자세한 내용은 pfContextAttr 매개 변수를 참조하세요.

다양한 특성에 대한 자세한 설명은 컨텍스트 요구 사항을 참조 하세요.

Reserved1[in]

이 매개 변수는 예약되어 있으며 0으로 설정해야 합니다.

TargetDataRep[in]

대상의 바이트 순서 지정과 같은 데이터 표현입니다. 이 매개 변수는 SECURITY_NATIVE_DREP 또는 SECURITY_NETWORK_DREP 수 있습니다.

이 매개 변수는 Digest 또는 Schannel과 함께 사용되지 않습니다. 0으로 설정합니다.

pInput[in, optional]

패키지에 대한 입력으로 제공된 버퍼에 대한 포인터를 포함하는 SecBufferDesc 구조체에 대한 포인터입니다. 서버에서 클라이언트 컨텍스트를 시작하지 않는 한 이 매개 변수의 값은 함수에 대한 첫 번째 호출에 있어야 NULL 합니다. 함수에 대한 후속 호출 또는 서버에서 클라이언트 컨텍스트가 시작된 경우 이 매개 변수의 값은 원격 컴퓨터에서 반환된 토큰을 보유하기에 충분한 메모리로 할당된 버퍼에 대한 포인터입니다.

Reserved2[in]

이 매개 변수는 예약되어 있으며 0으로 설정해야 합니다.

phNewContext[in, out, optional]

CtxtHandle 구조체에 대한 포인터입니다. InitializeSecurityContext(일반)대한 첫 번째 호출에서 이 포인터는 새 컨텍스트 핸들을 받습니다. 두 번째 호출에서 phNewContext는 phContext 매개 변수에 지정된 핸들과 같을 수 있습니다. phNewContext는 절대로 안 됩니다 NULL.

pOutput[in, out, optional]

출력 데이터를 수신하는 SecBuffer 구조체에 대한 포인터를 포함하는 SecBufferDesc 구조체에 대한 포인터입니다. 버퍼가 입력에 SEC_READWRITE 입력된 경우 출력에 있습니다. 시스템은 요청된 경우(ISC_REQ_ALLOCATE_MEMORY 통해) 보안 토큰에 대한 버퍼를 할당하고 보안 토큰에 대한 버퍼 설명자의 주소를 채웁니다.

Microsoft Digest SSP를 사용하는 경우 이 매개 변수는 서버로 보내야 하는 챌린지 응답을 받습니다.

Schannel SSP를 사용하는 경우 ISC_REQ_ALLOCATE_MEMORY 플래그가 지정된 경우 Schannel SSP는 버퍼에 대한 메모리를 할당하고 SecBufferDesc적절한 정보를 배치합니다. 또한 호출자는 SECBUFFER_ALERT 형식의 버퍼를 전달해야 합니다. 출력에서 경고가 생성되면 이 버퍼에 해당 경고에 대한 정보가 포함되고 함수가 실패합니다.

pfContextAttr[out]

설정된 컨텍스트의 특성을 나타내는 비트 플래그 집합을 수신하는 변수에 대한 포인터입니다. 다양한 특성에 대한 설명은 컨텍스트 요구 사항을 참조 하세요.

이 매개 변수에 사용되는 플래그에는 ISC_RET_DELEGATE 같은 ISC_RET 접두사로 지정됩니다. 유효한 값 목록은 fContextReq 매개 변수를 참조하세요.

최종 함수 호출이 성공적으로 반환될 때까지 보안 관련 특성에 대해 검사 마세요. ASC_RET_ALLOCATED_MEMORY 플래그와 같이 보안과 관련이 없는 특성 플래그는 최종 반환 전에 검사 수 있습니다.

참고 항목

특정 컨텍스트 특성은 원격 피어와 협상하는 동안 변경 될 수 있습니다.

ptsExpiry[out, optional]

컨텍스트의 만료 시간을 받는 TimeStamp 구조체에 대한 포인터입니다. 보안 패키지는 항상 로컬 시간에 이 값을 반환하는 것이 좋습니다. 이 매개 변수는 선택 사항이며 NULL 수명이 짧은 클라이언트에 대해 전달되어야 합니다.

Microsoft Digest SSP 보안 컨텍스트또는 자격 증명에 대한 만료 시간은 없습니다.

반환 값

함수가 성공하면 함수는 다음 성공 코드 중 하나를 반환합니다.

반환 코드 설명
SEC_I_COMPLETE_AND_CONTINUE 클라이언트는 CompleteAuthToken을 호출한 다음 출력을 서버에 전달해야 합니다. 그런 다음 클라이언트는 반환된 토큰을 기다렸다가 다른 호출 에서 InitializeSecurityContext(일반)에 전달합니다.
SEC_I_COMPLETE_NEEDED 클라이언트는 메시지 빌드를 완료한 다음 CompleteAuthToken 함수를 호출해야 합니다.
SEC_I_CONTINUE_NEEDED 클라이언트는 출력 토큰을 서버에 보내고 반환 토큰을 기다려야 합니다. 반환된 토큰은 InitializeSecurityContext(일반)에 대한 다른 호출로 전달됩니다. 출력 토큰은 비어 있을 수 있습니다.
SEC_I_INCOMPLETE_CREDENTIALS Schannel과 함께 사용합니다. 서버가 클라이언트 인증을 요청했으며 제공된 자격 증명에 인증서가 포함되지 않았거나 서버에서 신뢰하는 인증 기관에서 인증서를 발급하지 않았습니다. 자세한 내용은 설명 부분을 참조하세요.
SEC_E_INCOMPLETE_MESSAGE Schannel과 함께 사용합니다. 전체 메시지에 대한 데이터가 유선에서 읽지 않았습니다.
이 값이 반환되면 pInput 버퍼에는 SECBUFFER_MISSING BufferType 멤버가 있는 SecBuffer 구조체가 포함됩니다. SecBuffer의 cbBuffer 멤버에는 이 함수가 성공하기 전에 함수가 클라이언트에서 읽어야 하는 추가 바이트 수를 나타내는 값이 포함되어 있습니다. 이 숫자가 항상 정확하지는 않지만 이 숫자를 사용하면 이 함수에 대한 여러 호출을 방지하여 성능을 향상시킬 수 있습니다.
SEC_E_OK 보안 컨텍스트가 성공적으로 초기화되었습니다. 다른 InitializeSecurityContext(일반) 호출은 필요하지 않습니다. 함수가 출력 토큰을 반환하는 경우, 즉 pOutput의 SECBUFFER_TOKEN 0이 아닌 경우 해당 토큰을 서버로 보내야 합니다.

함수가 실패하면 함수는 다음 오류 코드 중 하나를 반환합니다.

반환 코드 설명
SEC_E_INSUFFICIENT_MEMORY 요청된 작업을 완료하는 데 사용할 수 있는 메모리가 부족합니다.
SEC_E_INTERNAL_ERROR SSPI 오류 코드에 매핑되지 않은 오류가 발생했습니다.
SEC_E_INVALID_HANDLE 함수에 전달된 핸들이 잘못되었습니다.
SEC_E_INVALID_TOKEN 이 오류는 전송 중에 손상된 토큰, 잘못된 크기의 토큰 또는 잘못된 보안 패키지에 전달된 토큰과 같은 형식이 잘못된 입력 토큰 때문입니다. 클라이언트와 서버가 적절한 보안 패키지를 협상하지 않은 경우 잘못된 패키지에 토큰을 전달할 수 있습니다.
SEC_E_LOGON_DENIED 로그온에 실패했습니다.
SEC_E_NO_AUTHENTICATING_AUTHORITY 인증을 위해 어떤 권한도 연락할 수 없습니다. 인증 당사자의 do기본 이름이 잘못되었거나, do기본 연결할 수 없거나, 트러스트 관계 실패가 있을 수 있습니다.
SEC_E_NO_CREDENTIALS 보안 패키지에서 사용할 수 있는 자격 증명이 없습니다.
SEC_E_TARGET_UNKNOWN 대상이 인식되지 않았습니다.
SEC_E_UNSUPPORTED_FUNCTION 유효하지 않은 컨텍스트 특성 플래그(ISC_REQ_DELEGATE 또는 ISC_REQ_PROMPT_FOR_CREDS)가 fContextReq 매개 변수에 지정되었습니다.
SEC_E_WRONG_PRINCIPAL 인증 요청을 받은 보안 주체는 pszTargetName 매개 변수에 전달된 보안 주체와 다릅니다. 상호 인증에 실패했음을 나타냅니다.

설명

호출자는 최종 컨텍스트 특성이 충분한지 여부를 결정합니다. 예를 들어 기밀성을 요청했지만 설정할 수 없는 경우 일부 애플리케이션은 연결을 즉시 종료하도록 선택할 수 있습니다.

보안 컨텍스트의 특성이 충분하지 않은 경우 클라이언트는 DeleteSecurityContext 함수를 호출하여 부분적으로 생성된 컨텍스트를 해제해야 합니다.

InitializeSecurityContext(일반) 함수는 클라이언트에서 아웃바운드 컨텍스트를 초기화하는 데 사용됩니다.

두 다리 보안 컨텍스트의 경우 호출 시퀀스는 다음과 같습니다.

  1. 클라이언트는 phContext가 설정된 함수NULL 호출하고 버퍼 설명자를 입력 메시지로 채웁니다.
  2. 보안 패키지매개 변수를 검사하고 불투명 토큰을 생성하여 버퍼 배열의 TOKEN 요소에 배치합니다. fContextReq 매개 변수에 ISC_REQ_ALLOCATE_MEMORY 플래그가 포함된 경우 보안 패키지메모리를 할당하고 TOKEN 요소의 포인터를 반환합니다.
  3. 클라이언트는 pOutput 버퍼에 반환된 토큰을 대상 서버로 보냅니다. 그런 다음, 서버는 AcceptSecurityContext(일반) 함수에 대한 호출에서 토큰을 입력 인수로 전달합니다.
  4. AcceptSecurityContext(일반)는 첫 번째 호출이 SEC_I_CONTINUE_NEEDED 반환된 경우 서버가 InitializeSecurityContext(일반)에 대한 두 번째 호출을 위해 클라이언트에 보내는 토큰을 반환할 수 있습니다.

상호 인증과 같은 다중 다리 보안 컨텍스트의 경우 호출 시퀀스는 다음과 같습니다.

  1. 클라이언트는 앞에서 설명한 대로 함수를 호출하지만 패키지는 SEC_I_CONTINUE_NEEDED 성공 코드를 반환합니다.
  2. 클라이언트는 출력 토큰을 서버로 보내고 서버의 회신을 기다립니다.
  3. 서버의 응답을 받으면 클라이언트는 InitializeSecurityContext(일반)를 다시 호출하고 phContext는 마지막 호출에서 반환된 핸들로 설정됩니다. 서버에서 받은 토큰은 pInput 매개 변수에 제공됩니다.
  4. InitializeSecurityContext(일반)에 대한 동시 호출에는 phContext 값을 사용하지 마세요. 보안 공급자의 구현은 스레드로부터 안전하지 않습니다.

서버가 성공적으로 응답하면 보안 패키지SEC_E_OK 반환하고 보안 세션이 설정됩니다.

함수가 오류 응답 중 하나를 반환하는 경우 서버의 응답이 수락되지 않고 세션이 설정되지 않습니다.

함수가 SEC_I_CONTINUE_NEEDED, SEC_I_COMPLETE_NEEDED 또는 SEC_I_COMPLETE_AND_CONTINUE 반환하는 경우 2단계와 3단계가 반복됩니다.

보안 컨텍스트초기화하려면 fContextReq 매개 변수에 지정된 선택 사항뿐만 아니라 기본 인증 메커니즘에 따라 이 함수에 대해 둘 이상의 호출이 필요할 수 있습니다.

fContextReqpfContextAttributes 매개 변수는 다양한 컨텍스트 특성을 나타내는 비트 마스크입니다. 다양한 특성에 대한 설명은 컨텍스트 요구 사항을 참조 하세요. pfContextAttributes 매개 변수는 모든 성공적인 반환에 유효하지만, 컨텍스트의 보안 측면과 관련된 플래그를 검사해야 최종 성공적인 반환에만 유효합니다. 중간 반환은 예를 들어 ISC_RET_ALLOCATED_MEMORY 플래그를 설정할 수 있습니다.

ISC_REQ_USE_SUPPLIED_CREDS 플래그가 설정된 경우 보안 패키지는 pInput 입력 버퍼에서 SECBUFFER_PKG_PARAMS 버퍼 형식을 찾아야 합니다. 일반적인 솔루션은 아니지만 적절한 경우 보안 패키지와 애플리케이션을 강력하게 페어링할 수 있습니다.

ISC_REQ_ALLOCATE_MEMORY 지정한 경우 호출자는 FreeContextBuffer 함수를 호출하여 메모리를 해제해야 합니다.

예를 들어 입력 토큰은 LAN 관리자의 과제일 수 있습니다. 이 경우 출력 토큰은 챌린지에 대한 NTLM 암호화 응답입니다.

클라이언트가 수행하는 작업은 이 함수의 반환 코드에 따라 달라집니다. 반환 코드가 SEC_E_OK 경우 두 번째 InitializeSecurityContext(일반) 호출이 없고 서버의 응답이 필요하지 않습니다. 반환 코드가 SEC_I_CONTINUE_NEEDED 경우 클라이언트는 서버의 응답으로 토큰을 예상하고 InitializeSecurityContext(일반)에 대한 두 번째 호출에서 전달합니다. SEC_I_COMPLETE_NEEDED 반환 코드는 클라이언트가 메시지 빌드를 완료하고 CompleteAuthToken 함수를 호출해야 임을 나타냅니다. SEC_I_COMPLETE_AND_CONTINUE 코드는 이러한 두 작업을 통합합니다.

InitializeSecurityContext(일반)가 첫 번째(또는 유일한) 호출에서 성공을 반환하는 경우 호출자는 결국 인증 교환의 이후 레그에서 호출이 실패하더라도 반환된 핸들에서 DeleteSecurityContext 함수를 호출해야 합니다.

클라이언트는 성공적으로 완료된 후 InitializeSecurityContext(일반)를 다시 호출할 수 있습니다. 이는 보안 패키지재인증이 원한다는 것을 나타냅니다.

커널 모드 호출자는 다음과 같은 차이점이 있습니다. 대상 이름은 VirtualAlloc를 사용하여 가상 메모리에 할당해야 하는 유니코드 문자열이며 풀에서 할당해서는 안 됩니다. pInput 및 pOutput에서 전달되고 제공된 버퍼는 풀이 아닌 가상 메모리에 있어야 합니다.

Schannel SSP를 사용하는 경우 함수가 SEC_I_INCOMPLETE_CREDENTIALS 반환하는 경우 자격 증명에 유효하고 신뢰할 수 있는 인증서를 지정했는지 검사. 인증서는 AcquireCredentialsHandle(일반) 함수를 호출할 때 지정됩니다. 인증서는 서버에서 신뢰하는 CA(인증 기관)에서 발급한 클라이언트 인증 인증서여야 합니다. 서버에서 신뢰할 수 있는 CA 목록을 가져오려면 QueryContextAttributes(일반) 함수를 호출하고 SECPKG_ATTR_ISSUER_LIST_EX 특성을 지정합니다.

Schannel SSP를 사용하는 경우 클라이언트 애플리케이션이 서버에서 신뢰할 수 있는 CA로부터 인증 인증서를 받은 후 애플리케이션은 AcquireCredentialsHandle(일반) 함수를 호출한 다음 InitializeSecurityContext(일반)를 다시 호출하고 phCredential 매개 변수에 새 자격 증명을 지정하여 새 자격 증명을 만듭니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003[데스크톱 앱만 해당]
헤더 Sspi.h(Security.h 포함)
라이브러리 Secur32.lib
DLL Secur32.dll
유니코드 및 ANSI 이름 InitializeSecurityContextW (유니코드) 및 InitializeSecurityContextA (ANSI)

참고 항목

SSPI 함수

서비스에서 EPA(확장된 인증 보호) 지원

AcceptSecurityContext(일반)

AcquireCredentialsHandle(일반)

CompleteAuthToken

DeleteSecurityContext

FreeContextBuffer

SecBuffer

SecBufferDesc