※ 2022 年 12 月 27 日現在の情報をもとに作成しています
1. はじめに
本記事では、SWG (Secure Web Gateway) の SAML 認証を有効にした際のオプション設定の 1 つ「IP サロゲート」について説明します。
※ SWG を利用するには SIG または SIG 相当のサブスクリプション契約が必要です
2. (クッキー) サロゲートについて
英語のサロゲート (surrogate) は「代理」という意味ですが、SWG の SAML 認証におけるサロゲートは、「SAML 認証を代理で行う」という意味合いで使われます。
これをさらに具体的に表すと、「一度ユーザーによる認証が済んだ後は、一定期間代理が認証を行うので、当面の間はユーザーによる再認証が必要ない」と表現できます。
この代理による認証は、PC に保存されたクッキー情報に基づいて行われる場合と、ローカル IP アドレスに基づいて行われる場合があり、それぞれ「クッキー サロゲート」「IP サロゲート」と呼ばれます。
このうち、クッキー サロゲートは SWG の SAML 認証が導入された段階から用意されているもので、以下が大まかな処理の流れになります。
- SWG の SAML 認証を有効にしている環境において、ユーザーが最初の HTTP/S リクエストを SWG に送る
- SWG は HTTP/S リクエストを IdP (Identity Providers) にリダイレクトする
- ユーザーは IdP の指示に従ってユーザー認証を行う
- SWG は IdP からの認証結果を受け取り、SWGドメイン (gateway.id.swg.umbrella.com) のクッキー情報 (トークンと有効期限を含む) をユーザーに発行する
- それ以降、SWG が同じ Web ブラウザから HTTP/S リクエストを受け取った際、必要に応じて SWG ドメインにリダイレクトする
- ユーザーは SWG ドメインのクッキー情報を SWG に提示することで、ユーザー認証を省略できる
- クッキー情報は有効期限が切れると削除される
- 1 からの繰り返し
当然のことですが、クッキー サロゲートを使用するには、ユーザー側でクッキーを完全にサポートしている必要があります。
現在主流となっている Web ブラウザでは基本的に問題なく利用できますが、一部の特殊な Web クライアントを使用している場合や、セキュリティの都合でクッキーを制限する設定をしている場合などにおいては、クッキー サロゲートが正しく動作しない可能性があります。
そういったクッキーを完全にサポートしていない場合の代替案として、IP サロゲートが SWG の SAML 認証に取り入れられました。次項で詳しく説明します。
3. IP サロゲートについて
IP サロゲートは、クッキー情報を使用する代わりに、ユーザーのローカル IP アドレスに基づいてユーザー認証の代理をします。
IP サロゲートの設定箇所は、Umbrella Dashboard の導入 > 設定 > SAML設定画面で SAML 連携を行った後に表示されます。
※ 設定項目「ユーザの再認証」については、両方のサロゲート共通の設定となっており、再認証までの期間を「常にしない」「毎日 (24h)」「毎週 (24h x 7)」「毎月 (24h x 30)」から選択できます
以下に IP サロゲートの大まかな処理の流れを記載します。
- SWG の SAML 認証を有効にしている環境において、ユーザーが最初の HTTP/S リクエストを SWG に送る
- SWG は HTTP/S リクエストを IdP (Identity Providers) にリダイレクトする
- ユーザーは IdP の指示に従ってユーザー認証を行う
- SWG は IdP からの認証結果を受け取り、ユーザー名をローカル IP アドレスと関連付ける (有効期限あり)
- それ以降、SWG が HTTP/S リクエストを受け取った際、ローカル IP アドレスが既に関連付いたものであれば、そのユーザーがアクセスしたものと判断し、認証は行われない (クッキー サロゲートとは異なり、Web ブラウザ以外によるアクセスも含む)
- 関連付け情報は有効期限が切れると削除される
- 1 からの繰り返し
非常に便利そうに見える IP サロゲートですが、ローカル IP アドレスを使用することによるいくつかの制限事項があります。
まずは 1 つのローカル IP アドレスを複数のユーザーで共有してはいけないことが挙げられます。
例えば、経路の途中のファイアウォールで NAT などにより IP アドレスが変換される場合や、何らかの共用 IP アドレスの仕組みを利用している場合は、IP サロゲートの使用は推奨されません。
※ 組織内に複数のネットワークトンネルがあり、それぞれに同じローカル IP アドレスのネットワークが存在する場合、サイトを分けることで共存できる仕組みが用意されています
また、SWG がユーザーのローカル IP アドレスを知る必要があることから、SWG の導入方法として、ネットワークトンネルと Proxy Chaining (XFF 必須) のいずれかに限られます。
※ AnyConnect を使用している場合、SWG はローカル IP アドレスを把握できますが、そもそも SAML に対応していません
IP アドレスの観点以外でもう 1 つ注意すべき事項があり、IP サロゲートにおいても、SAML を動作させるために最低限のクッキー機能は必要となり、クッキーが完全に無効化された環境の受け皿とはならない点です。詳しくは、以下の公開文書を参照してください。
Enable IP Surrogates for SAML
https://docs.umbrella.com/umbrella-user-guide/docs/enable-ip-surrogate
ただし、IP サロゲートを利用することで多くのクッキーに関する互換性の問題を回避できます。詳しくは、以下のサポート記事を参照してください。
SAML IP Surrogates is now available for Umbrella SWG user identification
https://support.umbrella.com/hc/en-us/articles/5185728669460-SAML-IP-Surrogates-is-now-available-for-Umbrella-SWG-user-identification
以上のような制限事項や注意事項に該当し、組織内に IP サロゲートを導入できないネットワークが存在する場合、指定したネットワークを IP サロゲートから除外し、そのネットワークだけクッキー サロゲートを使用するように設定することも可能です。
設定方法は簡単で、SAML設定画面内の「内部ネットワーク バイパス」をクリックし、導入 > 設定 > 内部ネットワーク画面であらかじめ作成した内部ネットワークのエントリーから除外したいものを選択します。
※ 画像内の「Networks」が Proxy Chaining 用の内部ネットワークで、「Network Tunnels」がネットワークトンネル用の内部ネットワークになります