HttpWebRequest.UnsafeAuthenticatedConnectionSharing プロパティ

定義

高速 NTLM 認証接続共有を許可するかどうかを示す値を取得または設定します。

public:
 property bool UnsafeAuthenticatedConnectionSharing { bool get(); void set(bool value); };
public bool UnsafeAuthenticatedConnectionSharing { get; set; }
member this.UnsafeAuthenticatedConnectionSharing : bool with get, set
Public Property UnsafeAuthenticatedConnectionSharing As Boolean

プロパティ値

認証された接続を開いたままにする true。それ以外の場合は、falseします。

注釈

注意

WebRequestHttpWebRequestServicePointWebClient は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。

このプロパティの既定値は falseです。これにより、要求の完了後に現在の接続が閉じられます。 アプリケーションは、新しい要求を発行するたびに認証シーケンスを通過する必要があります。

このプロパティが trueに設定されている場合、応答の取得に使用される接続は、認証が実行された後も開いたままです。 この場合、このプロパティが true に設定されている他の要求では、再認証なしで接続が使用される可能性があります。 つまり、ユーザー A に対して接続が認証されている場合、ユーザー B は A の接続を再利用できます。ユーザー B の要求は、ユーザー A の資格情報に基づいて満たされます。

注意

認証されずにアプリケーションが接続を使用する可能性があるため、このプロパティを trueに設定するときに、システムに管理上の脆弱性がないことを確認する必要があります。 アプリケーションが複数のユーザーに対する要求を送信し (複数のユーザー アカウントを偽装する)、リソースを保護するために認証に依存している場合は、次に示すように接続グループを使用しない限り、このプロパティを true に設定しないでください。

パフォーマンスの問題があり、アプリケーションが統合 Windows 認証を使用する Web サーバーで実行されている場合は、このメカニズムを有効にすることを検討してください。

この設定を有効にすると、システムはセキュリティ リスクを受け取ります。 UnsafeAuthenticatedConnectionSharing プロパティを true に設定する場合は、次の予防措置を講じてください。

  • ConnectionGroupName プロパティを使用して、さまざまなユーザーの接続を管理します。 これにより、認証されていないアプリケーションによる接続の潜在的な使用が回避されます。 たとえば、ユーザー A には、ユーザー B とは異なる一意の接続グループ名が必要です。これにより、ユーザー アカウントごとに分離レイヤーが提供されます。

  • 接続の悪用の可能性を回避するために、保護された環境でアプリケーションを実行します。

バックエンド サーバーを制御する場合は、別の方法として、認証の永続化をオフにすることを検討してください。 これにより、パフォーマンスが低下しますが、より安全です。 詳細については、AuthPersistenceを参照してください。

手記

PreAuthenticateUnsafeAuthenticatedConnectionSharing の両方が trueに設定されている場合、各要求は安全でないプールからの接続を使用して送信されますが、Authorization ヘッダーが使用されます。

適用対象