SpAcquireCredentialsHandleFn 콜백 함수(ntsecpkg.h)

보안 주체의 자격 증명에 대한 핸들을 가져오기 위해 호출됩니다. 보안 패키지는 호출자에게 자격 증명에 액세스할 수 있는 권한이 없는 경우 호출자에 대한 액세스를 거부할 수 있습니다.

자격 증명 핸들이 호출자에게 반환되는 경우 패키지는 핸들의 만료 시간도 지정해야 합니다.

구문

SpAcquireCredentialsHandleFn Spacquirecredentialshandlefn;

NTSTATUS Spacquirecredentialshandlefn(
  [in]  PUNICODE_STRING PrincipalName,
  [in]  ULONG CredentialUseFlags,
  [in]  PLUID LogonId,
  [in]  PVOID AuthorizationData,
        PVOID GetKeyFunciton,
  [in]  PVOID GetKeyArgument,
  [out] PLSA_SEC_HANDLE CredentialHandle,
  [out] PTimeStamp ExpirationTime
)
{...}

매개 변수

[in] PrincipalName

선택 사항입니다. 자격 증명이 요청되는 보안 주체의 이름을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다. 이 값이 NULL이면 호출자는 호출자가 실행 중인 보안 컨텍스트 에서 사용자의 자격 증명에 대한 핸들을 요청합니다.

[in] CredentialUseFlags

자격 증명을 사용하는 방법을 나타내는 플래그입니다. 다음 값은 유효합니다.

의미
SECPKG_CRED_INBOUND
자격 증명은 AcceptSecurityContext(일반) 함수와 함께 사용됩니다.
SECPKG_CRED_OUTBOUND
자격 증명은 InitializeSecurityContext(일반) 함수와 함께 사용됩니다.

[in] LogonId

선택 사항입니다. 보안 주체의 로그온 식별자를 포함하는 LUID에 대한 포인터입니다.

[in] AuthorizationData

선택 사항입니다. 추가 인증 데이터에 대한 포인터입니다.

GetKeyFunciton

[in] GetKeyArgument

GetKeyFunction 함수와 함께 사용되는 인수에 대한 포인터입니다.

[out] CredentialHandle

자격 증명을 수신하는 LSA_SEC_HANDLE 대한 포인터입니다. 자격 증명 사용을 마쳤으면 SpFreeCredentialsHandle 함수를 호출하여 핸들을 해제합니다.

[out] ExpirationTime

자격 증명 핸들이 만료되는 시간을 수신하는 TimeStamp 에 대한 포인터입니다.

반환 값

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

함수가 실패하면 실패한 이유를 나타내는 NTSTATUS 코드를 반환합니다. 다음 표에는 오류의 일반적인 이유와 반환해야 하는 오류 코드가 나와 있습니다.

반환 코드 설명
SEC_E_NOT_OWNER
호출자가 액세스가 거부되었습니다.
SEC_E_NO_CREDENTIALS
지정된 보안 주체에 사용할 수 있는 자격 증명이 없습니다.

설명

패키지는 LSA( 로컬 보안 기관 ) 지원 함수를 사용하여 호출자에게 요청된 자격 증명에 대한 액세스 권한을 부여해야 하는지 여부를 결정할 수 있습니다.

SpAcquireCredentialsHandle에서 가져온 자격 증명은 SpFreeCredentialsHandle 함수를 호출하여 해제됩니다.

SSP/AP는 SpAcquireCredentialsHandle 함수를 구현해야 합니다. 그러나 구현에 지정된 실제 이름은 개발자에게 달려 있습니다.

SpAcquireCredentialsHandle 함수에 대한 포인터는 SpLsaModeInitialize 함수에서 받은 SECPKG_FUNCTION_TABLE 구조에서 사용할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntsecpkg.h

추가 정보

SECPKG_FUNCTION_TABLE

SpFreeCredentialsHandle

SpLsaModeInitialize