設定驗證回SAML應的宣告 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定驗證回SAML應的宣告

在您的組織中驗證使用者的身分後,外部身分識別提供者 (IdP) 會傳送驗證回應至的 AWS SAML端點。https://region-code.signin.aws.amazon.com/saml對於潛在的列表 region-code 替換,請參閱AWS 登錄端點中的「區域」列。此響應是一個POST請求,其中包含一個SAML符合 SAML2.0 標準的HTTPPOST綁定並包含以下元素或聲明的令牌。您可以在SAML相容的 IdP 中設定這些宣告。請參考 IdP 文件,以了解有關如何輸入這些聲明的說明。

當 IdP 將包含聲明的響應發送到時 AWS,許多傳入的聲明映射到 AWS 上下文鍵。您可以使用Condition元素在IAM原則中簽入這些前後關聯索引鍵。可用映射的清單將根據 將SAML屬性對應至 AWS 信任原則內容索引鍵 中所示。

SubjectNameID

下列的摘錄顯示了範例。用您自己的值替代標記值。同時包含 SubjectConfirmationSubjectConfirmationData 屬性的 NotOnOrAfter 元素必須恰好具有一個 Recipient 元素。這些屬性包括必須與 AWS 端點相符的值https://region-code.signin.aws.amazon.com/saml。對於可能的列表 region-code 值,請參閱AWS 登入端點中的 [區域] 欄。對於 AWS 值,您也可以使用https://signin.aws.amazon.com/static/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://signin.aws.amazon.com/saml"/> </SubjectConfirmation> </Subject>
重要

saml:aud前後關聯索引鍵來自SAML收件者屬性,因為它SAML相當於對OIDC象欄位,例如,accounts.google.com:aud

PrincipalTagSAML屬性

(選用) 您可以使用 Attribute 元素,並將 Name 屬性設為 https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}。此元素允許您將屬性作為SAML斷言中的會話標籤傳遞。如需有關工作階段標籤的詳細資訊,請參閱 在 中傳遞工作階段標籤 AWS STS

若要將屬性做為工作階段標籤傳遞,請包含指定標籤值的 AttributeValue 元素。例如,若要傳遞標籤金鑰/值對 Project = MarketingCostCenter = 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。這就是所謂的角色鏈接。例如,若要將 PrincipalCostCenter 標籤設為可轉移,請使用以下屬性來指定金鑰。

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

RoleSAML屬性

您可以使用 Attribute 元素,將 Name 屬性設為 https://aws.amazon.com/SAML/Attributes/Role。此元素包含一或多個元AttributeValue素,這些元素列出了 IdP 對應使用者的IAM身分識別提供者和角色。IAM角色和IAM身分識別提供者會以逗號分隔的ARNs配對指定,格式與傳遞給RoleArnPrincipalArn參數的格式相同。AssumeRoleWithSAML此元素必須包含至少一個角色提供者對 (AttributeValue 元素),並且可以包含多個角色提供者對。如果元素包含多個配對,則使用者在使用 Web 登入時,系統會要求使用者選擇SSO要承擔的角色 AWS Management Console。

重要

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>

RoleSessionNameSAML屬性

您可以使用 Attribute 元素,將 Name 屬性設為 https://aws.amazon.com/SAML/Attributes/RoleSessionName。此元素包含一個為暫時憑證提供識別符的 AttributeValue 元素,而這些憑證是在擔任角色時所發出。您可以使用此功能將臨時憑證與正在使用應用程式的使用者建立關聯。此元素用於在中顯示使用者資訊 AWS Management Console。AttributeValue 元素中的值長度必須介於 2 到 64 個字元之間,只能包含字母數位字元、底線和以下字元:. , + = @ - (連字號)。其中不可含有空格。該值通常是使用者 ID (johndoe) 或電子郵件地址 (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>

SessionDurationSAML屬性

(選用) 您可以使用 Attribute 元素,並將 Name 屬性設為 https://aws.amazon.com/SAML/Attributes/SessionDuration"。此元素包含一個AttributeValue元素,指定使用者在必須要求新的臨時認證 AWS Management Console 之前可以存取的時間長度。該值是一個表示工作階段秒數的整數。該值的範圍是 900 秒 (15 分鐘) 到 43200 秒 (12 小時)。如果此屬性不存在,則認證會持續一小時 (DurationSeconds參數的預設值 AssumeRoleWithSAMLAPI)。

若要使用此屬性,您必須將提供SAML者設定為 AWS Management Console 透過主控台登入 Web 端點提供單一登入存取權https://region-code.signin.aws.amazon.com/saml。對於可能的列表 region-code 值,請參閱AWS 登入端點中的 [區域] 欄。您可以選擇使用以下內容URL:https://signin.aws.amazon.com/static/saml。請注意,此屬性只會將工作階段擴展到 AWS Management Console。它不能延長其他憑證的有效期。但是,如果它存在於AssumeRoleWithSAMLAPI呼叫中,則可以使用它來縮短會話的持續時間。呼叫傳回的憑證預設存留期是 60 分鐘。

另請注意,如果同時定義 SessionNotOnOrAfter 屬性,則兩個屬性的較小值 (SessionDurationSessionNotOnOrAfter) 將建立主控台工作階段的最長持續時間。

在啟用具有更長持續時間的主控台工作階段時,可能會導致憑證洩露的風險。為了減輕此風險,您可以在主控台的「角色摘要」頁面上選擇「撤銷工作階段」,立即停用任何角色的作用中IAM主控台工作階段。如需詳細資訊,請參閱 撤銷IAM角色暫時性安全登入

重要

Name 標籤中 Attribute 屬性的值區分大小寫。必須精準設定為 https://aws.amazon.com/SAML/Attributes/SessionDuration

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

SourceIdentitySAML屬性

(選用) 您可以使用 Attribute 元素,並將 Name 屬性設為 https://aws.amazon.com/SAML/Attributes/SourceIdentity。此元素包含一個AttributeValue元素,可為使用IAM角色的人員或應用程式提供識別碼。當您使用SAML工作階段在 AWS 稱為角色鏈結中擔任另一個角色時,來源識別的值仍然存在。針對在角色工作階段期間所採取的每個動作,來源身分的值會出現在請求中。設定的值無法在角色工作階段期間變更。然後,系統管理員可以使用 AWS CloudTrail 記錄來監視和稽核來源身分識別資訊,以決定誰使用共用角色執行動作。

AttributeValue 元素中的值長度必須介於 2 到 64 個字元之間,只能包含字母數位字元、底線和以下字元:. , + = @ - (連字號)。其中不可含有空格。此值通常是與使用者相關聯的屬性,例如使用者 ID (johndoe) 或電子郵件地址 (johndoe@example.com)。該值不應包含空格,如使用者的顯示名稱 (John Doe)。如需有關使用來源身分的詳細資訊,請參閱 監控並控制使用擔任角色所採取的動作

重要

如果您的SAML宣告設定為使用SourceIdentity屬性,則您的角色信任原則也必須包含sts:SetSourceIdentity動作,否則假設角色作業將會失敗。如需有關使用來源身分的詳細資訊,請參閱 監控並控制使用擔任角色所採取的動作

若要傳遞來源身分屬性,請包含指定來源身分值的 AttributeValue 元素。例如,若要傳遞來源身分 DiegoRamirez,請使用下列屬性。

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

將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

字串清單

下表顯示了活動目錄屬性。

AD 屬性 映射到此 AWS 上下文鍵 Type

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 上下文鍵 Type

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

字串