2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure AD SAML 認証で SSL-VPN 接続する

Posted at

#はじめに
FortiGate の SSL-VPN 機能を利用するときは、FortiClient という VPN クライアントソフトを使います。
ForitGate と FortiClient が v6.4.0 で SAML 認証に対応したので、Azure AD を IdP として利用する際の設定手順をまとめまてみました。

とりえあず動かすための最小限の設定をまとめてますので、SAML の詳しい説明など知りたい方は適当にググってください。
以下の記事は要点がコンパクトにまとまっててわかりやすかったので、参考までにリンクを貼っておきます。
便利なSaaSをもっと安全に使うには?(番外編:SAML解説) - NetOne 匠コラム

#設定の流れ

  1. Azure AD (IdP) に FortiGate (SP) を登録
  2. Azure AD 設定
  3. FortiGate 設定
  4. FortiClient 設定

##1. Azure AD (IdP) に FortiGate (SP) を登録
Azure Portal で Azure Active Directory > Enterprise applications にアクセスし、アプリケーションを追加します。
"+New Application" をクリックして検索窓に fortigate と入力し "FortiGate SSL VPN" を選択します。
image.png

すると以下のように表示されるので Create で作成します。
image.png

##2. Azure AD 設定
次に FortiGate SSL VPN アプリを設定していきます。
まず 1. Assign users and groups をクリックして SSL-VPN で認証するユーザーを登録します。
image.png

"Users and groups" より "+Add user/group" をクリックします。
image.png

SSL-VPN で認証させたいユーザーを登録します。
image.png

登録されました。
image.png

次に SSO を設定していきます。
Single sign-on から SAML を選択します。
image.png

設定するのは次の2か所です。どちらも Edit をクリックして編集します。
1. Basic SAML Configuration
2. User Attributes & Claims
image.png

"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

image.png

最後に FortiGate に設定する情報を取得します。
3. SAML Signing Certificate
Certificate(Base64)をダウンロード

4. Set up FortiGate SSL VPN
Login URL, Azure AD Identifier, Logout URL の値を記録する
image.png

以上で Azure Portal での作業は完了です。

##3. FortiGate 設定
まず Azure Portal からダウンロードした証明書をインポートします。
System > Cerfiticate > Import > Remote Certificate
image.png

インポートした証明書は "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 設定に SAML ユーザーを追加します。
image.png

SSL-VPN アクセス用の Firewall Policy にSAMLユーザーを追加します。
image.png

以上で FortiGate の設定は完了です。

##4. FortiClient 設定
まず FortiClient v6.4.2 をインストールします。
https://www.forticlient.com/downloads

インストールしたら FortiClient Console を開いて VPN 設定を作成します。
image.png

IP, Port など設定して "Enable Single Sign On (SSO) for VPN Tunnel" にチェックを入れます。
image.png

SAML Login を押して SSL-VPN 接続を実行します。
image.png

認証ポータルがポップアップしてくるので、Azure AD ユーザーでログインします。
image.png

#まとめ
IDaaS と連携した SAML 認証 というと設定がややこしそうに聞こえますが、意外と簡単に設定できます。
また SAML なので Azure AD 以外の IDaaS (Okta, G Suite など) も使えます。
Office 365 や G Suite を利用している環境では IDM を一元化できますし MFA も容易に実装できますから、メリットが大きいです。
ぜひ一度お試しいただければと思います。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?