Amazon WorkSpaces
【参考】
2023年09月06日時点での情報で掲載しています。
「Amazon WorkSpaces」との認証連携を設定します。
【注意】
- 本手順にはSAML連携に関連しない項目については記載していません。
- Amazon WorkspacesがSAMLで認証するキーは「sAMAccountName」です。
- IIJ IDサービス内の各ユーザ共通のユーザ属性にAmazon Web Servicesの「ユーザID」と同一の値を保持しておく必要があります。
- Amazon Workspacesが提供するiPad用ネイティブアプリは、SAML連携に対応していません。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。
3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。
4. アプリケーション情報を入力して、「アプリケーションを追加する」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アプリケーション名 | 例)Amazon WorkSpaces | 必須 |
アプリケーションの説明 | 例)あらゆるワークロードに対応する、安全で信頼性の高いフルマネージド型仮想デスクトップ | 任意 |
アプリケーションロゴ | (ファイルアップロード) | 任意 |
IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのIDプロバイダ情報を確認する
1. 作成されたアプリケーションの「編集する」をクリックします。
2. 「IDプロバイダ情報」をクリックします。
3. 「エンティティID」の値の「asiida-」以降の内容を控え、「ダウンロードする」をクリックし、IDプロバイダのメタデータをダウンロードします。
【参考】
エンティティIDの値が以下の場合、控える文字列は「asiida-000000000000A/-/11111111-2222-3333-4444-555555555555」です。
- エンティティID:https://www.auth.iij.jp/idp/asiida-000000000000A/-/11111111-2222-3333-4444-555555555555
3. Amazon WorkSpaces Webの作成
1. 「https://console.aws.amazon.com/iam」に管理者アカウントでログインします。
2. 左ペインのメニューから「ID プロバイダ」をクリックします。
3. 「プロバイダを追加」をクリックします。
4. 以下のとおり設定し、「プロバイダを追加」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
プロバイダのタイプ | 「SAML」を選択 | |
プロバイダ名 | IIJID | 任意の文字列 |
メタデータドキュメント | 手順2-3でダウンロードしたIDプロバイダのメタデータをアップロード |
5. 作成した「プロパイダ」をクリックします。
6. 「ARN」の値を控えます。
4. Amazon Web Servicesでロールを作成する
1. 左ペインのメニューから「ロール」をクリックします。
2. 「ロールを作成」をクリックします。
3. 以下のとおり設定し、「次へ」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
信頼されたエンティティタイプ | 「SAML2.0フェデレーション」を選択 | |
SAML2.0ベースのプロバイダー | IIJID | 任意の文字列 |
属性 | SAML:sub_type | |
値 | persistent |
4. 作成するロールに適切なポリシーを選択し、「次へ」をクリックします。
【参考】
ポリシーの選択、及び「許可の境界の設定」については、製品マニュアル、または販売元に確認してください。
5. 以下のとおり設定し、「ロールを作成」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
ロール名 | (任意の文字列) | 必須 |
説明 | (任意の文字列) | 任意 |
6. 作成したロールをクリックします。
7. 「信頼関係」のタブをクリックします。
8. 「信頼ポリシーを編集」をクリックします。
9. 以下のとおり編集し、「ポリシーを更新」をクリックします。
置換前 | "Action":"sts:AssumeRoleWithSAML", |
---|---|
置換後 | "Action": [ |
10. 「許可」のタブをクリックします。
11. 「許可を追加」をクリックし、「インラインポリシーを作成」をクリックします。
12. 「JSON」をクリックします。
13. ポリシーエディタ内で以下のとおり記載し、「次へ」をクリックします。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "workspaces:Stream", "Resource": "arn:aws:workspaces:{REGION-CODE}:{ACCOUNT-ID-WITHOUT-HYPHENS}:directory/{DIRECTORY-ID}", "Condition": { "StringEquals": { "workspaces:userId": "${saml:sub}" } } } ] }
【参考】
{REGION-CODE}、{ACCOUNT-ID-WITHOUT-HYPHENS}、{DIRECTORY-ID}の箇所には、それぞれAmazon Web Serviceのリージョンコード、アカウントID、ディレクトリIDを記述します。
詳しくは、製品マニュアル、または販売元に確認してください。
14. 以下のとおり設定し、「ポリシーの作成」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
ポリシー名 | (任意の文字列) | 必須 |
15. このロールの 「ARN」の値を控えます。
【参考】
ユーザによってAmazon Web Serviceの権限を分けたい場合は、手順4の「Amazon Web Servicesでロールを作成する」で必要な分のロールを作成してください。
その際、各ロールの「ARN」の値を控えてください。
5. Amazon Web ServicesのSPプロバイダ情報を取得する
1. ブラウザで「https://signin.aws.amazon.com/static/saml-metadata.xml」にアクセスします。表示した内容をファイルとして保存します。
2. 手順5-1で保存したファイルを以下のとおり編集し、保存します。
置換前 | <NameIDFormat> |
---|---|
置換後 | <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat> |
6. Amazon WorkspacesでSAMLの情報を入力する
1. 「https://console.aws.amazon.com/workspaces」に管理者アカウントでログインします。
2. 左ペインのメニューから「ディレクトリ」をクリックします。
3. 表示している「ディレクトリID」をクリックします。
4. 認証内の「編集」または「認証を編集」をクリックします。
5. 「SAML 2.0 アイデンティティプロバイダーの編集」をクリックします。
6. 以下のとおり設定し、「保存」をクリックします。
項目 | 内容 |
---|---|
SAML2.0認証の有効化 | チェック |
ユーザアクセスURL | https://www.auth.iij.jp/idp/idp-initiated-sso/(手順2-3で控えた文字列)?spEntityID=urn%3Aamazon%3Awebservices 例) |
Idpディープリンクパラメータ名 | RelayState |
7. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. アプリケーションの「編集する」をクリックします。
3. 「フェデレーション設定」をクリックします。
4. 以下のとおり設定し、「変更を適用する」をクリックします。
項目 | 内容 | 備考 | ||
---|---|---|---|---|
SAML基本情報 | SPのメタデータをアップロードする | 「SPのメタデータをアップロードする」をチェック | ||
SPメタデータ | 手順3-5で入手したSPメタデータをアップロード | |||
検証後の遷移先(RelayState) | (空欄) | |||
アプリケーションのトップページURL | (空欄) | |||
アサーションの署名アルゴリズム | 例) | |||
ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) ID | Amazon Web Servicesの各ユーザの「sAMAccountname」の値が格納されている属性を指定します | |
属性値関連付け(ユーザ属性) | https://aws.amazon.com/SAML/Attributes/Role | 例) タイプと一致する値を使用する | 手順8でAmazon Web Servicesに引き渡す値が格納されている属性を指定します | |
https://aws.amazon.com/SAML/Attributes/RoleSessionName | 例) | Amazon Web Servicesの各ユーザの「メールアドレス」または「UPN」の値が格納されている属性を指定します | ||
https://aws.amazon.com/SAML/Attributes/PrincipalTag:Email | 例) | Amazon Web Servicesの各ユーザの「メールアドレス」の値が格納されている属性を指定します |
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「RSA-SHA256」を選択してください。
「RSA-SHA256」を指定して動作しない場合及び連携先サービス側で明示的にそれ以外のものが指定されている場合は、「RSA-SHA512」、または「RSA-SHA1」に変更し、連携を確認してください。
【参考】
- 「ユーザ識別子(NameID)」の指定は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「ユーザ識別子(NameID)」の指定した属性にユーザが値を保持していない場合は SAML連携は失敗します。
- 「ユーザ識別子(NameID)」にID以外の複数の値を持つ属性で指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_ID」を指定します。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
【注意】
- 「ユーザ識別子(NameID)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
- 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。
5. 「利用者設定」をクリックします。
6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。
【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。
「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。
8. IIJ IDサービスの各ユーザの属性値を設定する
1. 手順7-4で「https://aws.amazon.com/SAML/Attributes/Role」の値にマッピングさせたIIJ IDサービスの各ユーザの属性値に以下の値を設定します。
項目 | 内容 |
---|---|
値 | 手順3-6で取得したプロパイダの 「ARN」の後に手順4-15で取得したロールの「ARN」を「,(カンマ)」区切りで入力 例) arn:aws:iam::0123456789012:saml-provider/IIJID,arn:aws:iam::0123456789012:role/IIJID_SAML_SSO_Role |
タイプ | 手順7-4の設定例にあわせて、Entitlements属性のタイプ名を「aws_role」として設定しています 例) aws_role |
【参考】
Amazon WorkspacesとIIJ IDサービスで認証連携を実施すると、Amazon Worspacesのアプリケーションを起動時に「Workspaceへのサインインを続行」と表示されます。
「Workspaceへのサインインを続行」をクリックすると、ユーザが利用しているブラウザが起動し、IIJ IDサービスで認証が求められます。認証後に、Amazon Workspaces上で再び認証が求められます。