

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Auth0 と を使用して Amazon WorkSpaces の SAML 2.0 認証を実装する Auth0 AWS Managed Microsoft AD
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad"></a>

*Amazon Web Services、Siva Vinnakota および Shantanu Padhye*

## 概要
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-summary"></a>

このパターンでは、Auth0 を と統合 AWS Directory Service for Microsoft Active Directory して、Amazon WorkSpaces 環境用の堅牢な SAML 2.0 認証ソリューションを作成する方法について説明します。ここでは、これら間のフェデレーションを確立 AWS のサービス して、シームレスなデスクトップアクセスを維持しながら、多要素認証 (MFA) やカスタムログインフローなどの高度な機能を有効にする方法について説明します AWS Managed Microsoft AD。少数のユーザーのみを管理する場合でも数千のユーザーを管理する場合でも、この統合により組織は柔軟性とセキュリティを得ることができます。このパターンでは、独自の環境にこのソリューションを実装できるように、セットアッププロセスの手順を説明します。

## 前提条件と制限事項
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ AWS Managed Microsoft AD
+ に関連付けられている Amazon WorkSpaces Personal のプロビジョニングされたデスクトップ AWS Managed Microsoft AD
+ Amazon Elastic Compute Cloud (Amazon EC2) インスタンス
+ Auth0 アカウント

**制限事項**

