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
資格情報の使用方法を示すフラグ。 次の値が有効です。
値 | 意味 |
---|---|
|
資格情報は AcceptSecurityContext (General) 関数と共に使用されます。 |
|
資格情報は InitializeSecurityContext (General) 関数と共に使用されます。 |
[in] LogonId
省略可能。 セキュリティ プリンシパルのログオン識別子を含む LUID へのポインター。
[in] AuthorizationData
省略可能。 補助認証データへのポインター。
GetKeyFunciton
[in] GetKeyArgument
GetKeyFunction 関数で使用される引数へのポインター。
[out] CredentialHandle
資格情報を受け取る LSA_SEC_HANDLE へのポインター。 資格情報の使用が完了したら、 SpFreeCredentialsHandle 関数を呼び出してハンドルを解放します。
[out] ExpirationTime
資格情報ハンドルの有効期限が切れる時刻を受け取る TimeStamp へのポインター。
戻り値
関数が成功した場合は、STATUS_SUCCESSを返します。
関数が失敗した場合は、失敗した理由を示す NTSTATUS コードを返します。 次の表に、エラーの一般的な理由と、返されるエラー コードを示します。
リターン コード | 説明 |
---|---|
|
呼び出し元がアクセスを拒否されました。 |
|
指定したプリンシパルに使用できる資格情報はありません。 |
注釈
パッケージは 、ローカル セキュリティ機関 (LSA) サポート関数を使用して、要求された資格情報へのアクセス権を呼び出し元に付与する必要があるかどうかを判断できます。
SpAcquireCredentialsHandle から取得した資格情報は、SpFreeCredentialsHandle 関数を呼び出すことによって解放されます。
SSP/AP は SpAcquireCredentialsHandle 関数を実装する 必要があります。ただし、実装に与えられる実際の名前は開発者が指定します。
SpAcquireCredentialsHandle 関数へのポインターは、SpLsaModeInitialize 関数から受信したSECPKG_FUNCTION_TABLE構造体で使用できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | ntsecpkg.h |