QueryContextAttributes (General) 関数

トランスポート アプリケーションがセキュリティ コンテキストの特定の属性についてセキュリティ パッケージに対してクエリを実行できるようにします。

特定のセキュリティ サポート プロバイダー (SSP) におけるこの関数の使用については、次のトピックを参照してください。

トピック 説明
QueryContextAttributes (CredSSP) トランスポート アプリケーションが、セキュリティ コンテキストの特定の属性について資格情報セキュリティ サポート プロバイダー (CredSSP) に対してクエリを実行できるようにします。
QueryContextAttributes (Digest) トランスポート アプリケーションが、セキュリティ コンテキストの特定の属性についてダイジェスト セキュリティ パッケージに対してクエリを実行できるようにします。
QueryContextAttributes (Kerberos) トランスポート アプリケーションで、セキュリティ コンテキストの特定の属性について Kerberos セキュリティ パッケージに対してクエリを実行できるようにします。
QueryContextAttributes (Negotiate) トランスポート アプリケーションで、セキュリティ コンテキストの特定の属性についてネゴシエート セキュリティ パッケージに対してクエリを実行できるようにします。
QueryContextAttributes (NTLM) トランスポート アプリケーションが、セキュリティ コンテキストの特定の属性について NTLM セキュリティ パッケージに対してクエリを実行できるようにします。
QueryContextAttributes (Schannel) トランスポート アプリケーションが、セキュリティ コンテキストの特定の属性について Schannel セキュリティ パッケージに対してクエリを実行できるようにします。

構文

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

パラメーター

phContext [in]

クエリを実行する セキュリティ コンテキスト へのハンドル。

ulAttribute [in]

返されるコンテキストの属性を指定します。 このパラメーターには、次の値のいずれかを指定できます。

