ども。こんばんは。
今回は、FortiGateのSSL-VPN接続(Webモード)をAzure ADを使ったSSO(シングル・サインオン)で実装します。
基本このあたりのチュートリアル通りです。
チュートリアル:Azure Active Directory シングル サインオン (SSO) と FortiGate SSL VPN の統合
Configuring SAML SSO login for SSL VPN web mode with Azure AD acting as SAML IdP
先にハマった?ポイントを・・・。
FortiGate SSL-VPNのSSOはSP-Initiatedのため、FortiGate側からフローを開始することで認証が行われます。(前回行ったAWSはIdp-Initiatedなため、Idp(Azure AD)からフローを開始します。)
完成形がこちらの画面ですが、「Single Sign-On」のボタンを表示させるためには、SAMLの設定をするだけではだめで、実際に「SSL-VPN」インターフェースから、LAN側等へのポリシーを設定し、そのポリシーの送信元にSAMLユーザを含むグループを指定する必要があります。。。
これを知らなくて、Single Sign-Onボタンを表示させるのにめちゃくちゃ時間かかりましたが、ここさえ把握しておけば設定はかんたんです。
■Azure ADの準備
まずは、エンタープライズアプリケーションにFortiGate SSL VPNを追加します。
※FortinetのドキュメントだとNon Galleryになっていますが、今は存在するようです。
アプリケーションにユーザを割り当てます。
シングルサインオンの設定からSAMLを選択します。
例にのっとって、識別子(エンティティID)、応答URL、サイオンURL、ログアウトURLを設定します。
次に、「ユーザー属性とクレーム 」を設定します。
※ここで指定した属性をFortiGateが受け取ってユーザ名などを処理するイメージです。デフォルトで「name」 があるのでこれでユーザ名使えるのかなと思ったのですがうまく行かなかったので、下記のようにusernameを追加しています。この”username”はFortiGate側にも設定します。
冒頭で記載したMicrosoftのチュートリアルでは、グループについても追加していますが、グループの追加はグレーアウトして押せなくかったので、やっていません・・・。
続いて、SAML署名証明書から、証明書(Base64)をダウンロードします。
■FortiGateの設定
ここからFortiGateの設定をします。
今回FortiGateはForiGate 60E、FortiOSは6.2.5で、VDOM環境です。
まずは、先程ダウンロードした証明書をインポートします。
証明書(Certificates)のGUIが標準では表示されていないので、まずは、そこから設定します。
Global VDOMの[System]->[Feature Visibility]から、Certificatesを有効します。
対象のVDOMに移動して、証明書をImportします。
インポートした証明書の名前を覚えておきます。
※画面では、「REMOTE_Cert_1」 です。
続いてコマンドラインで以下の設定を導入します。
idp-entity-id 、idp-single-sign-on-url、idp-single-logout-url は、Azure ADの画面からコピペします。
なお、idp-single-logout-url には「?(クエッションマーク、はてなマーク)」が入っています。
FortiGateにCLIで?を入力する場合は「Ctrl+v」のあとに「?」を入力すれば、コマンド候補の代わりに「?」が入力できます。
「set user-name “username”」のusernameは、Azure ADのユーザ属性に自分で追加した名前です。
config user saml edit "azure" set entity-id "https://[FortiGateのFQDN]/remote/saml/metadata" set single-sign-on-url "[FortiGateのFQDN]/remote/saml/login" set single-logout-url "https://[FortiGateのFQDN]/remote/saml/logout" set idp-entity-id "https://sts.windows.net/xxxx/" set idp-single-sign-on-url "https://login.microsoftonline.com/xxxx/saml2" set idp-single-logout-url "https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0" set idp-cert "REMOTE_Cert_1" set user-name "username" set group-name "group" next end
作成したユーザをグループに入れます。
※グループに突っ込まないと、そもそもポリシーで利用できません。
Microsoftのチュートリアルでは、さらにmatchをつかって、Group-IDで絞り込んでいますが、今回はそこまでやっていません。
config user group edit "SSLVPN_from_AzureAD" set member "azure" next end
最後にポリシーに適用します。
※ポリシーに設定して、初めてログイン画面にSingle Sing-onボタンが表示されます。
■テスト
今回はSP-Initiatedなので、FortiGateの画面から行きます。
おお。できた。
ちなみに、パーソナルブックマークとか作ってもちゃんと保存されます。
設定は、ユーザ名「xx@xxx.xx#SAML設定名」としてconfigに保存されるようです。
あと、FortiClientもSAML Logonというのができそうなのですが、どうもこれは、有償版?か6.4の機能っぽい?
こんなふうにできるはず?
今回はSSL-VPNに関してSSOを設定しましたが、管理画面もできるようなので、今後は管理画面もSSO対応を検討したいと思います。
【バックナンバー】
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 1 – 購入編
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 2 – Windows 10をIntuneに登録する
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 3 – AndroidをIntuneに登録する
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 4 – iPadとmacOSをIntuneに登録する
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 5 – 条件付きアクセスでIDを保護する
- Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 6 – AWSコンソールへのログインをSSOにする
ではでは。またの機会に。