Win32 API 日本語リファレンス
ホーム › Security.Authentication.Identity › SpAcquireCredentialsHandleFn

SpAcquireCredentialsHandleFn

コールバック

シグネチャ

NTSTATUS SpAcquireCredentialsHandleFn(
    LSA_UNICODE_STRING* PrincipalName,
    DWORD CredentialUseFlags,
    LUID* LogonId,
    void* AuthorizationData,
    void* GetKeyFunciton,
    void* GetKeyArgument,
    UINT_PTR* CredentialHandle,
    LONGLONG* ExpirationTime
);

パラメーター

フィールド型説明
PrincipalNameLSA_UNICODE_STRING*省略可能。資格情報が要求されているセキュリティプリンシパルの名前を格納した UNICODE_STRING 構造体へのポインターです。この値が NULL の場合、呼び出し元は、自身が実行されているセキュリティコンテキストのユーザーの資格情報に対するハンドルを要求します。
CredentialUseFlagsDWORD

資格情報をどのように使用するかを示すフラグです。次の値が有効です。

値 意味
SECPKG_CRED_INBOUND
資格情報は AcceptSecurityContext (General) 関数で使用されます。
SECPKG_CRED_OUTBOUND
資格情報は InitializeSecurityContext (General) 関数で使用されます。
LogonIdLUID*省略可能。セキュリティプリンシパルのログオン識別子を格納した LUID へのポインターです。
AuthorizationDatavoid*省略可能。補足的な認証データへのポインターです。
GetKeyFuncitonvoid*
GetKeyArgumentvoid*GetKeyFunction 関数で使用される引数へのポインターです。
CredentialHandleUINT_PTR*資格情報を受け取る LSA_SEC_HANDLE へのポインターです。資格情報の使用を終えたら、SpFreeCredentialsHandle 関数を呼び出してハンドルを解放してください。
ExpirationTimeLONGLONG*資格情報ハンドルの有効期限が切れる時刻を受け取る TimeStamp へのポインターです。

公式ドキュメント

プリンシパルの資格情報に対するハンドルを取得するために呼び出されます。呼び出し元が資格情報にアクセスする権限を持たない場合、セキュリティパッケージは呼び出し元のアクセスを拒否できます。

資格情報ハンドルを呼び出し元に返す場合、パッケージはそのハンドルの有効期限も指定する必要があります。

戻り値

関数が成功した場合は STATUS_SUCCESS を返します。

関数が失敗した場合は、失敗した理由を示す NTSTATUS コードを返します。次の表に、失敗の一般的な理由と返すべきエラーコードを示します。

戻り値 説明
SEC_E_NOT_OWNER
呼び出し元のアクセスが拒否されました。
SEC_E_NO_CREDENTIALS
指定されたプリンシパルに対して利用できる資格情報がありません。

解説(Remarks)

パッケージは、ローカルセキュリティ機関 (LSA) のサポート関数を使用して、要求された資格情報へのアクセスを呼び出し元に許可すべきかどうかを判断できます。

SpAcquireCredentialsHandle から取得した資格情報は、 SpFreeCredentialsHandle 関数を呼び出して解放します。

SSP/AP は SpAcquireCredentialsHandle 関数を実装する必要があります。ただし、実装に付ける実際の名前は開発者が自由に決められます。

SpAcquireCredentialsHandle 関数へのポインターは、 SpLsaModeInitialize 関数から受け取る SECPKG_FUNCTION_TABLE 構造体に格納されています。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)