本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定驗證回SAML應的宣告
在您的組織中驗證使用者的身分後,外部身分識別提供者 (IdP) 會傳送驗證回應至的 AWS SAML端點。https://
對於潛在的列表 region-code
.signin.aws.amazon.com/samlregion-code
替換,請參閱AWS 登錄端點中的「區域」列。此響應是一個POST請求,其中包含一個SAML符合 SAML2.0 標準的HTTPPOST綁定
當 IdP 將包含聲明的響應發送到時 AWS,許多傳入的聲明映射到 AWS 上下文鍵。您可以使用Condition
元素在IAM原則中簽入這些前後關聯索引鍵。可用映射的清單將根據 將SAML屬性對應至 AWS 信任原則內容索引鍵 中所示。
Subject
與 NameID
下列的摘錄顯示了範例。用您自己的值替代標記值。同時包含 SubjectConfirmation
和 SubjectConfirmationData
屬性的 NotOnOrAfter
元素必須恰好具有一個 Recipient
元素。這些屬性包括必須與 AWS 端點相符的值https://
。對於可能的列表 region-code
.signin.aws.amazon.com/samlregion-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
。
PrincipalTag
SAML屬性
(選用) 您可以使用 Attribute
元素,並將 Name
屬性設為 https://aws.amazon.com/SAML/Attributes/PrincipalTag:
。此元素允許您將屬性作為SAML斷言中的會話標籤傳遞。如需有關工作階段標籤的詳細資訊,請參閱 在 中傳遞工作階段標籤 AWS STS。{TagKey}
若要將屬性做為工作階段標籤傳遞,請包含指定標籤值的 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。這就是所謂的角色鏈接。例如,若要將 Principal
和 CostCenter
標籤設為可轉移,請使用以下屬性來指定金鑰。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>CostCenter</AttributeValue> </Attribute>
Role
SAML屬性
您可以使用 Attribute
元素,將 Name
屬性設為 https://aws.amazon.com/SAML/Attributes/Role
。此元素包含一或多個元AttributeValue
素,這些元素列出了 IdP 對應使用者的IAM身分識別提供者和角色。IAM角色和IAM身分識別提供者會以逗號分隔的ARNs配對指定,格式與傳遞給RoleArn
和PrincipalArn
參數的格式相同。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>
RoleSessionName
SAML屬性
您可以使用 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>
SessionDuration
SAML屬性
(選用) 您可以使用 Attribute
元素,並將 Name
屬性設為 https://aws.amazon.com/SAML/Attributes/SessionDuration"
。此元素包含一個AttributeValue
元素,指定使用者在必須要求新的臨時認證 AWS Management Console 之前可以存取的時間長度。該值是一個表示工作階段秒數的整數。該值的範圍是 900 秒 (15 分鐘) 到 43200 秒 (12 小時)。如果此屬性不存在,則認證會持續一小時 (DurationSeconds
參數的預設值 AssumeRoleWithSAML
API)。
若要使用此屬性,您必須將提供SAML者設定為 AWS Management Console 透過主控台登入 Web 端點提供單一登入存取權https://
。對於可能的列表 region-code
.signin.aws.amazon.com/samlregion-code
值,請參閱AWS 登入端點中的 [區域] 欄。您可以選擇使用以下內容URL:https://signin.aws.amazon.com/static/saml
。請注意,此屬性只會將工作階段擴展到 AWS Management Console。它不能延長其他憑證的有效期。但是,如果它存在於AssumeRoleWithSAML
API呼叫中,則可以使用它來縮短會話的持續時間。呼叫傳回的憑證預設存留期是 60 分鐘。
另請注意,如果同時定義 SessionNotOnOrAfter
屬性,則兩個屬性的較小值 (SessionDuration
或 SessionNotOnOrAfter
) 將建立主控台工作階段的最長持續時間。
在啟用具有更長持續時間的主控台工作階段時,可能會導致憑證洩露的風險。為了減輕此風險,您可以在主控台的「角色摘要」頁面上選擇「撤銷工作階段」,立即停用任何角色的作用中IAM主控台工作階段。如需詳細資訊,請參閱 撤銷IAM角色暫時性安全登入。
重要
Name
標籤中 Attribute
屬性的值區分大小寫。必須精準設定為 https://aws.amazon.com/SAML/Attributes/SessionDuration
。
<Attribute Name="https://aws.amazon.com/SAML/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
SourceIdentity
SAML屬性
(選用) 您可以使用 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 屬性表格中,值可以輸入為字串或字串清單。對於字串值,您可以使用StringEquals
或StringLike
條件在IAM信任原則中測試這些值。對於包含字串清單的值,您可以使用 ForAnyValue
與 ForAllValues
政策集運算子來測試信任政策中的這些值。
注意
每個內容索引 AWS 鍵應該只包含一個宣告。如果包含多個聲明,將僅映射其中一個。
下表顯示 eduPerson 和 eduOrg 屬性。
eduPerson 或 eduOrg 屬性(Name 鍵) |
映射到此 AWS 上下文鍵(FriendlyName 鍵) |
類型 |
---|---|---|
|
|
字串清單 |
|
|
字串清單 |
|
|
字串 |
|
|
字串清單 |
|
|
字串 |
|
|
字串 |
|
|
字串清單 |
|
|
字串 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
下表顯示了活動目錄屬性。
AD 屬性 | 映射到此 AWS 上下文鍵 | Type |
---|---|---|
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
下表顯示 X.500 屬性。
X.500 屬性 | 映射到此 AWS 上下文鍵 | Type |
---|---|---|
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |