Configurer les SAML assertions pour la réponse d'authentification - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer les SAML assertions pour la réponse d'authentification

Après avoir vérifié l'identité d'un utilisateur dans votre organisation, le fournisseur d'identité externe (IdP) envoie une réponse d'authentification au point de AWS SAML terminaison à l'adresse. https://region-code.signin.aws.amazon.com/saml Pour une liste de potentiels region-code remplacements, voir la colonne Région dans les points de terminaison de AWS connexion. Cette réponse est une POST demande qui inclut un SAML jeton conforme à la norme HTTPPOSTBinding for SAML 2.0 et qui contient les éléments ou affirmations suivants. Vous configurez ces revendications dans votre SAML IdP compatible. Pour obtenir des instructions sur la procédure visant à entrer ces demandes, consultez la documentation de votre IdP.

Lorsque l'IdP envoie la réponse contenant les demandes à AWS, de nombreuses demandes entrantes sont associées à des clés de AWS contexte. Ces clés contextuelles peuvent être vérifiées dans IAM les politiques à l'aide de l'Conditionélément. Pour obtenir une liste des mappages disponibles, consultez la section Associer SAML des attributs à des clés contextuelles de politique de AWS confiance.

Subject et NameID

L'extrait suivant en présente un exemple. Substituez vos propres valeurs avec les valeurs marquées. Il doit y avoir exactement 1 élément SubjectConfirmation avec un élément SubjectConfirmationData comprenant à la fois l'attribut NotOnOrAfter et un attribut Recipient. Ces attributs incluent une valeur qui doit correspondre au AWS point de terminaisonhttps://region-code.signin.aws.amazon.com/saml. Pour une liste des possibilités region-code valeurs, voir la colonne Région dans les points de terminaison de AWS connexion. Pour la AWS valeur, vous pouvez également utiliserhttps://signin.aws.amazon.com/static/saml, comme indiqué dans l'exemple suivant.

NameIDles éléments peuvent avoir la valeur persistante, transitoire ou être constitués du format URI complet fourni par la solution IdP. La valeur persistante indique que la valeur dans NameID reste la même pour l'utilisateur entre les sessions. Si la valeur est transitoire, l'utilisateur a une valeur NameID différente pour chaque session. Les interactions avec authentification unique prennent en charge les types d'identifiants suivants :

  • 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>
Important

La clé de saml:aud contexte provient de l'attribut SAML recipient car elle est l'SAMLéquivalent du champ d'OIDCaudience, par exempleaccounts.google.com:aud.

PrincipalTagSAMLattribut

(Facultatif) Vous pouvez utiliser un élément Attribute dont l'attribut Name est défini sur https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Cet élément vous permet de transmettre des attributs sous forme de balises de session dans l'SAMLassertion. Pour de plus amples informations sur les balises de session, veuillez consulter Transmettez les tags de session AWS STS.

Pour transmettre des attributs en tant que balises de session, incluez l'élément AttributeValue qui spécifie la valeur de la balise. Par exemple, pour transmettre les paires clé-valeur de balise Project = Marketing et CostCenter = 12345, utilisez l'attribut suivant. Incluez un élément Attribute distinct pour chaque balise.

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

Pour définir les balises ci-dessus comme transitives, incluez un autre élément Attribute dont l'attribut Name est défini sur https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys. Il s'agit d'un attribut facultatif à valeurs multiples qui définit vos balises de session comme transitives. Les balises transitives persistent lorsque vous utilisez la SAML session pour y assumer un autre rôle. AWS Ceci est connu sous le nom de chaînage de rôles. Par exemple, pour définir les balises Principal et CostCenter comme transitives, utilisez l'attribut suivant pour spécifier les clés.

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

RoleSAMLattribut

Vous pouvez utiliser un élément Attribute avec l'attribut Name défini sur https://aws.amazon.com/SAML/Attributes/Role Cet élément contient un ou plusieurs AttributeValue éléments qui répertorient le fournisseur IAM d'identité et le rôle auxquels l'utilisateur est mappé par votre IdP. Le IAM rôle et le fournisseur IAM d'identité sont spécifiés sous la forme d'une paire séparée par des virgules ARNs au même format que les PrincipalArn paramètres RoleArn et auxquels ils sont transmis. AssumeRoleWithSAML Cet élément doit contenir au moins une paire de fournisseur de rôles (élément AttributeValue) et peut contenir plusieurs paires. Si l'élément contient plusieurs paires, l'utilisateur est invité à choisir le rôle à assumer lorsqu'il utilise le Web SSO pour se connecter au AWS Management Console.

Important

La valeur de l'attribut Name dans la balise Attribute est sensible à la casse. Il doit être défini sur https://aws.amazon.com/SAML/Attributes/Role précisément.

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

