はじめに
今回は、FortiGate の 「Explicit Proxy(明示的プロキシ)認証」 について解説します。
セキュリティ要件で、「インターネットへアクセスする前に、必ずユーザー ID とパスワードを入力させたい」というケースはありませんか? FortiGate の Explicit Proxy 認証を使えば、AD(Active Directory)サーバーがない環境でも、FortiGate 単体でこれを実現できます。
完成形のイメージ
設定を行うと、ユーザーがブラウザで Web サイトを見ようとした瞬間に、以下のような 認証ポップアップ が表示されるようになります。

ここで正しい 「ユーザー名」 と 「パスワード」 を入力した人だけが、インターネットに接続できるようになります。
- Explicit Proxy の基本的な仕組みと設定方法
- ローカルユーザー を作成して認証させる手順
- 認証が必要な通信と不要な通信の制御(プロキシポリシー)
今回は、最もシンプルな 「ローカルユーザー(FortiGate 内に作成したユーザー)」 を使った認証手順を紹介します。
Explicit Proxy(明示的プロキシ)とは?
Explicit Proxy(明示的プロキシ)とは、その名の通り、クライアント(PC やブラウザ)に対して 「インターネットに出る時は、このサーバー(FortiGate)を経由しなさい」 と明示的に設定する方式です。
仕組みの解説
通常のルーター(デフォルトゲートウェイ)経由の通信とは異なり、PC は Web サイトのデータを取りに行く際、まず FortiGate のプロキシポート(例: 8080)に対してリクエストを投げます。
FortiGate はそのリクエストを受け取った段階で、「あなたは誰ですか?(認証)」 を行い、許可された場合のみインターネットへ代理でアクセスします。
AD 連携(FSSO)との違いと使い分け
「ユーザーを特定してログを取りたい」という目的は同じですが、AD 連携(FSSO) と Explicit Proxy 認証 は、得意なシーンが異なります。
前回の記事で紹介した 「AD 連携(FSSO)」 は、PC へのログイン情報を裏で連携するため、ユーザーは何も意識せず(ポップアップなしで)Web 閲覧ができるのがメリットでした。しかし、「AD に参加していない PC」 では使えないという弱点があります。
そこで登場するのが、今回の Explicit Proxy 認証 です。
| AD連携(FSSO) | Explicit Proxy 認証 | |
|---|---|---|
| 認証の体験 | 透過的(入力不要・気づかない) | 明示的(ポップアップで入力) |
| 対象デバイス | 社給 PC (AD 参加済み) | 全てのデバイス |
| 事前設定 | FortiGate 側の設定のみ | ブラウザごとの設定が必要(PAC ファイル等で配布可) |
具体的な利用シーン
Explicit Proxy 認証は、以下のような状況で便利です。
- AD に参加していない端末の管理
-
MacBook や Linux、あるいは社内ネットワークに接続された「持ち込みPC(BYOD)」など、Active Directory で管理できない端末でも、個別に ID/PASS を発行して制御できます。
- ゲストユーザーへの一時利用
-
来客用 Wi-Fi などで、「今日だけ使える ID」を発行し、インターネット利用ログをしっかり取りたい場合に最適です。
- より厳格なセキュリティ
-
「特定の機密 Web サイトにアクセスする時だけは、必ずパスワード入力を求めたい」といった、意図的なワンクッションを入れる用途にも使われます。

要するに、「社内 PC なら AD 連携」 「それ以外(ゲストや Mac)なら Explicit Proxy」 と使い分けるのが、よくあるパターンです。
Explicit Proxy 認証の設定手順
FortiGate は多機能なため、デフォルトでは Explicit Proxy 関連のメニューが非表示になっています。まずは機能を表示させ、プロキシサーバーとして稼働させる設定を行います。
表示機能の有効化
GUI または CLI で、Explicit Proxy 機能を有効にします。
- 「システム」>「表示機能設定」 へ移動します。
- 「Explicit プロキシ」 のスイッチを ON にし、「適用」をクリックします。
コンソールから以下のコマンドを実行します。
config system settings
set gui-explicit-proxy enable
endインターフェースとポート設定
次に、「どのポートでプロキシ接続を受け付けるか」を設定します。
- 「ネットワーク」>「Explicit プロキシ」 へ移動します。
- 「Explicit Web プロキシ」 を有効にします。
- 「リッスンインタフェース」 に、LAN 側のインターフェース(例: port2, internal)を選択します。
- 「HTTP ポート」 に任意のポート番号(通常は 8080)を入力し、「適用」をクリックします。