一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、「[AWS のサービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」ページを参照して、サービスのリンクを選択します。

## アーキテクチャ
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-architecture"></a>

WorkSpaces クライアントアプリケーションの SAML 2.0 認証プロセスは、次の図に示す 5 つのステップで構成されています。これらのステップは、ログインするための一般的なワークフローを表しています。このパターンの指示に従った後に、この分散型認証アプローチを使用することで、ユーザーアクセスのための構造化された安全な方法を提供できます。

![WorkSpaces クライアントアプリケーションの SAML 2.0 認証プロセスのワークフロー。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/5a0f227c-c111-495b-9fde-98ae7832bb10/images/957b2a11-e898-4c4f-ae4e-c2e85bfa93a0.png)


 ワークフロー:

1. **登録**。ユーザーは WorkSpaces のクライアントアプリケーションを起動し、SAML 対応の WorkSpaces ディレクトリの WorkSpaces 登録コードを入力します。WorkSpaces は、Auth0 ID プロバイダー (IdP) の URL をクライアントアプリケーションに返します。

1. **ログイン**:WorkSpaces クライアントでは、Auth0 の URL を使用してユーザーのウェブブラウザにリダイレクトします。 ユーザーは、ユーザー名とパスワードを使用して認証します。Auth0 は、クライアントブラウザに SAML アサーションを返します。SAML アサーションとは、ユーザーの ID をアサートする暗号化されたトークンです。

1. **認証**: クライアントブラウザは SAML アサーションを AWS サインイン エンドポイントに投稿して検証します。 は発信者が AWS Identity and Access Management (IAM) ロールを引き受けること AWS サインイン を許可します。これにより、IAM ロールに関する一時的な認証情報を含むトークンが返されます。

1. **WorkSpaces ログイン**: WorkSpaces クライアントは、トークンを WorkSpaces サービスエンドポイントに提示します。WorkSpaces はトークンをセッショントークンと交換し、ログイン URL とともにセッショントークンを WorkSpaces クライアントに返します。WorkSpaces クライアントがログインページを読み込むと、ユーザー名の値が SAML レスポンスで渡された `NameId` 値によって入力されます。

1. **ストリーミング**。ユーザーは、パスワードを入力し、WorkSpaces ディレクトリに対して認証します。認証後、WorkSpaces はトークンをクライアントに返します。クライアントは WorkSpaces サービスにリダイレクトし、トークンを提示します。これは、WorkSpaces クライアントと WorkSpace の間のストリーミングセッションのブローカーとなります。

**注記**  
パスワードプロンプトを必要としないシームレスなシングルサインオンエクスペリエンスを設定するには、WorkSpaces ドキュメントの「[Certificate-based authentication and WorkSpaces Personal](https://docs.aws.amazon.com/workspaces/latest/adminguide/certificate-based-authentication.html)」を参照してください。

## ツール
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-tools"></a>

**AWS のサービス**
+ [Amazon WorkSpaces](https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces.html) は、ハードウェアを調達してデプロイしたり、複雑なソフトウェアをインストールしたりすることなく、ユーザーにクラウドベースのデスクトップを提供する、フルマネージド型の仮想デスクトップインフラストラクチャ (VDI) サービスです。
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) は、ディレクトリ対応のワークロードと AWS リソースが で Microsoft Active Directory を使用できるようにします AWS クラウド。

**その他のツール**
+ [Auth0](https://auth0.com/) は、アプリケーションへのアクセスの管理に役立つ認証および認可を行うプラットフォームです。

## エピック
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-epics"></a>

### Auth0 で Active Directory LDAP コネクタを構成する
<a name="configure-the-active-directory-ldap-connector-in-auth0"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Active Directory LDAP コネクタを Auth0 にインストールします AWS Managed Microsoft AD。 | 1. Auth0 ダッシュボードにログインし、**[認証]**、**[エンタープライズ]**、**[Active Directory/LDAP]** の順に選択します。**[接続を作成する]** を選択します。<br />2. Active Directory 接続の名前を指定し、**[作成]** を選択します。<br />3. **[セットアップ]** タブで、お使いのオペレーティングシステム用のエージェントをダウンロードします。<br />インストールが完了すると、デフォルトのブラウザにチケットの URL を入力するプロンプトが表示されます。<br />4. 接続文字列に対して一意である必要があるプロビジョニングチケットの URL を入力し、**[続行]** を選択します。<br />5. **[AD LDAP 構成]**ダイアログボックスで、**[ユーザー名]** と **[パスワード]** に管理者の認証情報を入力し、**[保存]**を選択します。<br />Auth0 への接続が確立されると、すべてのチェックに対して **[OK]** という報告ステータスが、構成ログが表示されます。 | クラウド管理者、クラウドアーキテクト | 
| Auth0 でアプリケーションを作成し、SAML メタデータのマニフェストファイルを生成します。 | 1. Auth0 ダッシュボードにログインし、[Auth0 ドキュメント](https://auth0.com/docs/get-started/auth0-overview/create-applications)の指示に従って新しいアプリケーションを作成します。<br />2. Auth0 ダッシュボードで、アプリケーション名を選択してその構成設定にアクセスします。**[アドオン]** タブで、**[SAML2 ウェブアプリ]** を選択します。<br />3. アドオンの **[設定]** タブで、**[アプリケーションコールバック URL]** に **https://signin.aws.amazon.com/saml** と入力します。ここで SAML トークンは、`POST` リクエストを送信します。<br />4. **[設定]** タブの **[設定]**ボックスに、次の SAML 構成コードを JSON 形式で貼り付けます。<pre>{<br />  "audience": "https://signin.aws.amazon.com/saml",<br />  "mappings": {<br />    "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sAMAccountName",<br />    "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"<br />  },<br />  "createUpnClaim": false,<br />  "passthroughClaimsWithNoMapping": false,<br />  "mapUnknownClaimsAsIs": false,<br />  "mapIdentities": false,<br />  "nameIdentifierFormat": "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",<br />  "nameIdentifierProbes": [<br />    "http://schemas.auth0.com/sAMAccountName"<br />  ]<br />}</pre><br />5. 保存し、**[有効化]** を選択します。<br />6. **[使用状況]** タブを選択し、ID プロバイダーのメタデータのマニフェストファイルをダウンロードします。この情報は次のステップで必要になります。<br />7. **[SAML2 ウェブアプリ]** ウィンドウを閉じます。<br />8. アプリケーション画面で、**[接続]** を選択します。**[エンタープライズ]** で、正しい Active Directory/LDAP コネクタを選択し、有効にします。 | クラウド管理者、クラウドアーキテクト | 

### IAM で SAML 2.0 の IdP、ロール、ポリシーを設定する
<a name="set-up-idp-role-and-policy-for-saml-2-0-in-iam"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| IAM で SAML 2.0 IdP を作成します。 | SAML 2.0 を IdP として設定するには、IAM ドキュメントの「[IAM で SAML ID プロバイダーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)」に記載されているステップに従います。 | クラウド管理者 | 
| SAML 2.0 フェデレーション用の IAM ロールとポリシーを作成します。 | 1. SAML 2.0 フェデレーション用の IAM ロールを作成します。手順については、WorkSpaces ドキュメントの WorkSpaces Personal で SAML 2.0 を設定する手順の[ステップ 2](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html#create-saml-iam-role) を参照してください。<br />2. IAM ポリシーを作成し、前のステップで作成したロールに関連付けます。手順については、WorkSpaces ドキュメントの WorkSpaces Personal で SAML 2.0 を設定する手順の[ステップ 3](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html#embed-inline-policy) を参照してください。 | クラウド管理者 | 

### Auth0 でアサーションを構成する
<a name="configure-assertions-in-auth0"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Auth0 および SAML アサーションを構成します。 | Auth0 アクションを使用して、SAML 2.0 レスポンス内のアサーションを構成できます。SAML アサーションは、ユーザーの ID をアサートする暗号化されたトークンです。1. Auth0 ダッシュボードにサインインします。**[アクション]**、**[ライブラリ]**、**[アクションを作成]**、**[一から構築]** の順に選択します。<br />2. 次の値を指定して、**[作成]** を選択します。<br />**[名前]: アクションの名前を指定します**<br />**[トリガー]: [ログイン]/[ログイン後] を選択します**<br />**[ランタイム]: [Node 18] を選択します**<br />3. 次の画面で、以下のコードを入力します。<pre>exports.onExecutePostLogin = async (event, api) => <br />{   if (event.client.name === "Workspace_Saml")<br />   {     const awsRole = 'arn:aws:iam::030784294031:role/Workspace_Auth0,arn:aws:iam::030784294031:saml-provider/Auth0';<br />     const awsRoleSession = event.user.sAMAccountName;<br />     const email = event.user.emails[0];<br />     api.samlResponse.setDestination('https://signin.aws.amazon.com/saml');<br />     api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/Role', awsRole)<br />     api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/RoleSessionName', awsRoleSession)<br />     api.samlResponse.setAttribute('https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email', email)<br />   } return;<br />};</pre><br />4. **[デプロイ]** をクリックします。<br />これで、WorkSpaces Personal デスクトップの SAML 2.0 認証の設定は完了です。「[アーキテクチャ](#implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-architecture)」セクションでは、セットアップ後の認証プロセスについて説明します。 | クラウド管理者 | 

## トラブルシューティング
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| WorkSpaces における SAML 2.0 認証の問題<br />** ** | WorkSpaces Personal に SAML 2.0 認証を実装する際に問題が発生した場合は、SAML 2.0 認証のトラブルシューティングに関する [AWS re:Post の記事](https://repost.aws/knowledge-center/workspaces-saml-authentication-issues)に記載されているステップとリンクに従ってください。<br />WorkSpaces へのアクセス中に発生する SAML 2.0 エラーの調査の追加情報については、以下を参照してください。+ [AWS サポート ケースの HAR ファイルとコンソールログをブラウザから作成するにはどうすればよいですか?](https://repost.aws/knowledge-center/support-case-browser-har-file) (AWS re:Post)<br />+ [View a SAML response in your browser](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_saml_view-saml-response.html) (IAM ドキュメント)  | 

## 関連リソース
<a name="implement-saml-authentication-for-amazon-workspaces-by-using-auth0-and-aws-managed-microsoft-ad-resources"></a>
+ [Set up SAML 2.0 for WorkSpaces Personal](https://docs.aws.amazon.com/workspaces/latest/adminguide/setting-up-saml.html) (WorkSpaces ドキュメント)
+ [Auth0 ドキュメント](https://auth0.com/docs)