はじめに
FortiGate の SSL-VPN 機能を利用するときは、FortiClient という VPN クライアントソフトを使います。
ForitGate と FortiClient が v6.4.0 で SAML 認証に対応したので、Azure AD を IdP として利用する際の設定手順をまとめまてみました。
とりえあず動かすための最小限の設定をまとめてますので、SAML の詳しい説明など知りたい方は適当にググってください。
以下の記事は要点がコンパクトにまとまっててわかりやすかったので、参考までにリンクを貼っておきます。
便利なSaaSをもっと安全に使うには?(番外編:SAML解説) - NetOne 匠コラム
設定の流れ
- Azure AD (IdP) に FortiGate (SP) を登録
- Azure AD 設定
- FortiGate 設定
- FortiClient 設定
1. Azure AD (IdP) に FortiGate (SP) を登録
Azure Portal で Azure Active Directory > Enterprise applications にアクセスし、アプリケーションを追加します。
"+New Application" をクリックして検索窓に fortigate と入力し "FortiGate SSL VPN" を選択します。
すると以下のように表示されるので Create で作成します。
2. Azure AD 設定
次に FortiGate SSL VPN アプリを設定していきます。
まず 1. Assign users and groups をクリックして SSL-VPN で認証するユーザーを登録します。
"Users and groups" より "+Add user/group" をクリックします。
次に SSO を設定していきます。
Single sign-on から SAML を選択します。
設定するのは次の2か所です。どちらも Edit をクリックして編集します。
1. Basic SAML Configuration
2. User Attributes & Claims
"Basic SAML Configuration" の設定は以下のとおりです。
<ip:port>
には FortiGate の SSL-VPN 接続先を指定します。
Identifier http://<ip:port>/remote/saml/metadata
Reply URL https://<ip:port>/remote/saml/login/
Sign on URL https://<ip:port>/remote/login
Logout Url https://<ip:port>/remote/saml/logout/
"User Attributes & Claims" には 以下の値を追加します。
Name: username
Source: Attribute
Source attribute: user.principalname
最後に FortiGate に設定する情報を取得します。
3. SAML Signing Certificate
Certificate(Base64)をダウンロード
4. Set up FortiGate SSL VPN
Login URL, Azure AD Identifier, Logout URL の値を記録する
以上で Azure Portal での作業は完了です。
3. FortiGate 設定
まず Azure Portal からダウンロードした証明書をインポートします。
System > Cerfiticate > Import > Remote Certificate
インポートした証明書は "REMOTE_Cert_1" のような前になっているので、必要に応じてわかりやすい名前に変更します。
config vpn certificate remote
rename REMOTE_Cert_1 to azuresso.cert
end
次に SAML ユーザーを作成します。
SAML ユーザーは CLI から設定します。
?
を入力する際は Ctrl-v
を押してから ?
とします。
config user saml
edit "user01-aad"
set cert "Fortinet_Factory"
set entity-id "http://<ip:port>/remote/saml/metadata"
set single-sign-on-url "https://<ip:port>/remote/saml/login/"
set single-logout-url "https://<ip:port>/remote/saml/logout/"
set idp-entity-id "https://sts.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/"
set idp-single-sign-on-url "https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/saml2"
set idp-single-logout-url "https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0"
set idp-cert "azuresso.cert"
set user-name "username"
next
end
次にユーザーグループを作成します。
config user group
edit "aad-saml-group"
set member "user01-aad"
next
end
SSL-VPN アクセス用の Firewall Policy にSAMLユーザーを追加します。
以上で FortiGate の設定は完了です。
4. FortiClient 設定
まず FortiClient v6.4.2 をインストールします。
https://www.forticlient.com/downloads
インストールしたら FortiClient Console を開いて VPN 設定を作成します。
IP, Port など設定して "Enable Single Sign On (SSO) for VPN Tunnel" にチェックを入れます。
SAML Login を押して SSL-VPN 接続を実行します。
認証ポータルがポップアップしてくるので、Azure AD ユーザーでログインします。
まとめ
IDaaS と連携した SAML 認証 というと設定がややこしそうに聞こえますが、意外と簡単に設定できます。
また SAML なので Azure AD 以外の IDaaS (Okta, G Suite など) も使えます。
Office 365 や G Suite を利用している環境では IDM を一元化できますし MFA も容易に実装できますから、メリットが大きいです。
ぜひ一度お試しいただければと思います。