SpAcceptLsaModeContextFn 콜백 함수(ntsecpkg.h)
서버 및 클라이언트에서 공유하는 보안 컨텍스트 를 만드는 데 사용되는 서버 디스패치 함수입니다.
SpAcceptLsaModeContext 함수는 서버가 보안 지원 공급자 인터페이스의 AcceptSecurityContext(일반) 함수를 호출할 때 호출됩니다.
구문
SpAcceptLsaModeContextFn Spacceptlsamodecontextfn;
NTSTATUS Spacceptlsamodecontextfn(
[in] LSA_SEC_HANDLE CredentialHandle,
[in] LSA_SEC_HANDLE ContextHandle,
[in] PSecBufferDesc InputBuffer,
[in] ULONG ContextRequirements,
[in] ULONG TargetDataRep,
[out] PLSA_SEC_HANDLE NewContextHandle,
[out] PSecBufferDesc OutputBuffer,
[out] PULONG ContextAttributes,
[out] PTimeStamp ExpirationTime,
[out] PBOOLEAN MappedContext,
[out] PSecBuffer ContextData
)
{...}
매개 변수
[in] CredentialHandle
선택 사항입니다. 컨텍스트에 사용할 자격 증명에 대한 핸들입니다.
[in] ContextHandle
선택 사항입니다. 현재 컨텍스트에 대한 핸들입니다.
[in] InputBuffer
클라이언트의 정보를 포함하는 SecBufferDesc 구조체에 대한 포인터입니다.
[in] ContextRequirements
컨텍스트 요구 사항을 나타내는 플래그입니다. 다음 표에는 유효한 값이 나와 있습니다.
값 | 의미 |
---|---|
|
서버는 클라이언트를 가장할 수 있습니다. |
|
클라이언트와 서버 모두 ID를 증명해야 합니다. |
|
보안 컨텍스트는 재생된 패킷의 검색을 지원합니다. |
|
보안 컨텍스트는 순서가 다른 메시지의 검색을 지원합니다. |
|
새 세션 키를 협상해야 합니다. |
|
클라이언트가 대화형 사용자인 경우 패키지는 가능한 경우 사용자에게 적절한 자격 증명을 묻는 메시지를 표시해야 합니다. |
|
입력 버퍼에는 연결을 인증하는 데 사용해야 하는 패키지별 자격 증명 정보가 포함되어 있습니다. |
|
패키지는 메모리를 할당해야 합니다. 호출자는 결국 FreeContextBuffer 함수를 호출하여 보안 패키지에서 할당한 메모리를 해제해야 합니다. |
|
호출자는 3개 다리 상호 인증 트랜잭션을 예상합니다. |
|
데이터그램 형식 통신 채널을 사용해야 합니다. 자세한 내용은 Datagram 컨텍스트를 참조하세요. |
|
연결 형식 통신 채널을 사용해야 합니다. 자세한 내용은 연결 지향 컨텍스트를 참조하세요. |
|
컨텍스트가 실패하면 오류 응답 메시지를 생성하여 클라이언트로 다시 보냅니다. |
|
스트림 형식 통신 채널을 사용해야 합니다. 자세한 내용은 Stream 컨텍스트를 참조하세요. |
|
버퍼 무결성을 확인할 수 있습니다. 그러나 재생된 메시지와 순서가 벗어난 메시지는 검색되지 않습니다. |
[in] TargetDataRep
사용할 바이트 순서 지정과 같은 데이터 표현을 나타내는 플래그입니다. SECURITY_NATIVE_DREP 또는 SECURITY_NETWORK_DREP 포함합니다.
[out] NewContextHandle
LSA_SEC_HANDLE 대한 포인터입니다. AcceptSecurityContext에 대한 첫 번째 호출에서 이 포인터는 새 컨텍스트 핸들을 받습니다. 후속 호출에서 NewContextHandle 은 ContextHandle 매개 변수에 지정된 핸들과 같을 수 있습니다.
[out] OutputBuffer
클라이언트로 보낼 정보를 수신하는 SecBufferDesc 구조체에 대한 포인터입니다.
[out] ContextAttributes
서버에서 지원하는 컨텍스트 특성을 지정하는 플래그에 대한 포인터입니다. 유효한 값 목록은 ContextRequirements 매개 변수를 참조하세요.
[out] ExpirationTime
컨텍스트의 만료 시간을 수신하는 TimeStamp 에 대한 포인터입니다.
[out] MappedContext
부울 값에 대한 포인터입니다. 보안 패키지가 사용자 모드 SSP/AP 함수를 구현하는 경우 MappedContext를 TRUE로 설정합니다.
[out] ContextData
선택 사항입니다. 사용자 모드 보안 컨텍스트를 만들 때 복사할 컨텍스트별 데이터를 수신하는 SecBuffer 구조체에 대한 포인터입니다. AllocateLsaHeap 함수를 사용하여 ContextData에 대한 메모리를 할당해야 합니다. LSA( 로컬 보안 기관 )는 메모리를 해제합니다.
반환 값
SpAcceptLsaModeContext 함수가 성공하고 보안 컨텍스트를 설정하는 데 더 이상 처리가 필요하지 않은 경우 STATUS_SUCCESS 반환합니다. 추가 처리가 필요한 경우 함수는 SEC_I_CONTINUE_NEEDED 반환해야 합니다.
함수가 다른 이유로 보안 컨텍스트를 만들지 못하는 경우 이유를 나타내는 NTSTATUS 코드를 반환합니다.
설명
SpInitLsaModeContext 는 보안 컨텍스트를 만들기 위한 클라이언트 쪽 함수입니다.
SSP/AP는 SpAcceptLsaModeContext 함수를 구현해야 합니다. 구현에 지정된 실제 이름은 개발자에게 달려 있습니다.
SpAcceptLsaModeContext 함수에 대한 포인터는 SpLsaModeInitialize 함수에서 받은 SECPKG_FUNCTION_TABLE 구조에서 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ntsecpkg.h |