컨텍스트 요구 사항

컨텍스트 요구 사항은 InitializeSecurityContext(일반) 또는 AcceptSecurityContext(일반) 함수에 전달되는 비트 플래그 의 조합으로 표현됩니다. 이러한 플래그는 여러 가지 방법으로 컨텍스트 에 영향을 미칩니다. 모든 플래그가 모든 컨텍스트에 적용되는 것은 아닙니다. 일부는 서버에만 유효하고 다른 일부는 클라이언트에만 유효합니다.

호출자는 InitializeSecurityContext(일반) 또는 AcceptSecurityContext(일반) 호출의 fContextReq 매개 변수를 사용하여 필요한 기능을 나타내는 플래그 집합을 지정합니다. 함수가 반환되면 pfContextAttr 매개 변수는 설정된 컨텍스트의 특성을 나타냅니다. 호출자는 최종 컨텍스트 특성이 허용되는지 여부를 결정합니다.

InitializeSecurityContext(일반)에서 요청되거나 반환된 플래그는 ISC에 의해 접두사로 지정됩니다. AcceptSecurityContext(일반)에서 요청되거나 반환된 항목에는 ASC가 접두사로 지정됩니다. 함수에 전달된 플래그에는 REQ가 포함되고 반환된 플래그에는 RET가 포함됩니다. 예를 들어 InitializeSecurityContext(일반) 에 전달된 상호 인증에 대한 요청 플래그는 ISC_REQ_MUTUAL_AUTH. 상호 인증을 요청하는 서버는 ASC_REQ_MUTUAL_AUTH AcceptSecurityContext(일반)로 전달합니다. 상호 인증이 달성되면 InitializeSecurityContext(일반) 는 ISC_RET_MUTUAL_AUTH 반환하고 AcceptSecurityContext(일반) 는 ASC_RET_MUTUAL_AUTH 반환합니다. 호출자가 상호 인증을 요청하지만 보안 패키지 가 수행할 수 없음을 나타내는 경우 호출자는 컨텍스트를 취소할지 아니면 계속할지를 결정해야 합니다.

다음 표에서는 다양한 컨텍스트 요구 사항 플래그에 대해 설명합니다.

플래그 설명
대리자
전송 애플리케이션의 서버는 클라이언트의 컨텍스트로 다른 서버에서 수락할 클라이언트를 가장하는 새 보안 컨텍스트를 빌드할 수 있습니다. 대리자는 MUTUAL_AUTH 설정된 경우에만 작동합니다. DELEGATE는 현재 Kerberos에서만 지원됩니다. 또한 Kerberos는 플래그가 TRUSTED_FOR_DELEGATION 서버에만 위임합니다. 제한된 위임에는 이 플래그를 사용하지 마세요.
MUTUAL_AUTH
통신 당사자는 서로 자신의 신원을 인증해야 합니다. MUTUAL_AUTH 없으면 클라이언트는 서버에 해당 ID를 인증합니다. MUTUAL_AUTH 서버는 클라이언트에 대한 ID도 인증해야 합니다.
Schannel 보안 패키지를 사용하는 경우 서버는 인증서 매핑이 성공적으로 완료된 후 AcceptSecurityContext(협상)에 대한 마지막 호출에서만 ASC_RET_MUTUAL_AUTH 상수를 설정합니다.
REPLAY_DETECT
보안 패키지는 재생된 패킷을 검색하고 패킷이 재생되었는지 호출자에게 알 수 있습니다. 이 플래그의 사용은 INTEGRITY 플래그로 지정된 모든 조건을 의미합니다.
SEQUENCE_DETECT
컨텍스트는 나중에 메시지 지원 함수를 통해 패킷의 순서가 잘못된 배달을 검색할 수 있어야 합니다. 이 플래그의 사용은 INTEGRITY 플래그로 지정된 모든 조건을 의미합니다.
기밀 유지
컨텍스트는 EncryptMessage(일반)DecryptMessage(일반) 함수를 사용하여 전송 중에 데이터를 보호할 수 있습니다. 생성된 컨텍스트가 게스트 계정에 대한 경우 CONFIDENTIALITY 플래그가 작동하지 않습니다.
USE_SESSION_KEY
세션 키를 협상해야 합니다.
PROMPT_FOR_CREDS
클라이언트가 대화형 사용자인 경우 보안 패키지는 가능한 경우 사용자에게 적절한 자격 증명을 묻는 메시지를 표시해야 합니다.
USE_SUPPLIED_CREDS
패키지별 자격 증명 정보는 입력 버퍼에서 사용할 수 있습니다. 보안 패키지는 이러한 자격 증명 을 사용하여 연결을 인증할 수 있습니다.
SAVE_SUPPLIED_CREDS
제공된 자격 증명은 추가 자격 증명과 함께 캐시되어야 합니다.
ALLOCATE_MEMORY
보안 패키지는 메모리를 할당해야 합니다. 호출자는 결국 FreeContextBuffer 함수를 호출하여 보안 패키지에 의해 할당된 메모리를 해제해야 합니다.
USE_DCE_STYLE
호출자는 3개 다리 인증 트랜잭션을 예상합니다.
데이터 그램
데이터그램 의미 체계를 사용해야 합니다. 자세한 내용은 Datagram 컨텍스트를 참조하세요.
CONNECTION
연결 의미 체계를 사용해야 합니다. 자세한 내용은 연결 지향 컨텍스트를 참조하세요.
스트림
스트림 의미 체계를 사용해야 합니다. 자세한 내용은 스트림 컨텍스트를 참조하세요.
EXTENDED_ERROR
컨텍스트가 실패하는 경우 피어에 대한 오류 회신 메시지를 생성해야 합니다.
무결성
버퍼 무결성을 확인할 수 있지만 시퀀싱 또는 회신 검색을 사용할 수 없습니다.
NO_INTEGRITY
무결성 요구 사항은 무시됩니다.
식별
서버가 이 플래그가 설정된 컨텍스트를 가장하는 경우 해당 가장은 매우 제한된 액세스를 생성합니다. IDENTIFY 집합을 사용한 가장은 클라이언트의 ID를 확인하는 데 사용됩니다.