RoleSessionNameSAMLattribut

Vous pouvez utiliser un élément Attribute avec l'attribut Name défini sur https://aws.amazon.com/SAML/Attributes/RoleSessionName Cet élément contient un élément AttributeValue qui fournit un identifiant pour les informations d'identification temporaires qui sont émises lorsque le rôle est endossé. Vous pouvez l'utiliser pour associer les informations d'identification temporaires à l'utilisateur qui utilise votre application. Cet élément est utilisé pour afficher les informations utilisateur dans le AWS Management Console. La valeur de l'élément AttributeValue doit comporter entre 2 et 64 caractères. Elle ne peut contenir que des caractères alphanumériques, des traits de soulignement et les caractères suivants : . , + = @ - (tiret). Il ne doit pas contenir d'espace. La valeur est généralement un ID utilisateur (johndoe) ou une adresse e-mail (johndoe@example.com). Il ne peut pas contenir d'espace, comme dans le nom complet de l'utilisateur (John Doe).

Important

La valeur de l'attribut Name dans la balise Attribute est sensible à la casse. Il doit être défini sur https://aws.amazon.com/SAML/Attributes/RoleSessionName précisément.

<Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> <AttributeValue>user-id-name</AttributeValue> </Attribute>

SessionDurationSAMLattribut

(Facultatif) Vous pouvez utiliser un élément Attribute dont l'attribut Name est défini sur https://aws.amazon.com/SAML/Attributes/SessionDuration". Cet élément contient un AttributeValue élément qui indique pendant combien de temps l'utilisateur peut accéder au AWS Management Console avant de devoir demander de nouvelles informations d'identification temporaires. La valeur est un nombre entier représentant le nombre de secondes pour la session. La valeur peut être comprise entre 900 secondes (15 minutes) et 43 200 secondes (12 heures). Si cet attribut n'est pas présent, les informations d'identification durent une heure (valeur par défaut du DurationSeconds paramètre du AssumeRoleWithSAMLAPI).

Pour utiliser cet attribut, vous devez configurer le SAML fournisseur de manière à fournir un accès AWS Management Console par authentification unique au point de terminaison Web de connexion à la console à l'adresse. https://region-code.signin.aws.amazon.com/saml Pour une liste des possibilités region-code valeurs, voir la colonne Région dans les points de terminaison de AWS connexion. Vous pouvez éventuellement utiliser ce qui suit URL :https://signin.aws.amazon.com/static/saml. Notez que cet attribut prolonge les sessions uniquement à la AWS Management Console. Il ne peut pas prolonger la durée de vie des autres informations d'identification. Cependant, s'il est présent dans un AssumeRoleWithSAML API appel, il peut être utilisé pour raccourcir la durée de la session. La durée de vie par défaut des informations d'identification renvoyées par l'appel est de 60 minutes.

Notez également que si un attribut SessionNotOnOrAfter est également défini, la valeur la plus faible des deux attributs SessionDuration ou SessionNotOnOrAfter établit la durée maximale de la session de console.

Lorsque vous activez les sessions de console avec une durée prolongée, le risque de divulgation des informations d'identification augmente. Pour atténuer ce risque, vous pouvez désactiver immédiatement les sessions de console actives pour n'importe quel rôle en choisissant Révoquer les sessions sur la page Récapitulatif des rôles de la IAM console. Pour plus d’informations, consultez Révoquer les informations d'identification de sécurité temporaires du IAM rôle.

Important

La valeur de l'attribut Name dans la balise Attribute est sensible à la casse. Il doit être défini sur https://aws.amazon.com/SAML/Attributes/SessionDuration précisément.

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

SourceIdentitySAMLattribut

(Facultatif) Vous pouvez utiliser un élément Attribute dont l'attribut Name est défini sur https://aws.amazon.com/SAML/Attributes/SourceIdentity. Cet élément contient un AttributeValue élément qui fournit un identifiant pour la personne ou l'application qui utilise un IAM rôle. La valeur de l'identité source est conservée lorsque vous utilisez la SAML session pour assumer un autre rôle dans ce que l' AWS on appelle le chaînage de rôles. La valeur de l'identité source est présente dans la demande pour chaque action effectuée durant la session de rôle. La valeur définie ne peut pas être modifiée durant la session de rôle. Les administrateurs peuvent ensuite utiliser AWS CloudTrail les journaux pour surveiller et auditer les informations d'identité source afin de déterminer qui a effectué des actions avec des rôles partagés.

