SSL-VPNのSSO(SAML)について
FortigateのSSL-VPNのログインをOktaで認証する方法を記述します。
これを行うことで、SSL-VPNでログインボタンをクリックすると、Oktaのダイアログが表示されOktaの認証を行うことでログインできるようになります。
メリット
- Oktaの多要素認証が使用できるようになりセキュアになります。
- ユーザーはパスワードが不要になり操作が楽になります。
- Fortigate側にVPN用のユーザーを登録する必要がなくなります。
前提
- Fortigate ファームウェアバージョン6.2以上であること
Oktaにアプリケーションを作成する
※Fortigateのカタログはありません。
- Create App Integration > SAML2.0 > 1.General Settingsで任意のアプリ名、ロゴを入力します。
- 2.Configure SAMLでSingle sign on URLとAudience URI (SP Entity ID)を設定します。もちろんVPNのポートが443ではない場合はドメイン、IPの後ろに
:port
の形で入力します。
Single sign on URL:https://<fortigateの公開ドメイン or IP>/remote/saml/login/
Audience URI (SP Entity ID):https://<fortigateの公開ドメイン or IP>/remote/saml/metadata/
- アプリの作成が終わったらアプリのSign Onタブのページに「View SAML setup instructions」というボタンがあるので押します。
- 開いた画面にFortigate側に設定する上表が表示されます。
X.509 Certificate
(証明書)はダウンロードしておきます。
当然ですが、使用するユーザーをアプリにアサインしておいてください。
FortigateにSAML設置を行う
証明書の登録
Oktaでダウンロードした証明書をFortigateにアップロードします。
システム > 証明書 > インポート > リモート
SAMLの設定
FortigateのCLIで以下を実行します。
config user saml
edit "okta-saml-sslvpn"
set cert "Fortinet_Factory"
set entity-id "https://<fortigateの公開ドメイン or IP>/remote/saml/metadata/"
set single-sign-on-url "https://<fortigateの公開ドメイン or IP>/remote/saml/login/"
set single-logout-url "https://<fortigateの公開ドメイン or IP>/remote/saml/logout/"
set idp-entity-id "http://www.okta.com/exk1zztym0xfjZG70697"
set idp-single-sign-on-url
"https://trial-7179599.okta.com/app/trial-7179599_sample_1/exk1zztym0xfjZG70697/sso/saml"
set idp-cert "REMOTE_Cert_1"
set user-name "username"
next
end
config user group
edit "ssl-saml-grp"
set member "okta-saml-sslvpn"
next
end
editの後の"okta-saml-sslvpn"はユーザー名です。任意の値で構いません。
certは固定で「Fortinet_Factory」です。
entity-id、single-sign-on-urlはOktaのアプリで設定した値と同じです。entity-idにはAudience Restriction、single-sign-on-urlにはSingle Sign On URLを設定します。
single-logout-urlはよくわかりませんが適当に設定しています。必要ないかもしれません。
idp-entity-id、idp-single-sign-on-urlはOktaの「How to Configure SAML 2.0」画面で表示された「Identity Provider Issuer」、「Identity Provider Single Sign-On URL」をそれぞれ設定します。
idp-certはアップロードした証明書のFortigate上の名前です。
user-nameは"username"とします。これはSAMLのXMLで渡すユーザー名の属性名になります。
作成したユーザーのグループを作成します。グループ名は任意で構いません。
SSL-VPNに登録する
- SSL-VPNの認証/ポータルマッピングにグループを追加します。
- ファイアウォールのポリシーにグループを追加します。
登録方法はトラスト・ログインのサイトが詳しいです。参考に記述しているリンクの「SSL-VPN設定を行います。」「ファイアウォールポリシーを設定します。」を参照してください。
SSL-VPNクライアントに設定する
トラスト・ログインから画像を借りていますが、以下のように設定します。
接続名:任意
リモートGW:SSL-VPNのURL
ポートの編集:チェックしポートを設定
Enbale Single Sign On(SSO) for VPN Tunnel:チェック
Use external browser as user-agent for saml user authentication:チェック
これで設定は終了です。
参考
以下のサイトはトラスト・ログインのページです設定することはほとんど同じです。
FortiGate のSAML認証設定方法