クライアント VPN でのシングルサインオン — SAML 2.0 ベースのフェデレーション認証
AWS Client VPN はクライアント VPN エンドポイントに対して、Security Assertion Markup Language 2.0 (SAML 2.0) を使用して ID フェデレーションをサポートしています。SAML 2.0 をサポートする ID プロバイダー (IdP) を使用して、一元化されたユーザー ID を作成できます。その後、SAML ベースのフェデレーション認証が使用されるようにクライアント VPN エンドポイントを設定し、IdP に関連付けることができます。その後、ユーザーは、一元化された認証情報を使用してクライアント VPN エンドポイントに接続します。
認証ワークフロー
次の図に、SAML ベースのフェデレーション認証を使用するクライアント VPN エンドポイントの認証ワークフローの概要を示します。クライアント VPN エンドポイントを作成および設定するときは、IAM SAML ID プロバイダーを指定します。
ユーザーは AWS が提供するクライアントをデバイスで開き、クライアント VPN エンドポイントへの接続を開始します。
-
クライアント VPN エンドポイントは、IAM SAML ID プロバイダーで提供された情報に基づいて IdP URL と認証リクエストをクライアントに送信します。
-
AWS が提供するクライアントは、ユーザーのデバイスで新しいブラウザウィンドウを開きます。ブラウザは IdP にリクエストを送信し、ログインページを表示します。
-
ユーザーがログインページに認証情報を入力し、IdP は署名付き SAML アサーションをクライアントに返します。
-
AWS が提供するクライアントは、クライアント VPN エンドポイントに SAML アサーションを送信します。
-
クライアント VPN エンドポイントはアサーションを検証し、ユーザーへのアクセスを許可または拒否します。
SAML ベースのフェデレーション認証の要件と考慮事項
SAML ベースのフェデレーション認証の要件と考慮事項を次に示します。
-
SAML ベースの IdP でユーザーとグループを設定するためのクォータとルールについては、「ユーザーとグループのクォータ」を参照してください。
-
SAML アサーションおよび応答は署名済みである必要があります。
-
AWS Client VPN は、SAML アサーションの「AudienceRestriction」、「NotBefore」、および「NotOnOrAfter」条件のみをサポートします。
-
SAML 応答でサポートされる最大サイズは 128 KB です。
-
AWS Client VPN では署名付き認証リクエストが提供されません。
-
SAML シングルログアウトはサポートされていません。ユーザーは、AWS が提供するクライアントから切断してログアウトすることも、接続を終了することもできます。
-
1 つのクライアント VPN エンドポイントでサポートされるのは、単一の IdP のみです。
-
IdP で有効になっている場合は Multi-Factor Authentication (MFA) がサポートされます。
-
ユーザーは AWS が提供するクライアントを使用して、クライアント VPN エンドポイントに接続する必要があります。バージョン 1.2.0 以降を使用する必要があります。詳細については、「AWS が提供するクライアントを使用して接続する」「を参照してください。
-
IdP 認証は、Apple Safari、Google Chrome、Microsoft Edge、Mozilla Firefox の各ブラウザでサポートされています。
-
AWS が提供するクライアントは、SAML 応答用にユーザーのデバイス上の TCP ポート 35001 を予約します。
-
正しくない URL または悪意のある URL で IAM SAML ID プロバイダーのメタデータドキュメントが更新されると、ユーザーの認証の問題が発生したり、フィッシング攻撃につながる可能性があります。このため、IAM SAML ID プロバイダーに対して行われる更新は、AWS CloudTrail を使用してモニタリングすることをお勧めします。詳細については、IAM ユーザーガイドの「AWS CloudTrail を使用した IAM および AWS STS 呼び出しのログ記録」を参照してください。
-
AWS Client VPN は、HTTP リダイレクトバインディングを介して IdP に AuthN リクエストを送信します。このため、HTTP リダイレクトバインディングが IdP でサポートされ、IdP のメタデータドキュメントに存在する必要があります。
-
SAML アサーションでは、
NameID属性に E メールアドレス形式を使用する必要があります。 -
クライアント VPN サービスで使用している証明書を、ACM の自動ローテーション、新しい証明書の手動インポート、または IAM Identity Center へのメタデータの更新により更新すると、クライアント VPN サービスはクライアント VPN エンドポイントをより新しい証明書で自動更新します。これは、最長で 5 時間かかることがある自動プロセスです。
SAML ベースの IdP 設定リソース
次の表に、AWS Client VPN での使用がテストされている SAML ベースの IdP と、IdP の設定に役立つリソースを示します。
| IdP | リソース |
|---|---|
| Okta | SAML を使用した AWS Client VPN ユーザーの認証 |
| Microsoft Entra ID (旧名称: Azure Active Directory) | 詳細については、Microsoft のドキュメントウェブサイトの「チュートリアル: Microsoft Entra シングルサインオン (SSO) と AWS ClientVPN との統合 |
| JumpCloud | と統合するAWS Client VPN |
| AWS IAM Identity Center | 認証と承認のための IAM Identity Center と AWS Client VPN の使用 |
アプリを作成するためのサービスプロバイダー情報
上の表に記載されていない IdP を使用して SAML ベースのアプリを作成するには、次の情報を使用して AWS Client VPN サービスプロバイダー情報を設定します。
-
Assertion Consumer Service (ACS) URL:
http://127.0.0.1:35001 -
Audience URI:
urn:amazon:webservices:clientvpn
IdP からの SAML レスポンスには、少なくとも 1 つの属性が含まれている必要があります。以下は属性の例です。
| 属性 | 説明 |
|---|---|
FirstName |
ユーザーの名。 |
LastName |
ユーザーの姓。 |
memberOf |
ユーザーが属するグループ (複数も可)。 |
注記
memberOf 属性は、Active Directory または SAML IdP グループベースの承認ルールを使用する場合に必要です。また、属性は大文字と小文字を区別し、指定どおりに設定する必要があります。詳細については、「ネットワークベースの承認」と「AWS Client VPN 承認ルール」を参照してください。
セルフサービスポータルのサポート
クライアント VPN エンドポイントでセルフサービスポータルを有効にした場合、ユーザーは SAML ベースの IdP 認証情報を使用してポータルにログインします。
IdP が複数の Assertion Consumer Service (ACS) URL をサポートしている場合は、次の ACS URL をアプリに追加します。
https://self-service.clientvpn.amazonaws.com/api/auth/sso/saml
GovCloud リージョンで Client VPN エンドポイントを使用している場合は、代わりに次の ACS URL を使用します。同じ IDP アプリを使用して標準リージョンと GovCloud リージョンの両方で認証する場合は、両方の URL を追加できます。
https://gov.self-service.clientvpn.amazonaws.com/api/auth/sso/saml
IdP が複数の ACS URL をサポートしていない場合は、以下を実行します。
-
IdP に追加の SAML ベースのアプリを作成し、次の ACS URL を指定します。
https://self-service.clientvpn.amazonaws.com/api/auth/sso/saml -
フェデレーションメタデータドキュメントを生成し、ダウンロードします。
-
クライアント VPN エンドポイントと同じ AWS アカウントに IAM SAML ID プロバイダーを作成します。詳細については、IAM ユーザーガイドの「SAML ID プロバイダーの作成」を参照してください。
注記
メインアプリ用に作成したプロバイダーに加えて、この IAM SAML ID プロバイダーを作成します。
-
クライアント VPN エンドポイントを作成し、作成した IAM SAML ID プロバイダーを両方指定します。