みなさん、こんにちは。
SB C&Sで仮想化製品のプリセールスエンジニアを担当している、稲葉です。
今回はソリトンシステムズ社の「Soliton OneGate」(以下OneGate)を利用し、FortiGateへのSSL-VPN接続をよりセキュアに認証する方法をご紹介します。
OneGateとは?
OneGateはソリトンシステムズ社が提供する国産のID as a Service(IDaaS)です。昨今、仕事をする上でITシステムの存在は欠かせない存在となっています。そしてITシステムの数も社内の業務システムからクラウドサービスと非常に多岐に渡り、各々のシステムで個人を特定するための認証が必要になります。従来の認証方式として、最もよく使用される認証はPAP認証(IDとパスワード)となりますが、認証するシステムが多岐に渡ることで利用者はパスワードを忘れないよう、簡単なパスワードを設定するケースが散見されます。しかし総当たり攻撃によりPAP認証が突破されてしまったり、複雑なパスワードを設定した場合でも、情報漏洩によりパスワードが漏洩し、PAP認証を突破されてしまうケースがあります。
これらのセキュリティ問題を解決することができるソリューションの一つが「OneGate」になります。
「OneGate」はデジタル証明書や多要素認証、Single Sign On(以降SSO)を実現するためのSAML認証に対応している他、SAMLに対応していないオンプレミスのアプリケーションに対しても、Password Managerを使用する事によるOneGateからの代行入力という機能があります。これらの機能を活用することで、先にお伝えしたパスワード問題の解消やパスワード漏洩した場合の不正侵入を防止することに役立ちます。また「Netattest EPS-Edge」と「OneGate」を連携することによりオフィスWi-FiやVPN認証の統合管理も可能となります。
<OneGate導入によるメリット>
- デジタル証明書認証による不正端末からの侵入防止
- 多要素認証による認証強化
- SAML/非SAMLに関わらずSSOを実現
- オフィスWi-Fi/VPN認証の統合管理
よりOneGate に関して詳しく知りたい方は、メーカーHPをご覧ください。
OneGate + FortiGateの連携による相乗効果
FortiGateへのSSL-VPN接続を行う場合、FortiClientを接続元のPCや端末にインストールし、接続する必要があります。SSL-VPN接続時には、IDとパスワードが必要になりますが、この点をOneGateと連携することで以下のメリットが生まれます。それではOneGateとFortiGateの連携手順を紹介していきます。
- 許可されたPC(端末)からのみVPN接続を許可する
- パスワード+αといった多要素認証が可能
- IDとパスワードをOneGate側で集中管理可能
- Soliton Authenticatorによりパスワードレスの認証の実現
<FortiGateとOneGate連携におけるイメージ図>
SAML連携方法
FortiGateとOneGateを連携させるためには、FortiGate、OneGate双方に設定が必要になります。また今回はActive Directory(以降AD)と連携手順も紹介していきます。
1. FortiGate設定
FortiGateへの設定を行うため、まずはOneGateにログインし設定に必要な情報を取得し、その後FortiGateへ設定を行います。
1)OneGateにログイン後、[クラウド設定]ー[共通設定]を選択します。
2)「メタデータ」に表示された「Entity ID」「SSO認証URL」「ログアウトURL」の値を控え、「証明書」をダウンロードします。証明書は「current.pem」というファイル名でダウンロードされます。
3)FortiGateの管理画面にログインし、[システム]ー[証明書]ー[作成/インポート]ー[リモート]を選択します。
4)先ほどOneGateより取得した「IdP証明書」をアップロードします。アップロード後[OK]をクリックすると「リモート」欄に項目が追加されます。
5)FortiGate上にOneGateとSAML認証するためのユーザーを作成します。
FortiGate管理画面よりコンソールを開き、以下のコマンドを実行します。
※ユーザー名は任意となります。今回は「OneGateUser」という名称で作成します。
【コマンド内容】
config user saml edit "ユーザー名" set entity-id "https://<FortiGate FQDN>/remote/saml/metadata" set single-sign-on-url "https://<FortiGate FQDN>/remote/saml/login" set single-logout-url "https://<FortiGate FQDN>/remote/saml/logout" set idp-entity-id "OneGate Entity ID" set idp-sigle-sign-on-url "OneGate SSO認証URL" set single-logout-url "OneGate ログアウトURL" set idp-cert "リモート証明書名" set user-name "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" next end |
FortiGateの[ユーザ&認証]ー[シングルサインオン]の一覧にシングルサインオンユーザーが一覧に追加されます。
7)Single Sign On認証用にユーザーグループを作成します。一意の名称を入力し、リモートグループ先ほど登録した「OneGateUser」を追加します。
※グループ名は任意となります。今回は「OneGateGroup」という名称で作成します。
8)[SSL-VPNレルム]を選択し、SSL-VPN用のレルムを作成します。
※レルム名は任意となります。今回は「onegate」という名称で作成します。
9)[SSL-VPN設定]を選択し、「認証/ポータルマッピング」より[新規作成]を選択します。
10)[ファイアウォールポリシー]ー[新規作成]から、SAML用のファイアウォールポリシーを設定します。送信元に作成した「OneGateGroup」を追加し、その他の項目に関しては必要に応じて変更します。
2. OneGate設定
続いてOneGate側の設定を行います。
1)OneGateにログイン後、[クラウド設定]ー[サービス連携設定]を選択します。
2)「クラウドサービス登録」設定画面が表示されます。「クラウドサービス名」、「EntityID」、「応答URL」、「NameID Format」を設定し、保存します。
- クラウドサービス名:<一意の任意の名前>
- Entity ID:https://<FortiGate FQDN>/remote/saml/metadata
- 応答URL:https://<FortiGate FQDN>/remote/saml/login
- NemeID Format:「urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress」を選択
3)作成されたサービス名が表示されますので、サービス名をクリックし、「SSO」、「ユーザー名」を設定し保存します。
- SSO:SSO先として利用する
- ユーザー名:SSO User 1
4)AD連携をせずに、アカウント管理をOneGate側に登録し、認証を行う場合は以下の手順の通りです。AD連携手順を確認されたい場合は「3. AD→OneGate連携」まで進んでください。
[利用者管理]ー[登録]からアカウントを作成します。
利用者登録では、以下のパラメータを入力します。
- ログイン名:(一意のIDを入力)
- 姓:(任意)
- 名:(任意)
- メールアドレス:(任意:証明書をメールベースで配布する場合は入力)
- アプリケーションロール:(サービス連携設定時に登録したサービス名を入力)
- SSO User 1:(メールアドレスを入力)
- パスワード:(OneGateの[システム設定]ー[パスワードポリシー設定]に依存)
※初期設定は8文字以上64文字以下かつ大文字、小文字、数字、記号のうち3種類を含む。
アカウント作成直後は状態が「同期:使用前」となります。この時点ではOneGate側に未反映の状態となるため、OneGate側への同期処理が必要になります。
5)[同期スケジュール設定]より「差分同期スケジュール」の[即時実行]をクリックし、管理画面のアカウント情報をOneGateへ反映させます。
同期終了後、先ほどの利用者一覧画面は、「適用前」→「同期済み」というステータスに変わります。
AD連携を行わないアカウント作成の流れは以上となります。
3. AD→OneGate連携
ADに登録されているアカウント情報をOneGate側へ連携させる場合の手順をご紹介します。
1)ADとOneGateを連携するためには、まず連携するADに「Soliton ADConnector」をインストールします。「Soliton ADConnector」は「Soliton Cloud Service Portal」から取得することができます。
「Soliton ADConnector」の動作要件に関してはこちらをご覧ください。
2)インストールはウイザードに従い、ライセンスへの同意とインストール先を指定します。
3)OneGateより[AD設定]ー[AD連携設定]ー[連携クライアント用証明書の作成]から証明書を取得します。
パスフレーズを入力し、[発行]をクリックすると、「ADConnector.p12」ファイルがダウンロードされます。
4)AD上に証明書を配置します。その後「証明書のインポートウィザード」よりローカルコンピュータを選択し、「ADConnector.p12」をインポートします。
5)OneGateのCA証明書をDER形式で取得します。OneGateより[証明書管理]ー[CA情報]を選択し、最下部にある[DER形式]をクリックし、証明書ファイルを取得します。
先ほどの「連携クライアント証明書」と同様、ADへインポートを行います。
6)「Soliton ADConnector」のインストール先から、「OnpremisesConnectorSetting.exe」を実行します。
7)「Active Directoryコネクター設定」が起動します。こちらに「テナントコード」、「クライアント証明書」、「Active Directory接続設定」(必要に応じてプロキシ)を設定し、保存します。
8)設定完了後、サービス起動を促すポップアップが表示されます。サービスには「Soliton Onpremises ADConnector Service」が「実行中」かつ「自動」であることを確認します。
9)OneGateとADの接続が確立すると、「ドメイン名」と「オンライン」が表示されます。
表示確認後、「属性設定」を選択します。
10)「AD連携属性設定」にて「SSO User 1」の設定を「$!{mail}」に変更します。この設定によりFortiGateへの認証に必要なメールアドレスをADから自動的に取得することができます。
(この時「変更を有効にする」は必ず無効(チェックオフ)にしてください。ADのmail属性が反映されなくなります。)
11)OneGateへ指定のユーザーのみデータを同期させるためセキュリティグループを作成します。
「Active Directory ユーザーとコンピューター」にて「AuthenticationG」という名称のセキュリティグループを作成し、OneGateへ同期させるユーザーをグループメンバーに追加します。
12)次にアプリケーションロールを自動割り当てする設定を行います。
[OneGate]ー[AD設定]ー[AD連携設定]から登録したドメイン名をクリックし、表示された「AD連携設定変更」にて「追加クラウドサービス」の[+]をクリックします。
13)「2 - 1)」にて設定した「FortiGate」にチェックを付与し、[OK]をクリックします。
14)「追加クラウドサービス」に「FortiGate」が追加されます。続いて右の空欄にセキュリティグループ名を入力します。その後、入力した名称と同様のセキュリティグループをAD上に追加します。
15)セキュリティグループを追加後、OneGateへ同期させるユーザーをグループメンバーに追加します。
16)[同期スケジュール設定]より「差分同期スケジュール」の[即時実行]をクリックし、管理画面のアカウント情報をOneGate側へ反映させます。
13)OneGateの[利用者管理]より先ほど「AuthenticationG」に追加したメンバーが追加されます。AD連携によるアカウント追加では、連携元のドメインが表示されます。
14)アカウント名をクリックすることで、アカウント情報を確認できます。アプリケーションロールには、セキュリティグループの「FortiGateG」に参加させることで自動的に「FortiGate」が登録されます。
OneGate側の設定は以上となります。
4. FortiClientからのSSL-VPN接続
FortiClientよりOneGateに登録したアカウント名でVPN接続を行います。
1)FortiClientを起動し、「新規VPN接続」にて「接続名」、「リモートGW」、「Enable SSO for VPN Tunnel」を設定し保存します。
2)SSOを有効にした接続先を選択した場合、「SAML Login」の表示に切り替わります。
3)「SAML Login」クリック後、OneGateの認証画面にリダイレクトされるため、OneGateに登録された利用者アカウントのユーザー名とパスワードを入力します。ここで「他の認証方式でログイン」を選択すると、スマートフォンアプリの「Soliton Authenticator」や「FIDO2」での認証をすることができます。
スマートフォンアプリの「Soliton Authenticator」を使用した場合、以下の流れで認証を行うことができます。iPhoneの顔認証と組み合わせると、1タップで認証させることができストレスなく認証が行えるようになります。
4) 認証を通過するとSSL-VPNの接続が開始されます。
おわりに
今回はOneGateを使用したFortiGateへのSSL-VPN認証手順を紹介いたしましたが、いかがでしたでしょうか。
「SAML」や「SSO」という言葉を聞くと導入に敷居が高いと感じられる方もいらっしゃると思いますが、設定自体はとても簡単な上、ユーザーIDとパスワードの認証がOneGate一つでとても簡単に行えることを、ご理解いただけたのではないでしょうか。
また今回のブログでは割愛させていただきましたが、OneGateのシステムポリシー設定により、証明書認証(OneGateから配布された証明書を所持する端末のみ認証を許可する)や「Soliton Authenticator」を使用した2要素認証を追加することができ、従来のIDとパスワードのみの認証に比べ、セキュリティを高めることができます。
さらにOneGateにはPassword Managerと連携する機能もあります。この機能によりSAML対応していないアプリケーションへのログイン認証を、自動入力することができます。そのため、SAML対応/非対応に関わらず、SSOできるのはOneGateの大きな魅力の一つになります。
ブログを最後まで読んでいただきありがとうございました。
より詳細な概要や手順を確認されたい方は以下をぜひご覧ください。
<OneGateとFortiClient連携設定>
https://faq1.soliton.co.jp/faq/show/17862?category_id=1998&site_domain=sog
<Password ManagerとOneGateの連携設定>
https://www.soliton.co.jp/lp/onegate/img/PasswordManage_Guide-SSO_Rev4.pdf
他のおすすめ記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 1課
稲葉 直之
静岡出身で大阪に就職職してはや十数年。お茶と日本酒をこよなく愛し、現在は仮想化及びその周辺のプリセールスエンジニアとして日々修行中。