La valeur de l'élément AttributeValue doit comporter entre 2 et 64 caractères. Elle ne peut contenir que des caractères alphanumériques, des traits de soulignement et les caractères suivants : . , + = @ - (tiret). Il ne doit pas contenir d'espace. La valeur est généralement un attribut associé à l'utilisateur, comme un id utilisateur (johndoe) ou une adresse e-mail (johndoe@example.com). Il ne peut pas contenir d'espace, comme dans le nom complet de l'utilisateur (John Doe). Pour de plus amples informations sur l'utilisation de l'identité source, veuillez consulter Surveiller et contrôler les actions prises avec les rôles endossés.

Important

Si votre SAML assertion est configurée pour utiliser l'SourceIdentityattribut, votre politique d'approbation des rôles doit également inclure l'sts:SetSourceIdentityaction, sinon l'opération d'acceptation du rôle échouera. Pour de plus amples informations sur l'utilisation de l'identité source, veuillez consulter Surveiller et contrôler les actions prises avec les rôles endossés.

Pour transmettre un attribut d'identité source, incluez l'élément AttributeValue qui spécifie la valeur de l'identité source. Par exemple, pour transmettre l'identité source DiegoRamirez, utilisez l'attribut suivant.

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

Associer SAML des attributs à des clés contextuelles de politique de AWS confiance

Les tableaux de cette section répertorient les SAML attributs couramment utilisés et la manière dont ils sont mappés aux clés contextuelles des conditions de politique de confiance dans AWS. Vous pouvez utiliser ces clés pour contrôler l'accès à un rôle. Pour ce faire, comparez les clés aux valeurs incluses dans les assertions qui accompagnent une demande d'SAMLaccès.

Important

Ces clés ne sont disponibles que dans les politiques de IAM confiance (politiques qui déterminent qui peut assumer un rôle) et ne sont pas applicables aux politiques d'autorisation.

Dans le tableau eduPerson des eduOrg attributs et, les valeurs sont saisies sous forme de chaînes ou de listes de chaînes. Pour les valeurs de chaîne, vous pouvez tester ces valeurs dans les politiques de IAM confiance à l'aide de StringLike conditions StringEquals or. Concernant les valeurs qui contiennent une liste de chaînes, vous pouvez utiliser les opérateurs d'ensemble de politique ForAnyValue et ForAllValues pour tester les valeurs dans les politiques de confiance.

Note

Vous ne devez inclure qu'une seule réclamation par clé de AWS contexte. Si vous incluez plusieurs demandes, une seule d'entre elles sera mappée.

Le tableau suivant indique eduPerson les eduOrg attributs.

eduPerson ou eduOrg attribut (Nameclé) Correspond à cette clé AWS contextuelle (FriendlyNameclé) Type

urn:oid:1.3.6.1.4.1.5923.1.1.1.1

eduPersonAffiliation

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.2

eduPersonNickname

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.3

eduPersonOrgDN

Chaîne

urn:oid:1.3.6.1.4.1.5923.1.1.1.4

eduPersonOrgUnitDN

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.5

eduPersonPrimaryAffiliation

Chaîne

urn:oid:1.3.6.1.4.1.5923.1.1.1.6

eduPersonPrincipalName

Chaîne

urn:oid:1.3.6.1.4.1.5923.1.1.1.7

eduPersonEntitlement

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.8

eduPersonPrimaryOrgUnitDN

Chaîne

urn:oid:1.3.6.1.4.1.5923.1.1.1.9

eduPersonScopedAffiliation

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.10

eduPersonTargetedID

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.1.1.11

eduPersonAssurance

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.2.1.2

eduOrgHomePageURI

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.2.1.3

eduOrgIdentityAuthNPolicyURI

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.2.1.4

eduOrgLegalName

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.2.1.5

eduOrgSuperiorURI

Liste de chaînes

urn:oid:1.3.6.1.4.1.5923.1.2.1.6

eduOrgWhitePagesURI

Liste de chaînes

urn:oid:2.5.4.3

cn

Liste de chaînes

Le tableau suivant présente les attributs Active Directory.

Attribut AD Cartes correspondant à cette clé de AWS contexte Type

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

name

Chaîne

http://schemas.xmlsoap.org/claims/CommonName

commonName

Chaîne

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

givenName

Chaîne

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

surname

Chaîne

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

mail

Chaîne

http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid

uid

Chaîne

Le tableau suivant présente les attributs X.500.

Attribut X.500 Cartes correspondant à cette clé de AWS contexte Type

2.5.4.3

commonName

Chaîne

2.5.4.4

surname

Chaîne

2.4.5.42

givenName

Chaîne

2.5.4.45

x500UniqueIdentifier

Chaîne

0.9.2342.19200300100.1.1

uid

Chaîne

0.9.2342.19200300100.1.3

mail

Chaîne

0.9.2342.19200300.100.1.45

organizationStatus

Chaîne