AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

为身份验证响应配置 SAML 断言

在您的组织中,验证完用户的身份后,IdP 将向 https://signin.aws.amazon.com/saml 上的 AWS SAML 终端节点发送身份验证响应。此响应是一个包含 SAML 令牌的 POST 请求,该令牌遵循适用于 SAML 2.0 的 HTTP POST 绑定标准,其中包含以下元素或断言。您可在与 SAML 兼容的 IdP 中配置这些断言。请参考 IdP 文档,以了解有关如何输入这些断言的说明。

在 IdP 将包含断言的响应发送到 AWS 时,很多传入断言将映射到 AWS 上下文键。可以在 IAM 策略中使用 Condition 元素检查这些上下文键。可用映射的列表如将 SAML 属性映射到 AWS 信任策略上下文键部分中所示。

SubjectNameID

以下摘录显示了一个示例。用您自己的值替代标记值。同时包含 NotOnOrAfterRecipient 属性的 SubjectConfirmationData 元素必须恰好具有一个 SubjectConfirmation 元素。这些属性包含的值必须与 AWS 终端节点 (https://signin.aws.amazon.com/saml) 匹配,如以下示例中所示。有关支持用于单一登录交互的名称标识符格式的信息,请参阅 Oracle Sun OpenSSO Enterprise 管理参考

<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>
AudienceRestrictionAudience

出于安全原因,AWS 必须作为受众包含在由您的 IdP 发送到 AWS 的 SAML 断言中。因此,Audience 元素的值应与以下两个值之一匹配:https://signin.aws.amazon.com/samlurn:amazon:webservices。以下 SAML 断言中的示例 XML 代码段展示了 IdP 如何指定此密钥。包括适用于您的使用案例的示例。

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

重要

来自 IdP 的 SAML 断言中的 AudienceRestriction 会映射到您可在 IAM 策略中测试的 saml:aud 上下文键。相反,saml:aud 上下文键来自 SAML recipient 属性,因为等同于 OIDC 受众字段 (例如 accounts.google.com:aud) 的 SAML。

Name 属性设置为 https://aws.amazon.com/SAML/Attributes/RoleAttribute 元素

此元素包含一个或多个 AttributeValue 元素,这些元素可列出用户通过 IdP 映射到的 IAM 角色和 SAML 身份提供商。该角色和身份提供商被指定为逗号分隔的 ARN 对,所采用的格式与传递到 AssumeRoleWithSAMLRoleArnPrincipalArn 参数的格式相同。此元素必须包含至少一个角色-提供商对 (即至少一个 AttributeValue 元素),并且可以包含多个角色-提供商对。如果该元素包含多个角色-提供商对,则用户将需要选择其使用 WebSSO 登录 AWS 管理控制台时要担任的角色。

重要

Attribute 标签中 Name 属性的值区分大小写。必须将其一字不差地设置为 https://aws.amazon.com/SAML/Attributes/Role

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> <AttributeValue>arn:aws-cn:iam::account-number:role/role-name1,arn:aws-cn:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws-cn:iam::account-number:role/role-name2,arn:aws-cn:iam::account-number:saml-provider/provider-name</AttributeValue> <AttributeValue>arn:aws-cn:iam::account-number:role/role-name3,arn:aws-cn:iam::account-number:saml-provider/provider-name</AttributeValue> </Attribute>
Name 属性设置为 https://aws.amazon.com/SAML/Attributes/RoleSessionNameAttribute 元素

该元素包含一个为 AWS 临时凭证提供标识符的 AttributeValue 元素,这些凭证是针对 SSO 颁发的。该元素用于在 AWS 管理控制台中显示用户信息。AttributeValue 元素中的值长度必须介于 2 到 64 个字符之间,只能包含字母数字字符、下划线和以下字符:+ (加号)、= (等号)、 (逗号)、. (句点)、@- (连字符)。它不能含有空格。该值通常是用户 ID (bobsmith) 或电子邮件地址 (bobsmith@example.com)。该值不应包含空格,如用户的显示名称 (Bob Smith)。

重要

Attribute 标签中 Name 属性的值区分大小写。必须将其一字不差地设置为 https://aws.amazon.com/SAML/Attributes/RoleSessionName

<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>
一个可选 Attribute 元素,其 SessionDuration 属性设置为 https://aws.amazon.com/SAML/Attributes/SessionDuration

该元素包含一个 AttributeValue 元素,它指定用户在必须请求新的临时凭证之前可访问 AWS 管理控制台的时间长度。该值是一个表示会话秒数的整数。该值的范围是 900 秒 (15 分钟) 到 43200 秒 (12 小时)。如果该属性不存在,则凭证持续时间为 1 小时 (AssumeRoleWithSAML API 的 DurationSeconds 参数的默认值)。

要使用此属性,您必须配置 SAML 提供商,以通过 https://signin.aws.amazon.com/saml 上的控制台登录 Web 终端节点来提供对 AWS 管理控制台的单一登录访问权限。请注意,此属性仅将会话扩展到 AWS 管理控制台。它不能延长其他凭证的有效期。不过,如果它在 AssumeRoleWithSAML API 调用中存在,则可用于将调用返回的凭证的有效期缩短 至一个小于默认值 (60 分钟) 的值。

另请注意,如果还定义了 SessionNotOnOrAfter 属性,则两个属性的较小 值 (SessionDurationSessionNotOnOrAfter) 将建立控制台会话的最大持续时间。

在启用具有更长持续时间的控制台会话时,可能产生凭证外泄的风险。为了帮助您减轻此风险,您可以通过选择 IAM 控制台中的 Role Summary 页面上的 Revoke Sessions,来立即禁用任何角色的有效控制台会话。有关更多信息,请参阅 撤销 IAM 角色临时安全凭证

重要

Attribute 标签中 Name 属性的值区分大小写。必须将其一字不差地设置为 https://aws.amazon.com/SAML/Attributes/SessionDuration

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

将 SAML 属性映射到 AWS 信任策略上下文键

本部分中的表列出了常用的 SAML 属性以及它们在 AWS 中映射到信任策略条件上下文键的方式。可以使用这些键控制对角色的访问,方式是根据访问角色的 SAML 请求附带的断言中包含的值来评估这些键。

重要

这些键仅在 IAM 信任策略 (可决定谁能代入角色的策略) 中可用,并且不适用于权限策略。

在 eduPerson 和 eduOrg 属性表中,值是以字符串或字符串列表的形式键入的。对于字符串值,您可以使用 StringEqualsStringLike 条件测试 IAM 信任策略中的这些值。对于包含字符串列表的值,您可以使用 ForAnyValueForAllValues 策略集运算符测试信任策略中的这些值。

注意

每个 AWS 上下文键只能包含一个断言。如果包含多个断言,将仅映射其中一个。

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

String

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname

givenName

String

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname

surname

String

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

mail

String

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

String

2.4.5.42

givenName

String

2.5.4.45

x500UniqueIdentifier

String

0.9.2342.19200300100.1.1

uid

String

0.9.2342.19200300100.1.3

mail

String

0.9.2342.19200300.100.1.45

organizationStatus

字符串