Exchange Server でダウンロード ドメインを構成する
概要
Download Domains
機能を使用すると、ユーザーが Outlook on the Web (OWA) にアクセスするために使用する URL とは異なる URL から添付ファイルが読み込まれます。 このクロスサイト呼び出しでは、ブラウザーのいわゆる SameSite cookies
標準 が適用されます。これにより、 クロスサイト要求フォージェリ (CSRF) 攻撃に対する保護が強化されます。
Download Domains
機能によって対処される脆弱性は、CVE-2021-1730 などです。
Cookie とは何か、また、どのような場合に使用されているか
Cookie は、Web サイトから送信され、Web ブラウザーによってコンピューターに保存されるテキスト文字列です。 認証とパーソナル化に使用されます。 たとえば、Cookie はステートフルな情報の呼び出し、ユーザー設定の保持、閲覧アクティビティの記録、関連する広告の表示に使用されます。 Cookie は常に特定のドメインにリンクされ、さまざまな関係者によってインストールされます。
これまで、contoso.com
などの他のドメインにcross-origin
要求を行うexample.com
などのサイトは、ブラウザーが要求の一部として cookie example.com
送信する原因となっています。
ほとんどの場合、ユーザーは、要求の送信元に関係なく、サイト間で何らかの状態 (ログイン状態など) を再利用できることでメリットがあります。 ただし、この動作は CSRF 攻撃で悪用される可能性があります。
SameSite
コンポーネントは、Set-Cookie
ヘッダーでの実装と管理を通じて公開を減らしました。
SameSite Cookie 標準のしくみ
SameSite
は、最上位ドメイン (TLD) と 1 つ以上のドメイン名として定義されます。
例:
配色 | Domain Name | TLD |
---|---|---|
https:// | contoso | .com |
URL スキームも考慮されます。
https://contoso.com
から送信され、(リンクをクリックするなどして) http://contoso.com
に送信される要求は、クロスサイト要求と見なされます。
SameSite cookies
標準では、サイトまたは Web アプリケーションは、Set-Cookie
ヘッダーを使用するか、document.cookie
JavaScript プロパティを使用して Cookie が送信されるケースを制限することで、Cookie のSameSite
属性を設定できます。
SameSite cookies
仕様は、オプションの属性として Google Chrome バージョン 51 で導入されました。 これは、Microsoft Edge と Internet Explorer 用 の Windows 10 ビルド 17672 で導入されました。
サポートされる値は 3 つあります。
Strict
- ブラウザーはクロスサイト要求でこの Cookie を送信しません
Lax
- ブラウザーは、特定の条件下でクロスサイト要求でこの Cookie を送信します (すべての条件が適用される必要があります)。
- "安全な" HTTP
GET
メソッドが使用されます - 要求は、ユーザーによって実行された最上位のナビゲーションから取得されます (たとえば、リンクがクリックされました)。
- "安全な" HTTP
- ブラウザーは、特定の条件下でクロスサイト要求でこの Cookie を送信します (すべての条件が適用される必要があります)。
None
- この設定によって
SameSite
制限が無効にされるため、ブラウザーはクロスサイト要求で Cookie を送信します
- この設定によって
SameSite cookies
標準はすべての主要な Web ブラウザーでサポートされており、cookie を発行する Web サイトまたはアプリケーションによってSameSite
属性が明示的に設定されていない場合、Web ブラウザーによって自動的に推定され、既定ではCSRF
攻撃に対するセキュリティを向上させるためにSameSite=Lax
として扱われます。
Download Domains
機能を見ると、owa.contoso.com
から開始されたattachments.owa.contoso.com
の呼び出しはクロスサイト要求と見なされ、cookie は、Lax
値について説明されている条件が満たされている場合にのみ送信されます。
組織内のドメインのダウンロードを有効にする
組織の [ドメインのダウンロード] 機能を有効にするには、いくつかの手順を実行する必要があります。 次の手順に従って機能を構成します。
CNAME (エイリアス) 型の新しい DNS レコードを作成します。 レコードは、Outlook on the Web (OWA) へのアクセスに使用するドメインを指している必要があります。
例:
名前 型 値 attachments.owa.contoso.com CNAME owa.contoso.com 注:
内部および外部の OWA アクセスに異なる名前空間を使用している場合は、手順 3 で説明されているように、2 つの CNAME レコードを作成し、それに応じて
InternalDownloadHostName
とExternalDownloadHostName
パラメーターを使用して設定する必要があります。重要
ダウンロード ドメイン機能によって 提供される保護が排除されるため、ダウンロード ドメインを使用して Outlook on the Web にアクセスすることはできません。
Exchange Server によって使用され、フロントエンドにバインドされている証明書に新しいサブドメインを必ず追加してください。 Exchange Server での証明書要求の詳細については、「Exchange Server の 証明書の手順 」の記事を参照してください。
管理者特権の Exchange 管理シェル (EMS) から次のコマンドを実行して、新しいサブドメインを Outlook on the Web 構成に追加します。
Set-OwaVirtualDirectory -Identity "Contoso\OWA (Default Web Site)" -InternalDownloadHostName "attachments.owa.contoso.com" -ExternalDownloadHostName "attachments.owa.contoso.com"
注:
Exchange 構成で内部ネットワークと外部ネットワークから OWA にアクセスするために異なる名前空間が使用されている場合は、必ず正しいホスト名を設定してください。 間違った名前空間を使用すると、ユーザー エクスペリエンスが低下する可能性があります (たとえば、インライン イメージは表示されません)。
すべての OWA 仮想ディレクトリが準備され、新しい証明書がすべての Exchange サーバーに展開されたら、管理者特権の Exchange 管理シェル (EMS) から次のコマンドを実行することで、この機能を有効にすることができます。
Set-OrganizationConfig -EnableDownloadDomains $true
機能をアクティブ化するには、各 Exchange サーバーで
World Wide Web Publishing service
とWindows Process Activation Service
を再起動する必要があります。 管理者特権の PowerShell ウィンドウから次のコマンドを実行するか、サーバーを再起動します。Restart-Service -Name W3SVC, WAS -Force
ダウンロード ドメインが有効になっていることを確認する
次の手順に従って、[ドメインのダウンロード] 機能が有効になっており、期待どおりに動作することを確認できます。
- インライン イメージを含むメールをメールボックスに送信します。 メールが内部メールボックスまたは外部メールボックスから送信されたかどうかは関係ありません。
- OWA にログインし、メールボックスに送信されたテストメールを検索します。
- 画像が読み込まれ、閲覧ウィンドウに表示されていることを確認します。
- インライン イメージを右クリックし、
Copy Image link
- リンクを
Notepad.exe
に貼り付け、URL を確認します。 構成されているダウンロード ドメイン (たとえば、attachments.owa.contoso.com) である必要があります。 この結果は、ダウンロード ドメイン機能がアクティブであり、期待どおりに動作することを確認します。
組織内のダウンロード ドメインを無効にする
ドメインのダウンロード機能は組織全体の構成を介して構成され、その結果、すべての Exchange サーバーでのみ有効または無効にすることができます。 この機能を無効にする場合は、管理者特権の Exchange 管理シェル (EMS) から次のコマンドを実行するだけで十分です。
Set-OrganizationConfig -EnableDownloadDomains $false
この記事の「 ダウンロード ドメインが有効になっていることを確認 する」セクションに記載されている手順に従って、機能が無効になっていることを確認します。