本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定身分驗證回應的SAML宣告
驗證組織中的使用者身分後,外部身分提供者 (IdP ) 會將身分驗證回應傳送至位於 的 AWS SAML端點https://
。如需潛在 region-code
.signin.aws.amazon.com/samlregion-code
替代,請參閱AWS 登入端點 中的區域欄。此回應是包含權杖的POST請求,該SAML權杖遵循 HTTP 2.0 SAML 標準的POST繫結
當 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/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
元素),並且可以包含多個角色提供者對。如果 元素包含多對,則系統會要求使用者選擇在使用 WebSSO 登入 時要擔任的角色 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 索引鍵) |
類型 |
---|---|---|
|
|
字串清單 |
|
|
字串清單 |
|
|
字串 |
|
|
字串清單 |
|
|
字串 |
|
|
字串 |
|
|
字串清單 |
|
|
字串 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
|
|
字串清單 |
下表顯示 Active Directory 屬性。
AD 屬性 | 對應至此 AWS 內容索引鍵 | Type |
---|---|---|
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
下表顯示 X.500 屬性。
X.500 屬性 | 對應至此 AWS 內容索引鍵 | Type |
---|---|---|
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |
|
|
字串 |