FortiGateでは、SAML連携の設定後、ログイン方法がSSOのみに限定されます。SSOを無効化する場合は、ファイアーウォールポリシー、IPsecトンネル、SSO設定の順に削除する必要があります。
この記事では、FortiClient によるIPsec-VPN接続時に OneLogin によるSAML シングルサインオン(SSO)を設定する手順をご案内します。
目次
前提条件
- OneLoginのライセンスプラン が SSO, Advanced, Professional または旧ライセンスプラン Starter, Enterprise, Unlimited のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- FortiGateの システム管理者 権限をお持ちであること
動作確認環境
下記環境にて、FortiClientからIPsec-VPN接続時にOneLoginのSAML認証が利用できることを確認いたしました。
- FortiGate:v7.4.11
- FortiClient VPN:v7.4.3 Hotfix(無償版/Windows 11 Pro 25H2)
SAML連携の設定
1. OneLogin側の操作
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
Fortinet IPsec-VPN と検索し、該当コネクタを選択します
-
Visible in portal を無効にし、[Save]をクリックします
-
SSO タブに移動し、Issuer URL, SAML 2.0 Endpoint (HTTP), SLO Endpoint (HTTP) をクリップボードへコピーします
-
SSO タブに移動し、View Details をクリックします
- [Download]をクリックします
2. FortiGate側の設定
- FortiGateに管理者でログインし、ユーザー&認証 >[シングルサインオン]をクリックします
- 任意の 名前 と アドレス を入力し、[次へ]をクリックします
例)名前:OneLogin-SAML, アドレス:192.0.2.1:9443
*アドレスはインターネットアクセス可能な グローバルIPアドレス または FQDN と、ポート番号 を指定します。
-
以下の通りに設定し、[サブミット]をクリックします
項目 入力値 タイプ class="wysiwyg-text-align-center" エンティティID 1. OneLogin側の設定(前半)手順11でコピーした Issuer URL
例)https://app.onelogin.com/saml/metadata/e77b246a-3220-4b31-8b44-663e52d602e7アサーションコンシューマサービスURL 1. OneLogin側の設定(前半)手順11でコピーした SAML 2.0 Endpoint (HTTP)
例)https://jp.onelogin.com/trust/saml2/http-post/sso/e77b246a-3220-4b31-8b44-663e52d602e7シングルログアウトサービスURL 1. OneLogin側の設定(前半)手順11でコピーした SLO Endpoint (HTTP)
例)https://jp.onelogin.com/trust/saml2/http-redirect/slo/4410011証明書 1. OneLogin側の設定(前半)手順9でダウンロードした
X.509証明書をアップロードします
*新規でインポートすると、REMOTE_Cert_数字 の名前で登録されますユーザーを識別するために使用される属性 username グループを識別するために使用する属性 group
-
CLIコンソール を開きます
- 任意で証明書の名前を変更します
例)REMOTE_Cert_2 から OneLogin_SAML へ名前変更# config vpn certificate remote# rename "アップロードした証明書の名前" to "変更後の名前"# end
- 以下のコマンドから、SAMLを受信するインターフェイスと2. FortiGate側の設定 手順2で設定したSAMLサーバーの設定を行います
# config system interface# edit "SAMLを受信するインターフェイス"# set ike-saml-server "SAMLサーバーの名前(例:OneLogin-SAML)"# end
- 以下のコマンドから、2. FortiGate側の設定 手順2で設定したポート番号の設定を行います
# config system global# set auth-ike-saml-port "SAML認証用ポート(例:9443)"# end
- ユーザー&認証 >[ユーザーグループ]をクリックし、[新規作成]をクリックします
- 任意の名前を入力します
例)OneLogin SAML Group
- [追加]をクリックします
- リモートサーバは2. FortiGate側の設定 手順2で設定したSAMLサーバーを選択し、グループは いずれか に設定します。最後に[OK]をクリックします
- [OK]をクリックします
3. OneLogin側の設定
-
Configuration タブに移動し、Address に2. FortiGate側の設定 手順2で設定したアドレスを入力します
-
Parameters タブに移動し、group, username の Value を任意で変更します
*usernameはデフォルトでOneLoginユーザーのEmailが設定されています。別途FortiGate側でグループ設定を行う場合に、OneLoginのgroup情報を送信することが可能です。実際にご利用される場合は、任意のValueを設定してください。
-
SSO タブに移動し、SAML Signature Algorithm を SHA-256 に変更します
-
Access タブに移動し、アプリケーションを割り当てるロールを選択後、[Save]をクリックします
SAML連携の設定は以上です。
IPsec-VPNの設定
1. FortiGate側の設定
- FortiGateに管理者でログインし、ユーザー&認証 >[IPsecウィザード]をクリックします
-
以下の通りに設定し、[次へ]をクリックします
項目 入力値 名前 任意の名前
例)IPsecVPN_SAMLテンプレートタイプ リモートアクセス リモートデバイスタイプ クライアントベース および FortiClient
-
以下の通りに設定し、[次へ]をクリックします
項目 入力値 着信インターフェース FortiGateのWAN側ポート
例)InterLink (wan)認証方式 事前共有鍵 事前共有鍵 FortiGateとクライアント間で共有する鍵 ユーザーグループ 3. OneLogin側の設定(後半)手順11で設定したSAML認証用グループ
例)OneLogin SAML Group
-
以下の通りに設定し、[次へ]をクリックします
項目 入力値 ローカルインターフェース FortiGateのLAN側ポート ローカルアドレス FortiGateのLAN側IPアドレス クライアントアドレス範囲 クライアントに払い出されるIPアドレス範囲
例)10.250.134.200-10.250.134.207サブネットマスク 割り当てサブネットマスク
例)255.255.255.248DNSサーバー システムDNSを使う IPv4スプリットトンネリングを有効化 有効 エンドポイント登録を許可 無効
-
以下の通りに設定し、[次へ]をクリックします
*ローカルユーザーでの認証を行う際に入力したパスワードを保存するか、FortiClient側で設定できるオプションとして許可できます。無償版FortiClient VPNでは、オートコネクト と 常にアップ は利用できません。項目 入力値 パスワード保存 有効 オートコネクト 無効 常にアップ(Keep Alive) 無効
- [作成]をクリックします
- [トンネルリストを表示]をクリックします
- 作成したIPトンネルを開きます
例)IPsecVPN_SAML(1. FortiGate側の設定 手順2で作成したIPsecトンネル)
- [トンネルへコンバート]をクリックします
- 認証 >[編集]をクリックします
- IKEバージョンを 2 に設定し、フェーズ1 プロポーザル >[編集]をクリックします
- 暗号化とDiffie-Hellmanグループの内容を任意で設定し、フェーズ2 セレクタの編集へ進みます
例)
・暗号化 AES128:認証 SHA1
・暗号化 AES256:認証 SHA256
・Diffie-Hellmanグループ:20
-
+ 高度な設定... をクリックします
-
以下の通りに設定し、[OK]をクリックします
項目 入力値 暗号化 任意で設定
例)暗号化 AES128:認証 SHA1, 暗号化 AES256:認証 SHA256Replay Detectionを有効化 ☑︎ チェックを入れる Perfect Forward Secrecy (PFS)を有効化 ☑︎ チェックを入れる Diffie-Hellmanグループ ☑︎ 20(チェックを入れる) ローカルポート ☑︎ チェックを入れる リモートポート ☑︎ チェックを入れる プロトコル ☑︎ チェックを入れる
- IKEバージョン2ではユーザー認証にEAPを使用するため、CLIコンソールから1. FortiGate側の設定 手順2で作成したIPsecトンネルの設定を編集します
# config vpn ipsec phase1-interface# edit "作成したIPsecトンネルの名前(例:IPsecVPN_SAML)"# set eap enable# set eap-identity send-request# end
- ポリシー&オブジェクト >[ファイアウォールポリシー]に移動します
-
1. FortiGate側の設定 手順6で自動生成された リモートからローカルへのポリシー をクリックします
例)vpn_IPsecVPN_SAML_remote0 (46)
- 送信元の[+]をクリックします
-
3. OneLogin側の設定(後半)手順11で設定したSAML認証用グループを選択します
例)OneLogin SAML Group
- [OK]をクリックします
2. FortiClient側の設定
- FortiClientを起動し、≡ > 新規接続の追加 を選択します
-
以下の通りに設定します
項目 入力値 VPN IPsec VPN 接続名 任意の名前
例)IPsecVPN_SAMLリモートGW 2. FortiGate側の設定 手順2で設定したグローバルIPアドレス
例)192.0.2.1認証方法 事前共有鍵
*1. FortiGate側の設定 手順3で設定した値を入力しますフェイルオーバーSSL VPN [なし] Single Sign On Settings ☑︎ VPNトンネルのシングルサインオン(SSO)を有効化
(チェックを入れる)ポートの編集 2. FortiGate側の設定 手順2で設定したポート番号
例)9443
-
以下の通りに設定します
項目 入力値 IKE バージョン2 Address Assignment モードコンフィグ Encapsulation IKE UDP Port
500フェーズ1
IKEプロポーザル1. FortiGate側の設定 手順12 で設定した暗号化/認証の組み合わせ
例)暗号化 AES128:認証 SHA1, 暗号化 AES256:認証 SHA256フェーズ1
DHグループ1. FortiGate側の設定 手順12 で設定したDiffie-Hellmanグループ
例)20DPD(デッドピア検出) ☑︎ チェックを入れる NATトラバーサル ☑︎ チェックを入れる ローカルLANの有効化 ◻︎ チェックを入れない
-
以下の通りに設定し、[保存]をクリックします
項目 入力値 フェーズ2
IKEプロポーザル1. FortiGate側の設定 手順14 で設定した暗号化/認証の組み合わせ
例)暗号化 AES128:認証 SHA1, 暗号化 AES256:認証 SHA256リプレイ検出を有効にする ☑︎ チェックを入れる Perfect Forward Secrecy (PFS)を有効化 ☑︎ チェックを入れる フェーズ2
DHグループ1. FortiGate側の設定 手順14 で設定したDiffie-Hellmanグループ
例)20
IPsec VPN接続の設定は以上です。
SAML SSOの動作確認
- VPN名称のドロップダウンメニューから2. FortiClient側の設定 手順3で設定したものを選択し、[接続]をクリックします
例)IPsecVPN_SAML
- OneLoginのユーザー名を入力し、[続行する]をクリックします
例)tanaka_taro
- パスワードを入力し、[続行する]をクリックします
-
VPN接続済み になることを確認します
IPsec-VPN接続の無効化
SAML経由のIPsec-VPN接続を一時的に停止する際は、ファイアウォールポリシーを無効化することをおすすめいたします。これにより、既存の設定を保持したまま、外部からのVPN接続を即座に遮断できます。
- ポリシー&オブジェクト >[ファイアウォールポリシー]に移動します
-
1. FortiGate側の設定 手順6で自動生成された リモートからローカルへのポリシー をクリックします
例)vpn_IPsecVPN_SAML_remote0 (46)
-
このポリシーを有効化 のトグルをオフ(無効)に切り替えて、[OK]をクリックします
IPsec-VPN接続の無効化は以上です。
*本記事は、OneLoginとFortiGateのSAML連携手順を解説するために作成されたものです。FortiGate側の設定値は一例であり、動作を保証するものではありません。これらの設定を適用したことにより発生したいかなる損害についても、弊社は一切の責任を負いかねます。SAML連携設定に関連しないVPN 接続・設定に関するお問い合わせはご遠慮ください。