コンテキストの要件
コンテキスト要件は、InitializeSecurityContext (General) または AcceptSecurityContext (General)関数渡されるビット フラグの組み合わせとして表されます。 これらのフラグは、さまざまな方法で コンテキストの に影響します。 すべてのフラグがすべてのコンテキストに適用されるわけではありません。 一部はサーバーに対してのみ有効で、その他はクライアントに対してのみ有効です。
呼び出し元は、InitializeSecurityContext (General) の fContextReq パラメーターまたは AcceptSecurityContext (General)呼び出し使用して、必要な機能を示すフラグのセットを指定します。 関数が戻るときに、pfContextAttr パラメーターは、確立されたコンテキストの属性を示します。 呼び出し元は、最終的なコンテキスト属性が許容できるかどうかを判断します。
InitializeSecurityContext (General)から要求されたフラグまたは返されるフラグには、ISC がプレフィックスとして付けられます。 AcceptSecurityContext (General) から要求された、または返されたものには、ASC がプレフィックスとして付けられます。 関数に渡されるフラグには REQ が含まれますが、返されるフラグには RET が含まれます。 たとえば、InitializeSecurityContext (General) に渡される相互認証の要求フラグはISC_REQ_MUTUAL_AUTH。 相互認証を要求するサーバーは、ASC_REQ_MUTUAL_AUTHを AcceptSecurityContext (General) 渡します。 相互認証が達成された場合、InitializeSecurityContext (General) はISC_RET_MUTUAL_AUTHを返し、AcceptSecurityContext (General) はASC_RET_MUTUAL_AUTHを返します。 呼び出し元が相互認証を要求するが、セキュリティ パッケージ が実行できないことを示している場合、呼び出し元はコンテキストをキャンセルするか続行するかを決定する必要があります。
次の表では、さまざまなコンテキスト要件フラグについて説明します。
旗 | 形容 |
---|---|
代表 |
トランスポート アプリケーション内のサーバーは、クライアントのコンテキストとして他のサーバーによって受け入れられるクライアントを偽装する新しいセキュリティ コンテキストを構築できます。 デリゲートは、MUTUAL_AUTHが設定されている場合にのみ機能します。 DELEGATE は現在、Kerberosでのみサポートされています。 さらに、Kerberos はフラグがTRUSTED_FOR_DELEGATIONサーバーにのみ委任されます。 このフラグは、制約付き委任には使用しないでください。 |
MUTUAL_AUTH |
通信相手は、相互に ID を認証する必要があります。 MUTUAL_AUTHしないと、クライアントはその ID をサーバーに対して認証します。 MUTUAL_AUTHでは、サーバーもクライアントに対して ID を認証する必要があります。 Schannel セキュリティ パッケージを使用する場合、サーバーは、証明書のマッピングが正常に完了した後、AcceptSecurityContext (Negotiate)最後の呼び出しでのみ、ASC_RET_MUTUAL_AUTH 定数を設定します。 |
REPLAY_DETECT |
セキュリティ パッケージ は再生されたパケットを検出し、パケットが再生された場合に呼び出し元に通知します。 このフラグの使用は、INTEGRITY フラグで指定されたすべての条件を意味します。 |
SEQUENCE_DETECT |
メッセージ サポート関数を使用して、後でパケットの順序が異常な配信を検出するには、コンテキストを許可する必要があります。 このフラグの使用は、INTEGRITY フラグで指定されたすべての条件を意味します。 |
機密性 |
コンテキストでは、EncryptMessage (General) と DecryptMessage (General) 関数を使用して、転送中のデータを保護できます。 生成されたコンテキストがゲスト アカウント用の場合、CONFIDENTIALITY フラグは機能しません。 |
USE_SESSION_KEY |
新しい セッション キー ネゴシエートする必要があります。 |
PROMPT_FOR_CREDS |
クライアントが対話型ユーザーの場合、セキュリティ パッケージは、可能であれば、適切な資格情報の入力をユーザーに求める必要があります。 |
USE_SUPPLIED_CREDS |
パッケージ固有の資格情報は、入力バッファーで使用できます。 セキュリティ パッケージでは、これらの 資格情報 を使用して接続を認証できます。 |
SAVE_SUPPLIED_CREDS |
指定された資格情報は、補足資格情報を使用してキャッシュする必要があります。 |
ALLOCATE_MEMORY |
セキュリティ パッケージ はメモリを割り当てる必要があります。 呼び出し元は、セキュリティ パッケージによって割り当てられたメモリを解放するために、最終的に FreeContextBuffer 関数を呼び出す必要があります。 |
USE_DCE_STYLE |
呼び出し元は、トランザクション3 段階認証を想定しています。 |
データグラム |
Datagram セマンティクスを使用する必要があります。 詳細については、「Datagram Contexts」を参照してください。 |
接続 |
接続セマンティクスを使用する必要があります。 詳細については、「Connection-Oriented コンテキストの」を参照してください。 |
川 |
ストリーム セマンティクスを使用する必要があります。 詳細については、「ストリーム コンテキストの」を参照してください。 |
EXTENDED_ERROR |
コンテキストが失敗した場合は、ピアのエラー応答メッセージを生成する必要があります。 |
整合性 |
バッファーの整合性は検証できますが、シーケンス処理または応答検出は有効になっていません。 |
NO_INTEGRITY |
INTEGRITY 要件は無視されます。 |
識別する |
このフラグが設定されているコンテキストをサーバーが偽装すると、その権限借用によってアクセスが非常に制限されます。 IDENTIFY セットを使用した偽装は、クライアントの ID を確認するために使用されます。 |