メニュー
AWS Identity and Access Management
ユーザーガイド

認証レスポンスの SAML アサーションを設定する

組織内でユーザーの ID が確認されたら、IdP は AWS SAML エンドポイント(https://signin.aws.amazon.com/saml)に認証レスポンスを送信します。このレスポンスは、HTTP POST Binding for SAML 2.0 標準に従った SAML トークンを含み、さらに以下の要素またはクレームを含む POST リクエストでなくてはいけません。これらのクレームを SAML 互換 IdP に設定します。これらのクレームの入力方法については、IdP の文書を参照してください。

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

Subject および NameID

例を以下に示します。マークされた値を独自の値に置き換えます。1 つの SubjectConfirmation 要素は、SubjectConfirmationData 要素を持ち、NotOnOrAfter 属性と Recipient 属性の両方を含み、その属性値は、次の例に示すように AWS エンドポイント (https://signin.aws.amazon.com/saml) に一致する必要があります。シングルサインオンのやり取りでサポートされている名前の識別子の形式については、Oracle Sun OpenSSO エンタープライズ管理リファレンスを参照してください。

Copy
<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://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>
AudienceRestriction および Audience

セキュリティ上の理由から、IdP が AWS に送信する SAML アサーションに AWS を対象者として含める必要があります。したがって、Audience 要素の値は、https://signin.aws.amazon.com/saml または urn:amazon:webservices のどちらかと一致する必要があります。AWS はこの値を自動的にテストし、適用します。SAML アサーションからの次のサンプル XML スニペットは、このキーを IdP で指定する方法と、有効な両方の値を示します。1 つのみを含める必要があります。

Copy
<Conditions> <AudienceRestriction> <Audience>https://signin.aws.amazon.com/saml</Audience> <Audience>urn:amazon:webservices</Audience> </AudienceRestriction> </Conditions>

重要

IdP からの SAML アサーションの SAML AudienceRestriction 値は、IAM ポリシーでテストできる saml:aud コンテキストキーにはマッピングされません。代わりに、SAML の受信者属性から saml:aud コンテキストキーがマッピングされます。これは、accounts.google.com:aud など、OIDC の [audience] フィールドに等しい SAML であるためです。

Name 属性が https://aws.amazon.com/SAML/Attributes/Role に設定された Attribute 要素

この要素は、1 つ以上の AttributeValue 要素を含み、IdP によってユーザーがマッピングされている IAM ロールおよび SAML ID プロバイダーを列挙します。ロールと ID プロバイダーは、カンマ区切りの ARN ペアとして指定します。このときの形式は、AssumeRoleWithSAML に渡す RoleArn および PrincipalArn パラメータで使用する形式と同じです。この要素には、最低 1 つのロールとプロバイダーのペア (最低 1 つの AttributeValue 要素) を含める必要があり、複数のペアを含めることができます。要素に複数のペアを含める場合、ユーザーが WebSSO を使用して AWS マネジメントコンソールにサインインすると、引き受けるロールを選択する画面が表示されます。

重要

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

Copy
<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>
Name 属性が https://aws.amazon.com/SAML/Attributes/RoleSessionName に設定された Attribute 要素

この要素には、SSO 用に発行され、AWS マネジメントコンソールでユーザー情報を表示するときに使用される一時的な AWS 認証情報用の識別子を提供する 1 つの AttributeValue 要素が含まれます。AttributeValue 要素の値は 2~64 文字で、英数字、アンダースコア、および + (プラス記号)、= (等号)、, (カンマ)、. (ピリオド)、@ (アットマーク)、および - (ハイフン) のみを含めることができます。スペースを含めることはできません。通常、この値はユーザー ID (bobsmith) またはメールアドレス (bobsmith@example.com) です。ユーザーの表示名 (Bob Smith) のように、スペースを含む値とすることはできません。

重要

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

Copy
<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>
SessionDuration 属性が https://aws.amazon.com/SAML/Attributes/SessionDuration に設定された、オプションの Attribute 要素

この要素には、ユーザーが新しい一時的な認証情報をリクエストする前に、ユーザーが AWS マネジメントコンソール にアクセスできる最大時間を指定する 1 つの AttributeValue 要素が含まれます。 値は秒数で表された整数で、最大 43200 秒 (12 時間) です。 この属性が存在しない場合は、最大のセッション有効期間はデフォルトで 1 時間に設定されます (AssumeRoleWithSAML API の DurationSeconds パラメーターのデフォルト値)。 この属性を使用するには、https://signin.aws.amazon.com/saml でコンソールのサインインウェブエンドポイントを通じて AWS マネジメントコンソール へのシングルサインオンアクセスを提供する SAML プロバイダーを設定する必要があります。 この属性が AWS マネジメントコンソール にのみセッションを拡張することに注意してください。 他の認証情報の存続期間を延長することはできません。 ただし、AssumeRoleWithSAML API コール内に存在する場合、デフォルトの 60 分未満の呼び出しによって返される、認証情報の存続期間を短縮するために使用できます。

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

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

重要

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

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

SAML 属性の AWS 信頼ポリシーコンテキストキーへのマッピング

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

重要

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

eduPerson および eduOrg 属性の表では、値は文字列または文字列のリストとして型付けされています。文字列値の場合、StringEquals または StringLike 条件を使用して、IAM 信頼ポリシーでこれらの値をテストできます。 文字列のリストを含む値の場合、ForAnyValue および ForAllValues ポリシーセット演算子を使用して、信頼ポリシーで値をテストできます。

注記

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

文字列

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

文字列

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

文字列

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

文字列

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

文字列

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

文字列