OpenVPNでSAML認証を使用する

概要

OpenVPNの接続にSAML認証を使うように設定します。

背景

OpenVPNサーバーを公開しているとブルートフォース攻撃をくらいまくるのでSAML認証を取り入れます。

こちらの記事の派生です。OpenVPN AccessServerが必須なので、OpenVPN単体で運用されている方はこちらもご覧ください。

やりかた

今回はIdPにはGoogle Workspaceを使います。Microsoft EntraIDやOktaでも基本は同じです。

Google管理コンソールにログインし、[ウェブアプリとモバイルアプリ]の[アプリを追加]-[カスタムSAMLアプリの追加]をクリックします。

[アプリ名]に任意の名前をつけます。

OpenVPN AccessServerはメタデータによるIdPの設定に対応しています。
[メタデータをダウンロード]をクリックします。

Google管理コンソールを開いたまま、OpenVPNの管理画面を開きます。

OpenVPN管理画面( https://<OpenVPN AccessServerのIP>/admin:943 )にアクセスします。

[AUTHENTICATION]-[SAML]をクリックします。

[SAML Settings]の中の[Service Provider (SP) identity and URL]から、[SP Identity]と[SP ACS]を控えます。

Google管理コンソールに戻り、[ACSのURL]に[SP ACS]のURL、[エンティティID]に[SP Identity]のURLを入力します。

メールアドレスくらいしか見ないので属性の設定は不要です。

作成されたカスタムSAMLアプリにユーザーを割り当てます。

[ユーザーアクセス]横の矢印をクリックします。

許可するユーザーを調整し、ステータスを[オン]にします。

OpenVPN管理画面に戻り、[Configure Identity Provider (IdP) Automatically via Metadata]の[参照]をクリックして、Google管理コンソールでダウンロードしたメタデータファイルをアップロードします。

[Enable SAML authentication]を[Yes]に変更します。

[Save Settings]をクリックして設定を保存します。

[Update Running Server]をクリックします。

SAML認証でログインするユーザーを作成します。

[USER MANAGEMENT]-[User Permissions]で[Username]にメールアドレス、[Auth method]に[SAML]を指定してユーザーを追加します。

動作確認

スマートフォン(Android)を使って動作確認します。

通常のOpenVPNの動作確認と同様に、まずovpnファイルをダウンロードします。

ブラウザでOpenVPNクライアントコンソールにアクセスすると[Sign In via SAML]ボタンが追加されています。これをタップするとIdPの認証画面にリダイレクトされます。

ovpnファイルをダウンロードします。

ダウンロードしたovpnファイルをインポートし、VPN接続できることを確認します。

おまけ

SSO

Googleのデバイス管理に登録したスマートフォンを使ったので、一瞬以下の画面が表示された後、パスワード認証なしでVPN接続できるようになりました。便利ですね。

参考

SAML Configuration For G Suite | OpenVPN Access Server
How to set up SAML with Google Workspace on OpenVPN Access Server. A step-by-step guide for configuration of SAML on Acc...

コメント