Amazon Web Services

【参考】

2020年04月03日時点での情報で掲載しています。

「Amazon Web Services」との認証連携を設定します。

【注意】

Amazon Web ServicesがSAMLで認証するキーは「ログインID」です。
IIJ IDサービス内の各ユーザ共通のユーザ属性にAmazon Web Servicesの「ユーザID」と同一の値を保持しておく必要があります。

1. IIJ IDサービスにSAMLアプリケーションを登録する

1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。

3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。

4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。

項目内容備考
アプリケーション名例)Amazon Web Services必須
アプリケーションの説明例)信頼性と拡張性に優れたクラウドコンピューティングサービス任意
アプリケーションロゴ(ファイルアップロード)任意
IDプロバイダの選択「アプリケーション専用のエンティティIDを利用」を選択必須
2. IIJ IDサービスのIDプロバイダ情報を確認する

1. 作成されたSAMLアプリケーションの「編集する」をクリックします。

2. 「IDプロバイダ情報」をクリックします。

3. 「メタデータ」の「ダウンロードする」をクリックし、IDプロバイダのメタデータをダウンロードします。

3. Amazon Web ServicesにIDプロバイダ情報を登録する

1. 「https://console.aws.amazon.com/iam」にAmazon Web Servicesの管理者アカウントとしてログインします。

2. 左ペインのメニューの「ID プロバイダー」をクリックします。

3. 「プロバイダの作成」をクリックします。

4. 「プロバイダーのタイプを選択する」をクリックし、「SAML」を選択します。

5. 以下のとおり設定し、「次のステップ」をクリックします。

項目内容備考
プロバイダ名例)IIJID任意の文字列
メタデータドキュメント

手順2-3でダウンロードしたIDプロバイダのメタデータをアップロード


6. 内容を確認し、「作成」をクリックします。

7. 作成した「プロパイダ」をクリックします。

8. 「プロパイダの ARN」の値を控えます。

4. Amazon Web Servicesでロールを作成する

1. 左ペインのメニューから「ロール」をクリックします。

2. 「ロールの作成」をクリックします。

3. 「信頼されたエンティティの種類を選択」の「SAML 2.0 フェデレーション」をクリックします。

4. 「SAML プロバイダー」を以下のとおり設定し、「次のステップ: アクセス権限」をクリックします。

項目内容
プロバイダ名手順3-5で入力した「プロパイダ名」を選択
「プログラムによるアクセスとAWS マネージメントコンソールによるアクセスを許可する」を選択
【参考】

条件指定が必要な場合は、製品マニュアルや販売元にご確認の上、設定してください。

5. 作成するロールに適切なポリシーを選択または新規作成し、「次のステップ: タグ」をクリックします。

【参考】

ポリシーの選択及び「アクセス権限の境界の設定」については、製品マニュアル及び販売元に確認してください。

6. 必要に応じてタグを追加し、「次のステップ: 確認」をクリックします。

7. 以下のとおり設定し、「ロールの作成」をクリックします。

項目内容備考
ロール名(任意の文字列)必須
ロールの説明(任意の文字列)任意

8. 作成した「ロール」をクリックします。

9. 「ロール 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>
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
</NameIDFormat>

 
 <NameIDFormat>
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
</NameIDFormat> 
 <NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
</NameIDFormat> 
 <NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
</NameIDFormat> 
 <NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
</NameIDFormat> 
 <NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
</NameIDFormat>
置換後<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
6. IIJ IDサービスのSAMLアプリケーションを設定する

1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。

2. SAMLアプリケーションの「編集する」をクリックします。

3. 「フェデレーション設定」をクリックします。

4. 以下のとおり設定し、「変更を適用する」をクリックします。

項目内容備考
SAML基本情報SPのメタデータをアップロードする「SPのメタデータをアップロードする」をチェック
SPメタデータ手順5-2で入手したSPのメタデータをアップロード


検証後の遷移先(RelayState)(空欄)
アプリケーションのトップページURL

(空欄)


アサーションの署名アルゴリズム例)
RSA-SHA256

ユーザ識別子(NameID)の指定関連付けるユーザ属性例)
ID

Amazon Web Servicesの各ユーザの「ユーザID」に値が格納されている属性を指定します。

属性値関連付け(ユーザ属性)https://aws.amazon.com/SAML/Attributes/Role

例)
Entitlements

タイプと一致する値を使用する
タイプ: aws_role

後述するAmazon Web Servicesに引き渡す値が格納されている属性を指定します。
https://aws.amazon.com/SAML/Attributes/RoleSessionName

例)
ID

Amazon Web Servicesの各ユーザの「ユーザID」に値が格納されている属性を指定します。

【参考】

「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「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)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
  • 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。

【参考】

  • 「属性値関連付け(ユーザ属性)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
  • 「属性値関連付け(ユーザ属性)」で複数値を持つ属性での指定する方法は以下のとおりです。
    例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「1234」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_Attr1」を指定します。
    • 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「multi1」、「multi2」のように複数の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_MultiAttr1」を指定します。

5. 「利用者設定」をクリックします。

6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。

【参考】

利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。

「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。

7. IIJ IDサービスの各ユーザの属性値を設定する

1. 手順6-4で「https://aws.amazon.com/SAML/Attributes/Role」の値にマッピングさせたIIJ IDサービスの各ユーザの属性値に以下の値を設定します。

以下の例では手順6-4の設定例にあわせて、Entitlements属性のタイプ名を「aws_role」として設定しています。

設定する値手順3-8で取得した「プロパイダの ARN」の後に手順4-9で取得した「ロール ARN」を「,(カンマ)」区切りで入力
arn:aws:iam::0123456789012:saml-provider/IIJID,arn:aws:iam::0123456789012:role/IIJID_SAML_SSO_Role