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.
SAMLfédération 2.0
AWS prend en charge la fédération d'identité avec SAML2.0 (Security Assertion Markup Language 2.0)
La fédération IAM prend en charge les cas d'utilisation suivants :
-
Accès fédéré pour permettre à un utilisateur ou à une application de votre organisation d'appeler AWS APIopérations . Ce cas d'utilisation est décrit dans la section suivante. Vous utilisez une SAML assertion (dans le cadre de la réponse d'authentification) générée dans votre organisation pour obtenir des informations d'identification de sécurité temporaires. Ce scénario est similaire aux autres scénarios de fédération pris IAM en charge, tels que ceux décrits dans Demander des informations d'identification de sécurité temporaires etOIDCfédération. Cependant, les SAML versions 2.0 de IdPs votre organisation gèrent de nombreux détails lors de l'exécution de l'authentification et de la vérification des autorisations.
-
Authentification unique basée sur le Web (SSO) au AWS Management Console de votre organisation . Les utilisateurs peuvent se connecter à un portail de votre organisation hébergé par un SAML IdP compatible 2.0. Sélectionnez une option pour accéder à AWS, et soyez redirigé vers la console sans avoir à fournir d'informations de connexion supplémentaires. Vous pouvez utiliser un SAML IdP tiers pour établir l'SSOaccès à la console ou vous pouvez créer un IdP personnalisé pour permettre à vos utilisateurs externes d'accéder à la console. Pour plus d'informations sur la création d'un IdP personnalisé, consultez la page Activation de l'accès de broker d'identité personnalisé à la AWS console.
Rubriques
- Utilisation SAML de la fédération basée pour API accéder à AWS
- Présentation de la configuration de la fédération basée sur la SAML version 2.0
- Vue d'ensemble du rôle permettant d'autoriser l'accès SAML fédéré à votre AWS resources
- Identification unique des utilisateurs dans le cadre SAML d'une fédération basée
- Créez un fournisseur SAML d'identité dans IAM
- Configurez votre IdP SAML 2.0 en vous fiant à la confiance des parties et en ajoutant des réclamations
- Intégrez des fournisseurs de solutions SAML tiers avec AWS
- Configurer les SAML assertions pour la réponse d'authentification
- Permettre aux utilisateurs fédérés SAML 2.0 d'accéder au AWS Management Console
- Afficher une SAML réponse dans votre navigateur
Utilisation SAML de la fédération basée pour API accéder à AWS
Supposons que vous voulez permettre aux employés de copier les données de leurs ordinateurs dans un dossier de sauvegarde. Vous créez une application que les utilisateurs peuvent exécuter sur leurs ordinateurs. Sur le back-end, l'application lit et écrit des objets dans un compartiment Amazon S3. Les utilisateurs n'ont pas d'accès direct à AWS. Au lieu de cela, le processus suivant est utilisé :
-
A l'aide d'une application cliente, un utilisateur de l'organisation demande son authentification par l'IdP de l'organisation.
-
L'IdP authentifie l'utilisateur en le comparant à la base d'identités de l'organisation.
-
L'IdP construit une SAML assertion avec des informations sur l'utilisateur et envoie l'assertion à l'application cliente.
-
L'application cliente appelle AWS STS
AssumeRoleWithSAML
API, en transmettant le nom ARN du SAML fournisseur, le ARN rôle à assumer et l'SAMLassertion de l'IdP. -
La API réponse à l'application cliente inclut des informations d'identification de sécurité temporaires.
-
L'application cliente utilise les informations d'identification de sécurité temporaires pour appeler les API opérations Amazon S3.
Présentation de la configuration de la fédération basée sur la SAML version 2.0
Avant de pouvoir utiliser la fédération SAML 2.0 comme décrit dans le scénario et le schéma précédents, vous devez configurer l'IdP de votre organisation et votre Compte AWS de se faire confiance. La procédure suivante décrit le processus général permettant de configurer cette relation d'approbation. Au sein de votre organisation, vous devez disposer d'un IdP compatible avec la SAML version 2.0, comme Microsoft Active Directory Federation Service (AD FS, intégré à Windows Server), Shibboleth ou un autre fournisseur 2.0 compatible. SAML
Note
Pour améliorer la résilience de la fédération, nous vous recommandons de configurer votre IdP et AWS
fédération pour prendre en charge plusieurs points de terminaison de SAML connexion. Pour plus de détails, consultez le AWS Article du blog sur la sécurité Comment utiliser les SAML points de terminaison régionaux pour le basculement
Configurez l'IdP de votre organisation et AWS de se faire confiance
-
Enregistrement AWS en tant que fournisseur de services (SP) auprès de l'IdP de votre organisation. Utilisez le document de SAML métadonnées de
https://
region-code
.signin.aws.amazon.com/static/saml-metadata.xmlPour une liste des possibilités
region-code
valeurs, voir la colonne Région dans AWS Points de terminaison de connexion.Vous pouvez éventuellement utiliser le document de SAML métadonnées provenant de
https://signin.aws.amazon.com/static/saml-metadata.xml
. -
À l'aide de l'IdP de votre organisation, vous générez un XML fichier de métadonnées équivalent qui peut décrire votre IdP en tant que fournisseur d'identité dans IAM AWS. Il doit inclure le nom de l'émetteur, une date de création, une date d'expiration et les clés qui AWS peut être utilisé pour valider les réponses d'authentification (assertions) de votre organisation.
-
Dans la IAM console, vous créez un fournisseur SAML d'identité. Dans le cadre de ce processus, vous téléchargez le document de SAML métadonnées qui ont été produits par l'IdP de votre organisation dans. Étape 2 Pour de plus amples informations, veuillez consulter Créez un fournisseur SAML d'identité dans IAM.
-
DansIAM, vous créez un ou plusieurs IAM rôles. Dans la politique de confiance du rôle, vous définissez le SAML fournisseur comme principal, ce qui établit une relation de confiance entre votre organisation et AWS La politique d'autorisation du rôle détermine les actions que les utilisateurs de l'organisation sont autorisés à effectuer dans . AWS. Pour plus d'informations, consultezCréation d'un rôle pour un fournisseur d'identité tiers (fédération).
Note
SAMLIDPsutilisé dans un rôle, la politique de confiance doit se trouver dans le même compte que celui dans lequel se trouve le rôle.
-
Dans l'IdP de votre organisation, vous définissez des assertions qui associent les utilisateurs ou les groupes de votre organisation aux rôles. IAM Notez que les différents utilisateurs et groupes de votre organisation peuvent correspondre à différents IAM rôles. La procédure exacte pour leur mappage dépend de l'IdP utilisé. Dans le scénario précédent d'un dossier Amazon S3 pour les utilisateurs, tous les utilisateurs peuvent être associés au rôle qui fournit les autorisations Amazon S3. Pour de plus amples informations, veuillez consulter Configurer les SAML assertions pour la réponse d'authentification.
Si votre IdP permet de SSO AWS console, vous pouvez alors configurer la durée maximale des sessions de console. Pour de plus amples informations, veuillez consulter Permettre aux utilisateurs fédérés SAML 2.0 d'accéder au AWS Management Console.
-
Dans l'application que vous créez, vous appelez AWS Security Token Service
AssumeRoleWithSAML
API, en lui transmettant le nom ARN du SAML fournisseur dans lequel vous avez crééÉtape 3, le ARN rôle à assumer dans Étape 4 lequel vous l'avez créé et l'SAMLassertion concernant l'utilisateur actuel que vous obtenez de votre IdP. AWS s'assure que la demande pour assumer le rôle provient de l'IdP référencé dans le SAML fournisseur.Pour plus d'informations, consultez AssumeRoleWithSAMLle AWS Security Token Service APIRéférence.
-
Si la demande aboutit, elle API renvoie un ensemble d'informations d'identification de sécurité temporaires, que votre application peut utiliser pour envoyer des demandes signées à AWS. Votre application contient des informations sur l'utilisateur actuel et peut accéder à des dossiers spécifiques à l'utilisateur dans Amazon S3, comme décrit dans le scénario précédent.
Vue d'ensemble du rôle permettant d'autoriser l'accès SAML fédéré à votre AWS resources
Le ou les rôles que vous créez dans IAM définissent ce que les utilisateurs fédérés de votre organisation sont autorisés à faire dans AWS. Lorsque vous créez la politique de confiance pour le rôle, vous spécifiez le SAML fournisseur que vous avez créé précédemment en tant quePrincipal
. Vous pouvez également définir la politique de confiance avec un Condition
pour autoriser uniquement les utilisateurs correspondant à certains SAML attributs à accéder au rôle. Par exemple, vous pouvez spécifier que seuls les utilisateurs dont l'SAMLaffiliation est staff
(telle qu'affirmée par https://openidp.feide.no) sont autorisés à accéder au rôle, comme l'illustre l'exemple de politique suivant :
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::
account-id
:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml", "saml:iss": "https://openidp.feide.no" }, "ForAllValues:StringLike": {"saml:edupersonaffiliation": ["staff"]} } }] }
Note
SAMLIDPsutilisé dans un rôle, la politique de confiance doit se trouver dans le même compte que celui dans lequel se trouve le rôle.
Pour plus d'informations sur les SAML clés que vous pouvez enregistrer dans une politique, consultezClés disponibles pour la AWS STS fédération SAML basée.
Vous pouvez inclure des points de terminaison régionaux pour l'attribut saml:aud
à l'adresse https://
. Pour une liste des possibilités region-code
.signin.aws.amazon.com/static/saml-metadata.xmlregion-code
valeurs, voir la colonne Région dans AWS Points de terminaison de connexion.
Vous spécifiez la politique d'autorisation dans le rôle comme pour tout autre rôle. Par exemple, si les utilisateurs de votre organisation sont autorisés à administrer des instances Amazon Elastic Compute Cloud, vous devez explicitement autoriser les EC2 actions d'Amazon dans la politique d'autorisation, telles que celles figurant dans la politique EC2FullAccess gérée par Amazon.
Identification unique des utilisateurs dans le cadre SAML d'une fédération basée
Lorsque vous créez des politiques d'accès dansIAM, il est souvent utile de pouvoir spécifier des autorisations en fonction de l'identité des utilisateurs. Par exemple, pour les utilisateurs qui ont été fédérés à l'aide deSAML, une application peut souhaiter conserver des informations dans Amazon S3 en utilisant une structure comme celle-ci :
amzn-s3-demo-bucket/app1/user1
amzn-s3-demo-bucket/app1/user2
amzn-s3-demo-bucket/app1/user3
Vous pouvez créer le compartiment (amzn-s3-demo-bucket
) et le dossier (app1
) via la console Amazon S3 ou le AWS CLI, car il s'agit de valeurs statiques. Toutefois, les dossiers spécifiques à l'utilisateur (user1
,
user2
, user3
, etc.) doivent être créés au moment de l'exécution à l'aide de code, car la valeur identifiant l'utilisateur n'est connue que lors de sa première connexion dans le cadre du processus de fédération.
Pour écrire des politiques qui font référence à des informations spécifiques à l'utilisateur dans le cadre du nom d'une ressource, l'identité de l'utilisateur doit être disponible dans des SAML clés pouvant être utilisées dans des conditions de politique. Les clés suivantes sont disponibles pour la fédération SAML basée sur la version 2.0 à utiliser dans IAM les politiques. Vous pouvez utiliser les valeurs retournées par les clés suivantes pour créer des identifiants utilisateur uniques pour des ressources comme des dossiers Amazon S3.
-
saml:namequalifier
. Une valeur de hachage basée sur la concaténation de la valeur deIssuer
réponse (saml:iss
) et d'une chaîne contenant l'identifiant duAWS
compte et le nom convivial (la dernière partie duARN) du fournisseur. SAML IAM La concaténation de l'identifiant du compte et du nom convivial du SAML fournisseur est disponible pour les IAM politiques en tant que clé.saml:doc
L'ID de compte et le nom du fournisseur doivent être séparés par un caractère « / », comme dans « 123456789012/provider_name ». Pour plus d'informations, reportez-vous à la clésaml:doc
dans Clés disponibles pour la AWS STS fédération SAML basée.La combinaison de
NameQualifier
etSubject
permet d'identifier de manière unique un utilisateur fédéré. L’exemple de pseudo-code suivant montre comment cette valeur est calculée. Ce pseudocode+
indique la concaténation,SHA1
représente une fonction qui produit un condensé de message en utilisant SHA -1 etBase64
représente une fonction qui produit une version codée en Base-64 de la sortie de hachage.Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )
Pour plus d'informations sur les clés de stratégie disponibles pour la fédération SAML basée, consultezClés disponibles pour la AWS STS fédération SAML basée.
-
saml:sub
(chaîne). Objet de la demande, qui inclut une valeur qui identifie de manière unique un utilisateur individuel au sein d'une organisation (par exemple,_cbb88bf52c2510eabe00c1642d4643f41430fe25e3
). -
saml:sub_type
(chaîne). Cette clé peut êtrepersistent
transient
, ou la totalitéFormat
URI desNameID
élémentsSubject
et utilisés dans votre SAML assertion. Une va leurpersistent
indique que la valeur desaml:sub
reste la même pour l'utilisateur pour toutes les sessions. Si la valeur esttransient
, l'utilisateur a une valeursaml:sub
différente pour chaque session. Pour plus d'informations sur l'attributNameID
de l'élémentFormat
, consultez Configurer les SAML assertions pour la réponse d'authentification.
L'exemple suivant illustre une politique d'autorisation qui utilise les clés précédentes pour accorder des autorisations à un dossier spécifique à un utilisateur dans Amazon S3. La politique suppose que les objets Amazon S3 sont identifiés à l'aide d'un préfixe qui inclut à la fois saml:namequalifier
et saml:sub
. Notez que l'élément Condition
inclut un test pour vérifier que la valeur de saml:sub_type
est définie sur persistent
. Si la valeur est transient
, l'élément saml:sub
de l'utilisateur peut être différent pour chaque session et vous ne devez pas combiner les valeurs pour identifier des dossiers spécifiques aux utilisateurs.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}", "arn:aws:s3:::amzn-s3-demo-bucket-org-data/backup/${saml:namequalifier}/${saml:sub}/*" ], "Condition": {"StringEquals": {"saml:sub_type": "persistent"}} } }
Pour plus d'informations sur le mappage d'assertions de l'IdP et les clés de politique, consultez Configurer les SAML assertions pour la réponse d'authentification.