TrustLoginのSAML認証
「トラスト・ログイン (TrustLogin)」はGMOグローバルサイン社が提供するIDaaSです。
2021年7月にSAMLレスポンスに署名する機能が追加されたためAWS Client VPNの認証に使用できるか試してみました。
なお、SAMLアプリテンプレートについては2021年8月4日時点で「順次登録を行なっておりますため、リリース時期は未定となっております。」と担当の方より情報をいただきました。
2021年8月25日に公式の設定ガイドにAWS Client VPN のSAML認証設定方法が追加されました。
AWS公式ドキュメント
公式にサポートされているSAMLベースのIdPはOktaとMicrosoft Azure Active Directoryですが、必要な情報はドキュメントに記載されていますのでその他のIdPでも使用できる可能性があります。
TrunstLoginの設定
TrustLoginに管理者としてログインしておきます。
グループの作成
[管理] > [グループ] > [グループ追加]でVPNユーザ用のグループを作成します。作成後にメンバーを追加します。
設定項目 | 設定内容 |
---|---|
グループ名 | 任意の名前 (VPN-User) |
グループの説明 | 任意の内容 |
SAMLアプリの登録
[管理] > [アプリ] > [SAMLアプリ登録] から以下の内容を設定します。
設定項目 | 設定内容 |
---|---|
アプリケーション名 | 任意の名前(AWS Client VPN) |
アイコン | 任意のアイコン![]() |
ログインURL | (記入しない) |
SAMLレスポンスに署名する | ON |
SP認証成功後の移行URL | (記入しない) |
ネームID用値 | [メンバー] [email] |
エンティティID | urn:amazon:webservices:clientvpn |
ネームIDフォーマット | emailAddress |
サービスへのACS URL | [HTTP-POST] http://127.0.0.1:35001 セルフポータルを利用する場合は以下も追加 [HTTP-POST] https://self-service.clientvpn.amazonaws.com/api/auth/sso/saml |
ログアウトURL | (記入しない) |
SAML属性の設定
「カスタム属性を指定」のボタンで以下を追加します。「memberOf」には最初に作成したグループ名を指定します。グループ名を選択した後に右側の[+]ボタンを押します。
(SP) 属性指定名 |
(SP) 属性種類 |
(SP) 属性名 |
(IdP) 属性値 |
---|---|---|---|
NameID | [Email] | (記入しない) | [メンバー] [メンバー―メールアドレス] |
FirstName | [Persisted] | (記入しない) | [メンバー] [メンバー―名] |
LastName | [Persisted] | (記入しない) | [メンバー] [メンバー―姓] |
memberOf | [Persisted] | (記入しない) | [グループ] [VPN-User] |
メタ情報のダウンロード
IDプロバイダーの情報にある「メタデータをダウンロード」からXMLファイルをダウンロードして保存しておきます。最後に右上の「登録」ボタンで終了します。
アプリにグループ追加
登録されたアプリを選んで、[グループ追加]で先に作ったグループを追加します。
AWS ACMの設定
クライアント VPN エンドポイントで使用するサーバ証明書を発行してACMにアップロードします。なお、クライアント証明書は今回は使用しません。
AWS IAMの設定
コンソールの [IAM] > [ID プロバイダー] > [プロバイダの作成]で追加します。
ID プロバイダーの設定
設定項目 | 設定内容 |
---|---|
プロバイダのタイプ | SAML |
プロバイダ名 | 任意の名前 (TrustLogon) |
メタデータドキュメント | TrustLogin のメタ情報のダウンロードで保存したXMLファイルをアップロードする |
AWS VPCの設定
クライアント VPN エンドポイント作成
コンソールの [VPC] > [クライアント VPN エンドポイント] > [クライアント VPN エンドポイント作成] で追加します。
スプリットトンネルはシステム構成、セルフサービスポータルは運用方法に基づき設定します。
設定項目 | 設定内容 |
---|---|
名前タグ | 任意の名前 (TrustLogin) |
説明 | 任意の内容 |
クライアント IPv4 CIDR | 任意のアドレス (192.168.100.0/22) |
サーバー証明書 ARN | ACMに設定した証明書を選択 |
認証オプション | ユーザーベースの認証を使用: ON 統合認証: ON SAML プロバイダー ARN: IAMで設定したものを選択 セルフサービス SAML プロバイダー ARN: (記入しない) |
クライアント接続の詳細を記録しますか? | いいえ |
クライアント接続ハンドラを有効化しますか? | いいえ |
DNS サーバー 1 IP アドレス | 任意のDNS |
DNS サーバー 2 IP アドレス | 任意のDNS |
トランスポートプロトコル | UDP |
スプリットトンネルを有効にする | ON |
VPC ID | 構成済みのVPCを選択 |
VPN ポート | 443 |
セルフサービスポータルを有効にする | OFF |
AWS Client VPN Endpoint 設定
作成したエンドポイントに以下の設定をします。
関連付け
作成したエンドポイントをVPCに関連づけます。
設定項目 | 設定内容 |
---|---|
VPC | 任意のVPC |
関連付けるサブネットの選択 | 任意のサブネット |
認証
アクセス対象をCIDR形式で許可します。AWS Client VPNはオンプレミスのネットワークへのアクセスやピア接続先 VPC へのアクセスも可能なので、対象のCIDRを許可します。「0.0.0.0/0」とすると全て許可することになります。
設定項目 | 設定内容 |
---|---|
アクセスを有効にするサブネット | 任意のサブネット (0.0.0.0/0) |
アクセス権を付与する対象 | 特定のアクセスグループのユーザーへのアクセスを許可する |
アクセスグループID | TrustLoginで作成したグループ名 (VPN-User) |
説明 | 任意の説明 |
ルートテーブル
VPC外のネットワークにアクセスする場合は[ルートの作成]でルーティングを追加します。
設定項目 | 設定内容 |
---|---|
ルート送信先 | 宛先CIDR |
ターゲット VPC サブネット ID | サブネットIDを選択 |
説明 | 任意の説明 |
クライアント設定のダウンロード
[クライアント設定のダウンロード] からクライアントに設定する ovpn ファイルをダウンロードして保存します。VPNの利用者にはこのファイルを配布するか、セルフポータルを有効にして自身でダウンロードしてもらうようにします。
AWS Client VPN for Desktop のダウンロードとインストール
クライアントPC用のプログラムをダウンロードしてインストールします。
古いバージョンはSAML認証をサポートしていませんでした。バージョン1.2.0以上でサポートされています。
インストール後に [ファイル] > [プロファイルを管理] > [プロファイルを追加] でダウンロードした ovpn ファイルを指定してプロファイルを追加します。