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

Configuration des assertions SAML pour la réponse d'authentification

Dans votre organisation, une fois l'identité de l'utilisateur vérifiée, le fournisseur d'identité (IdP) envoie une réponse d'authentification au point de terminaison SAML AWS à l'adresse https://region-code.signin.aws.amazon.com/saml. Pour obtenir la liste des remplacements potentiels de region-code, consultez la colonne Region (Région) des AWS Sign-In endpoints (Points de terminaison de connexion). La réponse est une demande POST incluant un jeton SAML conforme à la norme de liaison HTTP POST pour SAML 2.0 et contenant les éléments suivants, ou demandes. Vous les configurez dans votre IdP compatible avec SAML. Pour obtenir des instructions sur la procédure visant à entrer ces demandes, consultez la documentation de votre IdP.

Lorsque le fournisseur d'identité envoie la réponse contenant les demandes à AWS, un grand nombre des demandes entrantes correspondent à des clés de contexte AWS. Ces clés de contexte peuvent être vérifiées dans les politiques IAM à l'aide de l'élément Condition. Pour obtenir une liste des mappages disponibles, consultez la section Attributs de mappage SAML sur les clés de contexte de politique d'approbation AWS.

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 comprennent une valeur qui doit correspondre au point de terminaison AWS https://region-code.signin.aws.amazon.com/saml. Pour obtenir la liste des valeurs possibles de region-code, consultez la colonne Region (Région) des AWS Sign-In endpoints (Points de terminaison de connexion). Pour la valeur AWS, vous pouvez également utiliser https://signin.aws.amazon.com/static/saml, comme illustré dans l'exemple suivant. Pour plus d'informations sur les formats d'identifiant de nom pris en charge pour les interactions d'authentification unique, consultez Oracle Sun OpenSSO Enterprise Administration Reference.

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

AudienceRestriction et Audience

Pour des raisons de sécurité, AWS doit être inclus en tant que public visé par l'assertion SAML que votre IdP envoie à AWS. Pour la valeur de l'élément Audience, spécifiez https://region-code.signin.aws.amazon.com/saml ou urn:amazon:webservices. Pour obtenir la liste des valeurs possibles de region-code, consultez la colonne Region (Région) des AWS Sign-In endpoints (Points de terminaison de connexion). Pour Audience, vous pouvez également utiliser la valeur : https://signin.aws.amazon.com/static/saml. Les exemples d'extraits de code XML à partir d'assertions SAML montrent comment cette clé peut être spécifié par le fournisseur d'identité. Incluez l'exemple qui s'applique à votre cas d'utilisation.

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

La valeur SAML AudienceRestriction dans l'assertion SAML de l'IdP n'est pas mappée à la clé de contexte saml:aud que vous pouvez tester dans une politique IAM. À la place, la clé de contexte saml:aud vient de l'attribut destinataire SAML, qui est l'équivalent SAML du champ du public OIDC, par exemple, par accounts.google.com:aud.

SAML PrincipalTagAttribute

(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 en tant que balises de session dans l'assertion SAML. Pour de plus amples informations sur les balises de session, veuillez consulter Transmission des balises de session dans 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 session SAML pour endosser un autre rôle dans 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>

SAML RoleAttribute

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 éléments AttributeValue qui répertorient le fournisseur d'identité et le rôle IAM auxquels l'utilisateur est mappé par votre IdP. Le rôle IAM et le fournisseur d'identité IAM sont spécifiés sous forme de paire d'ARN séparés par une virgule au même format que les paramètres RoleArn et PrincipalArn qui 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 doit choisir le rôle à endosser lorsqu'il utilise WebSSO pour se connecter à la 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>

SAML RoleSessionNameAttribute

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 l'interface 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>

SAML SessionDurationAttribute

(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 élément AttributeValue qui spécifie la durée pendant laquelle l'utilisateur peut accéder à l'interface AWS Management Console avant d'avoir à 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, la durée des informations d'identification est d'une d'heure (valeur par défaut du paramètre DurationSeconds de l'API AssumeRoleWithSAML).

Pour utiliser cet attribut, vous devez configurer le fournisseur SAML afin de fournir un accès à authentification unique à la AWS Management Console via le point de terminaison Web de connexion à la console à l'adresse https://region-code.signin.aws.amazon.com/saml. Pour obtenir la liste des valeurs possibles de region-code, consultez la colonne Region (Région) des AWS Sign-In endpoints (Points de terminaison de connexion). Vous pouvez éventuellement utiliser l'URL suivante : 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 appel d'API AssumeRoleWithSAML, 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 vous aider à réduire ce risque, vous pouvez immédiatement désactiver les sessions de console actives pour un rôle en sélectionnant Revoke Sessions (Révoquer les sessions) sur la page Role Summary (Résumé du rôle) de la console IAM. Pour plus d'informations, veuillez consulter Révocation des informations d'identification de sécurité temporaires d'un rôle IAM.

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>

SAML SourceIdentityAttribute

(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 élément AttributeValue qui fournit un identifiant pour la personne ou l'application qui utilise un rôle IAM. La valeur de l'identité source persiste lorsque vous utilisez la session SAML pour endosser un autre rôle dans AWS, ce que l'on appelle 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 alors utiliser les journaux AWS CloudTrail pour surveiller et auditer les informations d'identité source, et 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 assertion SAML est configurée pour utiliser l'attribut SourceIdentity, votre politique d'approbation de rôle doit également inclure l'action sts:SetSourceIdentity, sinon l'opération endosser le 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>

Attributs de mappage SAML sur les clés de contexte de politique d'approbation AWS

Les tableaux de cette section répertorient les attributs SAML utilisés couramment et leur correspondance avec les clés de contexte de condition de politique d'approbation 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'accès SAML.

Important

Ces clés sont disponibles uniquement dans les politiques d'approbation IAM (politiques qui déterminent qui peut endosser un rôle) et ne sont pas applicables aux politiques d'autorisations.

Dans le tableau des attributs eduPerson et eduOrg, les valeurs sont saisies sous forme de chaînes ou de listes de chaînes. Pour les valeurs de chaînes, vous pouvez tester ces valeurs dans des politiques d'approbation IAM à l'aide des conditions StringEquals ou StringLike. 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 devez inclure une seule demande par clé de contexte AWS. Si vous incluez plusieurs demandes, une seule d'entre elles sera mappée.

Attributs eduPerson et eduOrg
Attribut eduPerson ou eduOrg (clé Name) Est mappé avec cette clé de contexte AWS (clé FriendlyName) 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

Attributs Active Directory
Attribut AD Est mappé à cette clé de contexte AWS 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

Attributs X.500
Attribut X.500 Est mappé à cette clé de contexte AWS 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