コンテキストの要件
コンテキスト要件は、InitializeSecurityContext (General) または AcceptSecurityContext (General) 関数に渡されるビット フラグの組み合わせとして表されます。 これらのフラグは、さまざまな方法で コンテキスト に影響します。 すべてのフラグがすべてのコンテキストに適用されるわけではありません。 サーバーに対してのみ有効なものもあれば、クライアントに対してのみ有効なものもあります。
呼び出し元は、InitializeSecurityContext (General) または AcceptSecurityContext (General) 呼び出しの fContextReq パラメーターを使用して、必要な機能を示すフラグのセットを指定します。 関数が戻ると、 pfContextAttr パラメーターは、確立されたコンテキストの属性を示します。 呼び出し元は、最終的なコンテキスト属性が許容されるかどうかを判断します。
InitializeSecurityContext (General) から要求または返されるフラグには、ISC がプレフィックスとして付けられます。 AcceptSecurityContext (General) から要求または返されたものには、ASC のプレフィックスが付けられます。 関数に渡されるフラグには REQ が含まれますが、返されるフラグには RET が含まれます。 たとえば、 InitializeSecurityContext (General) に渡される相互認証の要求フラグはISC_REQ_MUTUAL_AUTH。 相互認証を要求するサーバーは、 AcceptSecurityContext (全般) にASC_REQ_MUTUAL_AUTH渡します。 相互認証が達成された場合、 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 Contexts」を参照してください。 |
CONNECTION |
接続セマンティクスを使用する必要があります。 詳細については、「 接続指向コンテキスト」を参照してください。 |
STREAM |
ストリーム セマンティクスを使用する必要があります。 詳細については、「 ストリーム コンテキスト」を参照してください。 |
EXTENDED_ERROR |
コンテキストが失敗した場合は、ピアのエラー応答メッセージを生成する必要があります。 |
整合性 |
バッファーの整合性は検証できますが、シーケンス処理や応答検出は有効になっていません。 |
NO_INTEGRITY |
INTEGRITY 要件は無視されます。 |
識別 |
このフラグが設定されているコンテキストをサーバーが偽装すると、その偽装によってアクセスが非常に制限されます。 IDENTIFY セットを使用した偽装は、クライアントの ID を確認するために使用されます。 |