SaslAcceptSecurityContext 関数 (sspi.h)
構文
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
パラメーター
[in] phCredential
サーバーの資格情報へのハンドル。 サーバーは、このハンドルを取得するために INBOUND フラグを設定して、AcquireCredentialsHandle 関数を呼び出します。
[in, optional] phContext
CtxtHandle 構造体へのポインター。 AcceptSecurityContext (General)
[in] pInput
入力バッファー記述子を含む InitializeSecurityContext (General) 関数へのクライアント呼び出しによって生成される SecBufferDesc 構造体へのポインター。
SASL には、SECBUFFER_TOKEN型の単一バッファーが必要です。 AcceptSecurityContext (General) 関数の最初の呼び出しでバッファーが空になり、2 回目の呼び出しでクライアントから受信したチャレンジ応答が含まれます。
[in] fContextReq
コンテキストを確立するためにサーバーで必要な属性を指定するビット フラグ。 ビット フラグは、ビットごとのOR 演算を使用して結合できます。 次の表に、使用可能な値を示します。
価値 | 意味 |
---|---|
|
メッセージの暗号化と暗号化解除。
SASL のダイジェスト SSP でのみ有効です。 |
|
HTTP のダイジェストを使用します。 SASL メカニズムとしてダイジェストを使用するには、このフラグを省略します。 |
[in] TargetDataRep
ターゲットのデータ表現 (バイト順序など) を示します。 この値は、SECURITY_NATIVE_DREPまたはSECURITY_NETWORK_DREPにすることができます。
[out] phNewContext
CtxtHandle 構造体へのポインター。 AcceptSecurityContext (General)
[in, out] pOutput
出力バッファー記述子を含む SecBufferDesc 構造体へのポインター。 このバッファーは、InitializeSecurityContext (General)への追加の呼び出しへの入力のためにクライアントに送信されます。 関数がSEC_E_OKを返した場合でも、出力バッファーが生成される場合があります。 生成されたバッファーは、クライアント アプリケーションに返送する必要があります。
[out] pfContextAttr
確立されたコンテキストの属性を示すビット フラグのセットを受け取る変数へのポインター。 さまざまな属性の詳細については、「コンテキスト要件の」を参照してください。 このパラメーターに使用されるフラグには、ASC_RET_DELEGATEなどのASC_RETがプレフィックスとして付けられます。
最後の関数呼び出しが正常に返されるまで、セキュリティ関連の属性を確認しないでください。 セキュリティに関連しない属性フラグ (ASC_RET_ALLOCATED_MEMORY フラグなど) は、最終的な戻り値の前に確認できます。
[out, optional] ptsExpiry
コンテキストの有効期限を受け取る TimeStamp 構造体へのポインター。 セキュリティ パッケージでは、常にローカル時刻でこの値を返 することをお勧めします。
戻り値
呼び出しが正常に完了すると、この関数はSEC_E_OKを返します。 次の表は、エラーの戻り値の可能性を示しています。
リターン コード | 形容 |
---|---|
|
認証処理は許可されていません。 |
|
要求を完了するのに十分なメモリがありません。 |
|
pOutput パラメーターにトークン バッファーが存在しないか、メッセージの暗号化を解除できませんでした。 |
備考
SEC_E_OKを返す AcceptSecurityContext (General) 関数の最後の呼び出しが識別されます。 戻りトークンが生成された場合、最終トークンの処理を許可するために、クライアントへの 1 回のラウンド トリップで SASL 処理が中断されます。 交換が完了すると、SSPI メッセージ関数で暗号化された追加の SASL サーバー Cookie を使用して、SEC_E_CONTINUE_NEEDEDがアプリケーションに返されます。 初期サーバー Cookie は、INTEGRITY と PRIVACY がサポートされているかどうかを示します。 この初期サーバー Cookie はクライアントによって処理され、クライアントはクライアント Cookie を返して、クライアントが要求するサービスを示します。 その後、クライアント Cookie はサーバーによって復号化され、最終的なサービスは次のメッセージ トラフィックに対して決定されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | サポートされていません |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | sspi.h (Security.h を含む) |
ライブラリ | Secur32.lib |
DLL | Secur32.dll |