意味
SECPKG_ATTR_ACCESS_TOKEN
18
pBuffer パラメーターには、SecPkgContext_AccessToken 構造体へのポインターが含まれています。
アクセス トークンへのハンドルを返します。
SECPKG_ATTR_APP_DATA
0x5E
pBuffer パラメーターには、SecPkgContext_SessionAppData 構造体へのポインターが含まれています。
セッションのアプリケーション データを返すか指定します。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_AUTHORITY
6
pBuffer パラメーターには、SecPkgContext_Authority 構造体へのポインターが含まれています。
認証機関の名前を照会します。
SECPKG_ATTR_CLIENT_SPECIFIED_TARGET
27
pBuffer パラメーターには、クライアントによって提供される初期ターゲットのサービス プリンシパル名 (SPN) を表す SecPkgContext_ClientSpecifiedTarget 構造体へのポインターが含まれています。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
SECPKG_ATTR_CONNECTION_INFO
0x5a
pBuffer パラメーターには、SecPkgContext_ConnectionInfo構造体へのポインターが含まれています。
確立された接続に関する詳細情報を返します。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_CREDS_2
0x80000086
pBuffer パラメーターには、クライアント資格情報を指定する SecPkgContext_ClientCreds 構造体へのポインターが含まれています。
クライアント資格情報がユーザー名とパスワードの場合、バッファーはパックされた KERB_INTERACTIVE_LOGON 構造になります。
クライアント資格情報がユーザー名とスマート カード PIN の場合、バッファーはパックされた KERB_CERTIFICATE_LOGON 構造になります。
クライアント資格情報がオンライン ID 資格情報の場合、バッファーはマーシャリングされた SEC_WINNT_AUTH_IDENTITY_EX2 構造体です。
この属性は、CredSSP サーバーでのみサポートされます。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。
SECPKG_ATTR_DCE_INFO
3
pBuffer パラメーターには、SecPkgContext_DceInfo 構造体へのポインターが含まれています。
DCE サービスによって使用される承認データをクエリします。
SECPKG_ATTR_ENDPOINT_BINDINGS
26
pBuffer パラメーターには、チャネル バインド情報を指定する SecPkgContext_Bindings 構造体へのポインターが含まれています。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
pBuffer パラメーターには、SecPkgContext_EapKeyBlock 構造体へのポインターが含まれています。
EAP TLS プロトコルで使用されるキー データをクエリします。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_FLAGS
14
pBuffer パラメーターには、SecPkgContext_Flags 構造体へのポインターが含まれています。
ネゴシエートされたコンテキスト フラグに関する情報を返します。
SECPKG_ATTR_ISSUER_LIST_EX
0x59
pBuffer パラメーターには、SecPkgContext_IssuerListInfoEx 構造体へのポインターが含まれています。
サーバーによって受け入れられる証明書発行者の一覧を返します。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_KEY_INFO
5
pBuffer パラメーターには、SecPkgContext_KeyInfo 構造体へのポインターが含まれています。
セキュリティ コンテキストで使用されるキーに関する情報をクエリします。
SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS
30
pBuffer パラメーターには、 InitializeSecurityContext 関数への最新の呼び出しからのトークンがクライアントからの最後のトークンであるかどうかを指定する SecPkgContext_LastClientTokenStatus 構造体へのポインターが含まれています。
この値は、Negotiate、Kerberos、および NTLM のセキュリティ パッケージでのみサポートされます。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
SECPKG_ATTR_LIFESPAN
2
pBuffer パラメーターには、SecPkgContext_Lifespan 構造体へのポインターが含まれています。
コンテキストの有効期間をクエリします。
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
pBuffer パラメーターには、PCCERT_CONTEXT 構造体へのポインターが含まれています。
ローカルエンド証明書を含む証明書コンテキストを検索します。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_LOCAL_CRED
pBuffer パラメーターには、SecPkgContext_LocalCredentialInfo 構造体へのポインターが含まれています。 (互換性のために残されています)
SECPKG_ATTR_LOCAL_CERT_CONTEXT に置き換えられます。
SECPKG_ATTR_NAMES
1
pBuffer パラメーターには、SecPkgContext_Names 構造体へのポインターが含まれています。
コンテキストに関連付けられている名前をクエリします。
SECPKG_ATTR_NATIVE_NAMES
13
pBuffer パラメーターには、SecPkgContext_NativeNames 構造体へのポインターが含まれています。
送信チケットからプリンシパル名 (CNAME) を返します。
SECPKG_ATTR_NEGOTIATION_INFO
12
pBuffer パラメーターには、SecPkgContext_NegotiationInfo 構造体へのポインターが含まれています。
ネゴシエーション プロセスで使用されるセキュリティ パッケージに関する情報と、そのパッケージを使用するためのネゴシエーションの現在の状態を返します。
SECPKG_ATTR_PACKAGE_INFO
10
pBuffer パラメーターには、SecPkgContext_PackageInfo 構造体へのポインターが含まれています。
使用中の SSP に関する情報を返します。
SECPKG_ATTR_PASSWORD_EXPIRY
8
pBuffer パラメーターには、SecPkgContext_PasswordExpiry 構造体へのポインターが含まれています。
パスワードの有効期限情報を返します。
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
pBuffer パラメーターには、PCCERT_CONTEXT 構造体へのポインターが含まれています。
サーバーによって提供される終了証明書を含む証明書コンテキストを検索します。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_ROOT_STORE
0x55
pBuffer パラメーターには、HCERTCONTEXT 構造体へのポインターが含まれています。 ルート ストアによって提供される証明書を含む証明書コンテキストを検索します。
SECPKG_ATTR_SESSION_KEY
9
pBuffer パラメーターには、SecPkgContext_SessionKey 構造体へのポインターが含まれています。
セッション キーに関する情報を返します。
SECPKG_ATTR_SESSION_INFO
0x5d
pBuffer パラメーターには、SecPkgContext_SessionInfo 構造体へのポインターが含まれています。
セッションに関する情報を返します。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_SIZES
0
pBuffer パラメーターには、SecPkgContext_Sizes 構造体へのポインターが含まれています。
メッセージごとの関数で使用される構造体のサイズをクエリします。
SECPKG_ATTR_STREAM_SIZES
4
pBuffer パラメーターには、SecPkgContext_StreamSizes 構造体へのポインターが含まれています。
メッセージごとの関数で使用されるストリームのさまざまな部分のサイズをクエリします。
この属性は、Schannel セキュリティ パッケージでのみサポートされます。
SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES
124
pBuffer パラメーターには、SecPkgContext_Subject Attributes 構造体へのポインターが含まれています。
この値は、接続のセキュリティ属性に関する情報を返します。
この値は、CredSSP サーバーでのみサポートされます。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
pBuffer パラメーターには、SecPkgContext_SupportedSignatures 構造体へのポインターが含まれています。
この値は、接続でサポートされている署名の種類に関する情報を返します。
この値は、Schannel の 制約付き委任でのみサポートされます。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。
SECPKG_ATTR_TARGET_INFORMATION
17
pBuffer パラメーターには、SecPkgContext_TargetIformation 構造体へのポインターが含まれています。
リモート サーバーの名前に関する情報を返します。
SECPKG_ATTR_UNIQUE_BINDINGS
25
pBuffer パラメーターには、チャネル バインド情報を指定する SecPkgContext_Bindings 構造体へのポインターが含まれています。
この値は、Schannel の 制約付き委任でのみサポートされます。
Windows Server 2008、Windows Vista、Windows Server 2003、および Windows XP: この値はサポートされていません。

 

pBuffer [out]

属性を受け取る構造体へのポインター。 指し示される構造体の型は、ulAttribute パラメーターで指定された値によって異なります。

戻り値

関数が成功すると、戻り値は SEC_E_OK になります。

関数が失敗した場合は、0 以外のエラーコードを返します。

解説

pBuffer パラメーターが指す構造体は、クエリ対象の属性によって異なります。 呼び出し元は pBuffer 構造体自体を割り当てる必要がありますが、SSP は pBuffer構造体の可変サイズのメンバーを保持するために必要なメモリを割り当てます。 SSP によって割り当てられたメモリは、FreeContextBuffer 関数を呼び出すことによって解放できます。

SECPKG_ATTR_REMOTE_CERT_CONTEXT値またはSECPKG_ATTR_LOCAL_CERT_CONTEXT値が読み取られた後、 hCertStore メンバーは中間証明書を含む証明書ストアへのハンドル (存在する場合) に設定されます。 また、アプリケーションは CertFreeCertificateContext を呼び出して、証明書コンテキストで使用されるメモリを解放する役割を担います。

必要条件

要件 Value
サポートされている最小のクライアント
Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー
Windows Server 2003 (デスクトップ アプリのみ)
ヘッダー
Sspi.h (Security.h を含む)
ライブラリ
Secur32.lib
[DLL]
Secur32.dll
Unicode 名と ANSI 名
QueryContextAttributesW (Unicode) と QueryContextAttributesA (ANSI)

関連項目

SSPI 関数

サービスでの認証のための拡張保護 (EPA) のサポート

CERT_CONTEXT

FreeContextBuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes