IAzApplication::InitializeClientContextFromStringSid 메서드(azroles.h)

InitializeClientContextFromStringSid 메서드는 텍스트 형식의 지정된 SID(보안 식별자)에서 IAzClientContext 개체 포인터를 가져옵니다.

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

 

구문

HRESULT InitializeClientContextFromStringSid(
  [in]           BSTR             SidString,
  [in]           LONG             lOptions,
  [in, optional] VARIANT          varReserved,
  [out]          IAzClientContext **ppClientContext
);

매개 변수

[in] SidString

보안 주체의 SID 텍스트 형식을 포함하는 문자열입니다. ConvertStringSidToSid 함수로 변환할 수 있는 유효한 문자열 SID여야 합니다.

[in] lOptions

컨텍스트를 만들기 위한 옵션입니다.

AZ_CLIENT_CONTEXT_SKIP_GROUP 지정한 경우 SidString 매개 변수에 지정된 SID가 반드시 유효한 사용자 계정이 아닌 것은 아닙니다. SID는 유효성 검사 없이 컨텍스트를 만드는 데 사용됩니다. 만든 컨텍스트는 SID에서 생성된 것으로 플래그가 지정되고 SID 문자열은 클라이언트 이름 필드에 저장되며 도메인 이름 필드는 비어 있습니다. 토큰 그룹은 클라이언트 컨텍스트 생성에 사용되지 않습니다. AZ_CLIENT_CONTEXT_SKIP_GROUP 지정한 경우 LDAP(Lightweight Directory Access Protocol) 쿼리 그룹은 지원되지 않습니다. 계정이 Active Directory에서 유효성을 검사하지 않으므로 UserSamCompat과 같은 클라이언트 컨텍스트의 사용자 정보 속성은 유효하지 않으며 액세스하면 ERROR_INVALID_HANDLE 반환합니다. RoleForAccessCheck 속성 및 IAzClientContextAccessCheck 메서드를 사용하여 액세스 검사에 대한 역할을 지정할 수 있습니다. IAzClientContextGetRoles 메서드를 사용하여 특정 scope 내에서 컨텍스트에 할당된 역할을 열거할 수 있습니다.

AZ_CLIENT_CONTEXT_SKIP_GROUP 지정하지 않은 경우 SID는 유효한 사용자 계정을 나타내야 합니다.

[in, optional] varReserved

다음에 사용하도록 예약됩니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

  • varReserved.vt == VT_ERROR 및 varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_NULL
  • varReserved.vt == VT_I4 및 varReserved.lVal == 0
  • varReserved.vt == VT_I2 및 varReserved.iVal == 0

[out] ppClientContext

반환된 IAzClientContext 개체에 대한 포인터에 대한 포인터입니다.

반환 값

함수가 성공하면 함수는 S_OK 반환합니다.

함수가 실패하면 오류를 나타내는 HRESULT 값을 반환합니다. 일반적인 오류 코드 목록은 일반 HRESULT 값을 참조하세요.

설명

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

중요 애플리케이션은 호출 컨텍스트에 이 함수를 사용할 수 있는 권한이 있다고 가정해서는 안 됩니다. AuthzInitializeContextFromSid 함수는 호출에 지정된 SID의 tokenGroupsGlobalAndUniversal 특성을 읽어 현재 사용자의 그룹 멤버 자격을 확인합니다. 사용자의 개체가 Active Directory에 있는 경우 호출 컨텍스트는 사용자 개체의 tokenGroupsGlobalAndUniversal 특성에 대한 읽기 권한이 있어야 합니다. tokenGroupsGlobalAndUniversal 특성에 대한 읽기 권한은 사전 Windows 2000 호환 액세스 그룹에 부여되지만 기본 설정 선택은 Windows 2000및 Windows Server 2003과 호환되는 사용 권한이므로 새 도메인에는 기본적으로 빈 Windows 2000 호환 액세스 그룹이 포함됩니다. 따라서 애플리케이션은 tokenGroupsGlobalAndUniversal 특성에 액세스할 수 없습니다. 이 경우 AuthzInitializeContextFromSid 함수가 ACCESS_DENIED 실패합니다. 이 함수를 사용하는 애플리케이션은 이 오류를 올바르게 처리하고 지원 설명서를 제공해야 합니다. 사용자 그룹 정보를 쿼리할 수 있는 권한 부여를 간소화하려면 그룹 정보를 조회하는 기능이 필요한 계정을 Windows 권한 부여 액세스 그룹에 추가합니다.
 
이 함수를 호출하는 애플리케이션은 정규화된 도메인 이름 또는 UPN( 사용자 계정 이름)을 사용해야 합니다. 그렇지 않으면 NetBIOS 도메인 이름을 사용하고 두 도메인에 직접 신뢰 관계가 없는 경우 포리스트 간에 이 메서드가 실패할 수 있습니다.

요구 사항

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

추가 정보

익명 액세스 허용

IAzApplication