AuthzInitializeContextFromSid 함수(authz.h)

AuthzInitializeContextFromSid 함수는 SID(사용자 보안 식별자)에서 사용자 모드 클라이언트 컨텍스트를 만듭니다. 도메인 SID는 Active Directory에서 토큰 그룹 특성을 검색합니다.

참고 가능하면 AuthzInitializeContextFromSid 대신 AuthzInitializeContextFromToken 함수를 호출합니다. 자세한 내용은 설명 부분을 참조하세요.

 

구문

AUTHZAPI BOOL AuthzInitializeContextFromSid(
  [in]           DWORD                         Flags,
  [in]           PSID                          UserSid,
  [in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
  [in]           PLARGE_INTEGER                pExpirationTime,
  [in]           LUID                          Identifier,
  [in, optional] PVOID                         DynamicGroupArgs,
  [out]          PAUTHZ_CLIENT_CONTEXT_HANDLE  phAuthzClientContext
);

매개 변수

[in] Flags

다음 플래그가 정의됩니다.

Windows 8 및 Windows Server 2012 시작하여 원격 컨텍스트 핸들에서 이 함수를 호출할 때 상위 16비트 는 0이어야 합니다.

의미
0(0x0)
기본값.

AuthzInitializeContextFromSid 는 S4U 로그온을 수행하여 사용자의 토큰 그룹 정보를 검색하려고 시도합니다.

사용자의 도메인 또는 호출 컴퓨터에서 S4U 로그온을 지원하지 않는 경우 AuthzInitializeContextFromSid 는 사용자 계정 개체에 그룹 정보를 쿼리합니다. 계정을 직접 쿼리하면 네트워크, 대화형, 익명, 네트워크 서비스 또는 로컬 서비스와 같은 로그온 특성을 나타내는 일부 그룹이 생략됩니다. 애플리케이션은 AuthzComputeGroupsCallback 함수를 구현하거나 AuthzAddSidsToContext 함수를 호출하여 이러한 그룹 SID를 명시적으로 추가할 수 있습니다.

AUTHZ_SKIP_TOKEN_GROUPS
2(0x2)
AuthzInitializeContextFromSid가 모든 그룹 평가를 건너뛰도록 합니다. 이 플래그를 사용하면 반환된 컨텍스트에 UserSid 매개 변수로 지정된 SID만 포함됩니다. 지정된 SID는 임의 또는 애플리케이션별 SID일 수 있습니다. AuthzComputeGroupsCallback 함수를 구현하거나 AuthzAddSidsToContext 함수를 호출하여 다른 SID를 이 컨텍스트에 추가할 수 있습니다.
AUTHZ_REQUIRE_S4U_LOGON
4(0x4)
사용자용 Windows 서비스를 토큰 그룹 정보를 검색할 수 없는 경우 AuthzInitializeContextFromSid 가 실패하도록 합니다.

Windows XP: 이 플래그는 지원되지 않습니다.

AUTHZ_COMPUTE_PRIVILEGES
8(0x8)
AuthzInitializeContextFromSid가 새 컨텍스트에 대한 권한을 검색하도록 합니다. 이 함수는 S4U 로그온을 수행하는 경우 토큰에서 권한을 검색합니다. 그렇지 않으면 함수는 컨텍스트의 모든 SID에서 권한을 검색합니다.

[in] UserSid

클라이언트 컨텍스트를 만들 사용자의 SID입니다. AUTHZ_SKIP_TOKEN_GROUPS 플래그를 사용하지 않는 한 유효한 사용자 또는 컴퓨터 계정이어야 합니다.

[in, optional] hAuthzResourceManager

이 클라이언트 컨텍스트를 만드는 리소스 관리자에 대한 핸들입니다. 이 핸들은 클라이언트 컨텍스트 구조에 저장됩니다.

Windows 8 및 Windows Server 2012 시작하여 리소스 관리자는 로컬 또는 원격일 수 있으며 AuthzInitializeRemoteResourceManager 함수를 호출하여 가져옵니다.

[in] pExpirationTime

토큰의 만료 날짜 및 시간입니다. 값이 전달되지 않으면 토큰이 만료되지 않습니다. 만료 시간은 현재 적용되지 않습니다.

[in] Identifier

리소스 관리자의 특정 식별자입니다. 이 매개 변수는 현재 사용되지 않습니다.

[in, optional] DynamicGroupArgs

동적 그룹을 계산하는 콜백 함수에 전달할 매개 변수에 대한 포인터입니다. 동적 매개 변수가 콜백 함수에 전달되지 않는 경우 이 매개 변수는 NULL 일 수 있습니다.

Windows 8 및 Windows Server 2012 리소스 관리자가 원격인 경우 이 매개 변수는 NULL이어야 합니다. 그렇지 않으면 ERROR_NOT_SUPPORTED 설정됩니다.

[out] phAuthzClientContext

AuthzInitializeContextFromSid 함수가 만드는 클라이언트 컨텍스트에 대한 핸들에 대한 포인터입니다. 핸들 사용을 마쳤으면 AuthzFreeContext 함수를 호출하여 핸들을 해제합니다.

반환 값

함수가 성공하면 함수는 0이 아닌 값을 반환합니다.

함수가 실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

가능하면 AuthzInitializeContextFromSid 대신 AuthzInitializeContextFromToken 함수를 호출합니다. AuthzInitializeContextFromSid 는 클라이언트가 실제로 로그온한 로그온 토큰에서 사용할 수 있는 정보를 검색하려고 시도합니다. 실제 로그온 토큰은 로그온 유형 및 로그온 속성과 같은 자세한 정보를 제공하며 로그온에 사용되는 인증 패키지의 동작을 반영합니다. AuthzInitializeContextFromToken에서 만든 클라이언트 컨텍스트는 로그온 토큰을 사용하며, 결과 클라이언트 컨텍스트는 AuthzInitializeContextFromSid에서 만든 클라이언트 컨텍스트보다 더 완전하고 정확합니다.

이 함수는 유효한 사용자 SID만 확인합니다.

Windows XP: 이 함수는 유효한 사용자 및 그룹 SID에 대한 그룹 멤버 자격을 확인합니다(AUTHZ_SKIP_TOKEN_GROUPS 플래그를 사용하지 않는 한). 그룹 SID의 멤버 자격 확인에 대한 지원은 후속 버전에서 변경되거나 사용할 수 없습니다.

이 함수는 AuthzComputeGroupsCallback 콜백 함수를 호출하여 새로 만든 컨텍스트에 SID를 추가합니다.

중요 애플리케이션은 호출 컨텍스트에 이 함수를 사용할 수 있는 권한이 있다고 가정해서는 안 됩니다. AuthzInitializeContextFromSid 함수는 호출에 지정된 SID의 tokenGroupsGlobalAndUniversal 특성을 읽어 현재 사용자의 그룹 멤버 자격을 확인합니다. 사용자의 개체가 Active Directory에 있는 경우 호출 컨텍스트는 사용자 개체의 tokenGroupsGlobalAndUniversal 특성에 대한 읽기 권한이 있어야 합니다. 새 도메인을 만들 때 기본 액세스 호환성 선택은 Windows 2000 및 Windows Server 2003 운영 체제와 호환되는 권한입니다. 이 옵션을 설정하면 Windows 2000 이전 호환 액세스 그룹에 는 인증된 사용자 기본 제공 보안 식별자만 포함됩니다. 따라서 애플리케이션은 tokenGroupsGlobalAndUniversal 특성에 액세스할 수 없습니다. 이 경우 AuthzInitializeContextFromSid 함수가 ACCESS_DENIED 실패합니다. 이 함수를 사용하는 애플리케이션은 이 오류를 올바르게 처리하고 지원 설명서를 제공해야 합니다. 사용자 그룹 정보를 쿼리할 수 있는 권한 부여를 간소화하려면 그룹 정보를 조회하는 기능이 필요한 계정을 Windows 권한 부여 액세스 그룹에 추가합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 authz.h
라이브러리 Authz.lib
DLL Authz.dll
재배포 가능 파일 Windows XP의 Windows Server 2003 관리 도구 팩

추가 정보

익명 액세스 허용

AuthzFreeContext

기본 Access Control 함수