一般的にプロキシサーバーは 8080 番ポートを使用します。 クライアント(ブラウザ)側の設定と一致していれば何番でも構いませんが、特段の理由がなければ 8080 のままで OK です。
FortiGate では、単にユーザーを作るだけでは認証されません。「誰を(ユーザー)」「どの方式で(スキーム)」「いつ認証するか(ルール)」 という3つの要素を紐付ける必要があります。
認証に使用するユーザーアカウントを作成します。
- 「ユーザー&認証」>「ユーザー定義」 へ移動し、「新規作成」をクリック。
- タイプは「ローカルユーザー」を選択。
- ユーザー名(例:
user01)とパスワードを設定し、作成完了です。


「どうやって認証するか」という定義ファイル(スキーム)を作成します。
- 「ポリシー&オブジェクト」>「認証ルール」 へ移動します。
- 画面上部のボタン、またはプルダウンから 「認証方式(Authentication Schemes)」 を選び、「新規作成」をクリック
- 名前: 任意の名前(例:
Auth-Scheme-Local) - 方式: 「Basic」 を選択(※ポップアップ認証のため)
- 「OK」をクリックして保存します。
最後に、「どの通信に認証をかけるか」というルールを作成します。
- 同じく 「ポリシー&オブジェクト」>「認証ルール」 画面で、「新規作成」をクリック
- 名前: 任意の名前(例:
Auth-Rule-Internal) - 送信元アドレス: LAN 側のネットワーク(例:
allまたは192.168.1.0/24) - アクティブ認証方式: STEP 2 で作成したスキーム(
Auth-Scheme-Local)を選択 - 「OK」をクリックして保存します。





少し複雑ですが 「ユーザーを作って、方式(Basic)を決めて、ルールで適用する」 の3段ステップを覚えておけば迷わないと思います。
認証の設定ができたら、最後に「通信許可ポリシー」を作成します。
ここで注意が必要なのは、通常の「ファイアウォールポリシー」ではなく、「プロキシポリシー」 を使用する点です。
プロキシポリシーの作成手順
- 「ポリシー&オブジェクト」>「プロキシポリシー」 へ移動します。
- 「新規作成」をクリックします。
- 以下のように設定します。
| 項目 | 設定内容 |
|---|---|
| プロキシタイプ | Explicit Web プロキシ |
| 送信元インターフェース | LAN 側インターフェース |
| 送信元アドレス | all (またはネットワーク帯) |
| 送信元ユーザー | user01 (STEP1 で作ったユーザー) |
| 宛先アドレス | all |
| サービス | webproxy |
| アクション | ACCEPT |





Explicit Proxy の通信は、通常の「ファイアウォールポリシー(IPv4ポリシー)」ではなく、「プロキシポリシー」 で制御されます。 間違って通常のポリシー側にユーザー設定を入れても、プロキシ経由の通信は制御できないので注意してください。
動作確認
設定が完了したら、実際にクライアント PC から接続して動作を確認してみます。
ブラウザのプロキシ設定
今回はテストとして、Windows の設定(またはブラウザの設定)でプロキシサーバーを指定します。
- Windows の 「設定」>「ネットワークとインターネット」>「プロキシ」 を開きます。
- 「手動プロキシ セットアップ」の 「プロキシ サーバーを使う」 をオンにします。
- アドレス: FortiGate の LAN 側 IP(設定したインターフェースの IP)
- ポート:
8080(設定したポート番号) - 「保存」をクリックします。


認証ポップアップの確認
ブラウザ(ChromeやEdge)を開き、適当なWebサイト(例: https://google.com)にアクセスします。すると、Webサイトが表示される前に、こちらのような サインイン画面(ポップアップ) が表示されるはずです。
STEP 1 で作成したローカルユーザー(例: user01)とパスワードを入力して「サインイン」をクリックします。
- 認証成功: Google の画面が表示されます。
- 認証失敗: 再度ポップアップが出るか、エラー画面になります。
ログの確認
Web サイトが無事に表示されたら、FortiGate 側でログを確認してみます。
- FortiGate 管理画面の 「ログ&レポート」>「転送トラフィック」 へ移動します。
- 先ほどの通信ログを探します。
- ログの詳細(または一覧の列)を確認すると……


「ユーザー (User)」欄に user01 と表示されていれば成功です。 これで、「誰が」アクセスしたのかが特定できるようになりました。
まとめ
本記事では、FortiGate の Explicit Proxy 認証 を使って、Webアクセス時にユーザー認証を行う方法を解説しました。
Explicit Proxy 認証は、ブラウザに設定を入れる手間はありますが、「AD がない環境」や「持ち込み PC」に対しても、セキュリティポリシーを適用できる 手段の1つです。
以上、最後までお読みいただきありがとうございました。





