

# 認証レスポンス用の SAML アサーションを設定する
<a name="id_roles_providers_create_saml_assertions"></a>

組織内でユーザーの ID が確認すると、外部 ID プロバイダー (IdP) が AWS サインインエンドポイント URL に認証応答を送信します。このレスポンスは、[HTTP POST Binding for SAML 2.0](http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf) 標準に従った SAML トークンを含み、さらに以下の要素または*クレーム*を含む POST リクエストであることが必要です。これらのクレームを SAML 互換 IdP に設定します。これらのクレームの入力方法については、IdP のドキュメントを参照してください。

IdP が AWS へのクレームを含むレスポンスを送信すると、多くの受信クレームは AWS コンテキストキーにマッピングされます。これらのコンテキストキーは `Condition` 要素を使用して IAM ポリシーにチェックインすることができます。使用可能なマッピングの一覧は、「[SAML 属性の AWS 信頼ポリシーコンテキストキーへのマッピング](#saml-attribute-mapping)」に掲載されています。

## `Subject` および `NameID`
<a name="saml_subject-name-id"></a>

応答には、`NotOnOrAfter` 属性と `Recipient` 属性の両方を含む `SubjectConfirmationData` 要素を持つ `SubjectConfirmation` 要素が 1 つだけ含まれている必要があります。受取人属性には、AWS サインインエンドポイント URL に一致する値を含める必要があります。IdPによっては、この属性を `ACS`、`Recipient`、または `Target` と呼ぶことがあります。

SAML 暗号化が必要な場合、サインイン URL に SAML プロバイダーに割り当てる一意の識別子 AWS が含まれている必要があります。この識別子は ID プロバイダーの詳細ページで確認できます。次の例は、オプションの `region-code` を使用したサインイン URL 形式を示しています。

`https://region-code.signin.aws.amazon.com/saml`

次の例では、サインイン URL に一意の識別子が含まれているため、サインインパスに /acs/ を追加する必要があります。

`https://region-code.signin.aws.amazon.com/saml/acs/IdP-ID`

実行可能な *region-code* 値のリストについては、「[AWS サインインエンドポイント](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)」の **[Region]** (リージョン) 列を参照します。AWS 値には、グローバルサインインエンドポイント `https://signin.aws.amazon.com/saml` を使用することもできます。

`NameID` 要素は、永続的な値、一時的な値で構成することも、IdP ソリューションから提供される完全な URI で構成することもできます。永続的な値は、`NameID` の値がセッション間のユーザーでも同じになることを意味します。値が一時的な場合、ユーザーの `NameID` 値はセッションごとに異なります。シングルサインオン操作では、次の識別子タイプをサポートします。
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:transient`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName`
+ `urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos`
+ `urn:oasis:names:tc:SAML:2.0:nameid-format:entity`

例を以下に示します。マークされた値を独自の値に置き換えます。

```
<Subject>
  <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">_cbb88bf52c2510eabe00c1642d4643f41430fe25e3</NameID>
  <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
    <SubjectConfirmationData NotOnOrAfter="2013-11-05T02:06:42.876Z" Recipient="https://region-code.signin.aws.amazon.com/saml/SAMLSP4SHN3UIS2D558H46"/>
  </SubjectConfirmation>
</Subject>
```

**重要**  
`saml:aud` コンテキストキーは SAML 受取人属性から取得します。この属性は、SAML バージョンの OIDC オーディエンスフィールドと言えるものだからです (例えば、`accounts.google.com:aud`)。

## `PrincipalTag` SAML 属性
<a name="saml_role-session-tags"></a>

（オプション） `Name` 属性が `https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}` に設定された `Attribute` 要素を使用できます。この要素を使用すると、SAML アサーションでセッションタグとして属性を渡すことができます。セッションタグの詳細については、「[AWS STS でセッションタグを渡します](id_session-tags.md)」を参照してください。

属性をセッションタグとして渡すには、タグの値を指定する `AttributeValue` 要素を含めます。たとえば、タグのキーバリューのペア `Project` = `Marketing` と `CostCenter` = `12345` を渡すには、次の属性を使用します。タグごとに個別の `Attribute` 要素を含めます。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project">
  <AttributeValue>Marketing</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter">
  <AttributeValue>12345</AttributeValue>
</Attribute>
```

上記のタグを推移的として設定するには、`Attribute` 属性を `Name` に設定した別の `https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys` 要素を含めます。これは、セッションタグを推移的として設定するオプションの多値属性です。推移タグは、SAML セッションを使用して AWS で別のロールを引き受けるときに保持されます。これは、[ロールの連鎖](id_roles.md#iam-term-role-chaining)と呼ばれます。たとえば、`Principal` タグ と `CostCenter` タグの両方を推移的として設定するには、次の属性を使用してキーを指定します。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>Project</AttributeValue>
  <AttributeValue>CostCenter</AttributeValue>
</Attribute>
```

## `Role` SAML 属性
<a name="saml_role-attribute"></a>

`Name` 属性が `https://aws.amazon.com/SAML/Attributes/Role` に設定された `Attribute` 要素を使用できます。この要素には、IdP によってユーザーがマッピングされている IAM SAML ID プロバイダーおよびロールおよびを一覧表示する `AttributeValue` 要素が 1 つ以上含まれます。IAM ロールと IAM ID プロバイダーは、[AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)に渡される `RoleArn` パラメーターと `PrincipalArn` パラメーターと同じ形式でコンマ区切りの ARN のペアとして指定されます。この要素には、少なくとも 1 つのロールとプロバイダーのペア（`AttributeValue` 要素）を含める必要があり、複数のペアを含めることができます。要素に複数のペアを含める場合、ユーザーが WebSSO を使用して AWS マネジメントコンソール にサインインすると、引き受けるロールを選択する画面が表示されます。

**重要**  
`Name` タグの `Attribute` 属性の値は大文字と小文字が区別されます。これは厳密に `https://aws.amazon.com/SAML/Attributes/Role` に設定する必要があります。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role">
  <AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
  <AttributeValue>arn:aws:iam::account-number:role/role-name2,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
  <AttributeValue>arn:aws:iam::account-number:role/role-name3,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>
</Attribute>
```

## `RoleSessionName` SAML 属性
<a name="saml_role-session-attribute"></a>

`Name` 属性が `https://aws.amazon.com/SAML/Attributes/RoleSessionName` に設定された `Attribute` 要素を使用できます。この要素には、ロールが引き継がれたときに発行される一時的な認証情報の識別子を提供する `AttributeValue` 要素が1つ含まれています。これを使用して、アプリケーションを使用しているユーザーに一時的な認証情報を関連付けることができます。この要素は、AWS マネジメントコンソールでユーザー情報を表示するときに使用されます。`AttributeValue` 要素の値は 2～64 文字で、英数字、アンダースコア、および **. , \$1 = @ -** (ハイフン).のみを含めることができます。スペースを含めることはできません。通常、この値はユーザー ID (`john`) またはメールアドレス (`johndoe@example.com`) です。ユーザーの表示名 (`John Doe`) のように、スペースを含む値とすることはできません。

**重要**  
`Name` タグの `Attribute` 属性の値は大文字と小文字が区別されます。これは厳密に `https://aws.amazon.com/SAML/Attributes/RoleSessionName` に設定する必要があります。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName">
  <AttributeValue>user-id-name</AttributeValue>
</Attribute>
```

## `SessionDuration` SAML 属性
<a name="saml_role-session-duration"></a>

（オプション） `Name` 属性が `https://aws.amazon.com/SAML/Attributes/SessionDuration` に設定された `Attribute` 要素を使用できます。この要素には、ユーザーが新しい一時的な認証情報をリクエストする前に、ユーザーが AWS マネジメントコンソール にアクセスできる時間を指定する 1 つの `AttributeValue` 要素が含まれます。値は、セッションの秒数を表す整数です。値の範囲は 900 秒 (15 分) から 43200 秒 (12 時間) です。この属性が存在しない場合は、認証情報は 1 時間有効です (`DurationSeconds` API の `AssumeRoleWithSAML` パラメータのデフォルト値)。

この属性を使用するには、AWS マネジメントコンソール でコンソールのサインインウェブエンドポイントを通じて `https://region-code.signin.aws.amazon.com/saml` へのシングルサインオンアクセスを提供する SAML プロバイダーを設定する必要があります。実行可能な *region-code* 値のリストについては、「[AWS サインインエンドポイント](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)」の **[Region]** (リージョン) 列を参照します。任意で次のURL `https://signin.aws.amazon.com/static/saml` が使用できます。この属性が AWS マネジメントコンソール にのみセッションを拡張することに注意してください。他の認証情報の存続期間を延長することはできません。ただし、`AssumeRoleWithSAML` API コール中に存在する場合は、セッション期間を*短縮*するために使用できます。呼び出しによって返される認証情報のデフォルトの有効期間は 60 分です。

また、`SessionNotOnOrAfter` 属性も定義されている場合は、2つの属性の***小さい方***の値、`SessionDuration` または `SessionNotOnOrAfter` がコンソールセッションの最大期間を確立することにも注意してください。

コンソールセッションを拡張された期間有効にする場合、認証情報が侵害されるリスクが高まります。このリスクを軽減するには、IAM コンソールの [**Role Summary**] ページで、[**Revoke Sessions**] を選択して、どのロールのアクティブなコンソールセッションもすぐに無効にできます。詳細については、「[IAM ロールの一時的なセキュリティ認証情報を取り消す](id_roles_use_revoke-sessions.md)」を参照してください。

**重要**  
`Name` タグの `Attribute` 属性の値は大文字と小文字が区別されます。これは厳密に `https://aws.amazon.com/SAML/Attributes/SessionDuration` に設定する必要があります。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration">
  <AttributeValue>1800</AttributeValue>
</Attribute>
```

## `SourceIdentity` SAML 属性
<a name="saml_sourceidentity"></a>

（オプション） `Name` 属性が `https://aws.amazon.com/SAML/Attributes/SourceIdentity` に設定された `Attribute` 要素を使用できます。この要素には、1 つのIAM ロールを使用しているユーザーまたはアプリケーションの識別子を提供する `AttributeValue` 要素が含まれています。SAML セッションを使用して、[ロールチェーン](id_roles.md#iam-term-role-chaining)と呼ばれる AWS の別のロールを引き受ける場合、ソースIDの値は保持されます。ソース ID の値は、ロールセッション中に実行されるすべてのアクションのリクエストに存在します。設定される値は、ロールセッション中に変更できません。その後、管理者は AWS CloudTrail ログを使用して、ソース ID 情報をモニタリングおよび監査し、共有ロールでアクションを実行したユーザーを特定します。

`AttributeValue` 要素の値は 2～64 文字で、英数字、アンダースコア、および **. , \$1 = @ -** (ハイフン).のみを含めることができます。スペースを含めることはできません。値は通常、ユーザーID（`john`）やメールアドレス（`johndoe@example.com`）など、ユーザーに関連付けられている属性です。ユーザーの表示名 (`John Doe`) のように、スペースを含む値とすることはできません。ソースアイデンティティの使用の詳細については、「[引き受けたロールで実行されるアクションのモニタリングと制御](id_credentials_temp_control-access_monitor.md)」を参照してください。

**重要**  
SAML アサーションが [`SourceIdentity`](#saml_sourceidentity) 属性を使用するように設定されている場合、信頼ポリシーにも `sts:SetSourceIdentity` アクションを含める必要があります。ソースアイデンティティの使用の詳細については、「[引き受けたロールで実行されるアクションのモニタリングと制御](id_credentials_temp_control-access_monitor.md)」を参照してください。

ソース ID 属性を渡すには、ソース ID の値を指定する `AttributeValue` 要素を含めます。たとえば、ソース ID `Diego` を渡すには次の属性を使用します。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SourceIdentity">
  <AttributeValue>Diego</AttributeValue>
```

## SAML 属性の AWS 信頼ポリシーコンテキストキーへのマッピング
<a name="saml-attribute-mapping"></a>

このセクションの表では、よく使用される SAML 属性や、それらと AWS の信頼ポリシー条件コンテキストキーのマッピングを一覧で示します。これらのキーを使用して、ロールへのアクセスを制御できます。そのためには、SAML アクセスリクエストに付随するアサーションに含まれる値とキーを比較します。

**重要**  
これらのキーは、IAM 信頼ポリシー (誰がロールを利用するかを定義するポリシー) でのみ利用でき、アクセス許可ポリシーには適用できません。

eduPerson および eduOrg 属性の表では、値は文字列または文字列のリストとして型付けされています。文字列値の場合、`StringEquals` または `StringLike` 条件を使用して、IAM 信頼ポリシーでこれらの値をテストできます。文字列のリストを含む値の場合、`ForAnyValue` および `ForAllValues` [ポリシー set 演算子](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys)を使用して、信頼ポリシーで値をテストできます。

**注記**  
AWS コンテキストキーごとに含めることができるクレームは 1 つだけです。複数含めた場合は、1 つのクレームのみが対応付けられます。

次の表は、eduPerson 属性と eduOrg 属性を示しています。


| eduPerson 属性または eduOrg 属性 (`Name` キー) | この AWS コンテキストキー (`FriendlyName` キー) へのマッピング | タイプ | 
| --- | --- | --- | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.1`   |   `eduPersonAffiliation`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.2`   |   `eduPersonNickname`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.3`   |   `eduPersonOrgDN`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.4`   |   `eduPersonOrgUnitDN`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.5`   |   `eduPersonPrimaryAffiliation`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.6`   |   `eduPersonPrincipalName`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.7`   |   `eduPersonEntitlement`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.8`   |   `eduPersonPrimaryOrgUnitDN`   |  String  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.9`   |   `eduPersonScopedAffiliation`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.10`   |   `eduPersonTargetedID`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.1.1.11`   |   `eduPersonAssurance`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.2`   |   `eduOrgHomePageURI`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.3`   |   `eduOrgIdentityAuthNPolicyURI`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.4`   |   `eduOrgLegalName`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.5`   |   `eduOrgSuperiorURI`   |  文字列のリスト  | 
|   `urn:oid:1.3.6.1.4.1.5923.1.2.1.6`   |   `eduOrgWhitePagesURI`   |  文字列のリスト  | 
|   `urn:oid:2.5.4.3`   |   `cn`   |  文字列のリスト  | 

次の表は、Active Directory 属性を示しています。


| AD 属性 | この AWS コンテキストキーへのマッピング | タイプ | 
| --- | --- | --- | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`  |  `name`  |  文字列  | 
|  `http://schemas.xmlsoap.org/claims/CommonName`  |  `commonName`  |  文字列  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname`  |  `givenName`  |  文字列  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname`  |  `surname`  |  文字列  | 
|  `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`  |  `mail`  |  文字列  | 
|  `http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid`  |  `uid`  |  String  | 

次の表は、X.500 属性を示しています。


| X.500 属性 | この AWSコンテキストキーへのマッピング | タイプ | 
| --- | --- | --- | 
|  `2.5.4.3`  |  `commonName`  |  文字列  | 
|  `2.5.4.4`  |  `surname`  |  文字列  | 
|  `2.4.5.42`  |  `givenName`  |  文字列  | 
|  `2.5.4.45`  |  `x500UniqueIdentifier`  |  文字列  | 
|  `0.9.2342.19200300100.1.1`  |  `uid`  |  文字列  | 
|  `0.9.2342.19200300100.1.3`  |  `mail`  |  文字列  | 
|  `0.9.2342.19200300.100.1.45`  |  `organizationStatus`  |  String  | 