Enterprise Mobility + Security E3ではじめるゼロトラスト入門 – 7 – FortiGate のSSL-VPNをSSOにする

ども。こんばんは。

今回は、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の機能っぽい?

こんなふうにできるはず?

https://sites.google.com/frellsen.se/kimfrellsen/fortinet-ssl-vpn-with-okta-mfa-using-saml?authuser=0

 

今回はSSL-VPNに関してSSOを設定しましたが、管理画面もできるようなので、今後は管理画面もSSO対応を検討したいと思います。

【バックナンバー】

ではでは。またの機会に。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください