SAMLsignature et chiffrement - Amazon Cognito

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.

SAMLsignature et chiffrement

SAMLLa connexion 2.0 est construite autour de l'utilisateur d'une application en tant que porteur de demandes et de réponses dans son flux d'authentification. Vous voudrez peut-être vous assurer que les utilisateurs ne lisent ou ne modifient pas ces SAML documents pendant le transport. Pour ce faire, ajoutez SAML la signature et le chiffrement aux fournisseurs SAML d'identité (IdPs) de votre groupe d'utilisateurs. Avec SAML la signature, vos groupes d'utilisateurs ajoutent une signature aux demandes de SAML connexion et de déconnexion. Avec la clé publique de votre groupe d'utilisateurs, votre IdP peut vérifier qu'il reçoit des demandes non SAML modifiées. Ensuite, lorsque votre IdP répond et transmet des SAML assertions aux sessions de navigation des utilisateurs, l'IdP peut chiffrer cette réponse afin que l'utilisateur ne puisse pas inspecter ses propres attributs et droits.

Avec SAML la signature et le chiffrement, toutes les opérations cryptographiques effectuées pendant les opérations du pool d'utilisateurs doivent générer SAML des signatures et du texte chiffré à l'aide des user-pool-provided clés générées par Amazon Cognito. Actuellement, vous ne pouvez pas configurer un groupe d'utilisateurs pour signer des demandes ou accepter des assertions chiffrées avec une clé externe.

Note

Les certificats de votre groupe d'utilisateurs sont valides pendant 10 ans. Une fois par an, Amazon Cognito génère de nouveaux certificats de signature et de chiffrement pour votre groupe d'utilisateurs. Amazon Cognito renvoie le certificat le plus récent lorsque vous demandez le certificat de signature, et signe les demandes avec le certificat de signature le plus récent. Votre IdP peut chiffrer les SAML assertions avec n'importe quel certificat de chiffrement de groupe d'utilisateurs qui n'est pas expiré. Vos anciens certificats restent valides pendant toute leur durée et la clé publique ne change pas d'un certificat à l'autre. Il est recommandé de mettre à jour le certificat dans la configuration de votre fournisseur chaque année.

Accepter les SAML réponses cryptées de votre IdP

Amazon Cognito et votre IdP peuvent garantir la confidentialité des SAML réponses lorsque les utilisateurs se connectent et se déconnectent. Amazon Cognito attribue une RSA paire de clés publique-privée et un certificat à chaque fournisseur SAML externe que vous configurez dans votre groupe d'utilisateurs. Lorsque vous activez le chiffrement des réponses pour le SAML fournisseur de votre groupe d'utilisateurs, vous devez télécharger votre certificat sur un IdP qui prend en charge les réponses chiffréesSAML. La connexion de votre groupe d'utilisateurs à votre SAML IdP ne fonctionne pas avant que celui-ci ne commence à chiffrer toutes les SAML assertions avec la clé fournie.

Vous trouverez ci-dessous un aperçu du flux d'une SAML connexion cryptée.

  1. Votre utilisateur commence à se connecter et choisit son SAML IdP.

  2. Votre groupe d'utilisateurs Point de terminaison d’autorisation redirige votre utilisateur vers son SAML IdP avec SAML une demande de connexion. Votre groupe d'utilisateurs peut éventuellement accompagner cette demande d'une signature permettant à l'IdP de vérifier son intégrité. Lorsque vous souhaitez signer des SAML demandes, vous devez configurer votre IdP pour accepter les demandes que votre groupe d'utilisateurs a signées avec la clé publique figurant dans le certificat de signature.

  3. L'SAMLIdP connecte votre utilisateur et génère une SAML réponse. L'IdP chiffre la réponse avec la clé publique et redirige votre utilisateur vers le point de terminaison de votre groupe d'utilisateurs. /saml2/idpresponse L'IdP doit chiffrer la réponse conformément à la spécification 2.0. SAML Pour plus d'informations, consultez Element <EncryptedAssertion> la section Assertions et protocoles pour le langage de balisage d'assertions de OASIS sécurité (SAML) V2.0.

  4. Votre groupe d'utilisateurs déchiffre le texte chiffré de la SAML réponse à l'aide de la clé privée et signe votre utilisateur.

Important

Lorsque vous activez le chiffrement des réponses pour un SAML IdP de votre groupe d'utilisateurs, celui-ci doit chiffrer toutes les réponses avec une clé publique spécifique au fournisseur. Amazon Cognito n'accepte pas les SAML réponses non chiffrées provenant d'un SAML IdP externe que vous configurez pour prendre en charge le chiffrement.

Tout SAML IdP externe de votre groupe d'utilisateurs peut prendre en charge le chiffrement des réponses, et chaque IdP reçoit sa propre paire de clés.

AWS Management Console
Pour configurer le chiffrement des SAML réponses
  1. Créez un groupe d'utilisateurs, un client d'application et un SAML IdP.

  2. Lorsque vous créez ou modifiez votre fournisseur SAML d'identité, sous Signer les demandes et chiffrer les réponses, cochez la case intitulée Exiger des SAML assertions chiffrées de la part de ce fournisseur.

  3. Dans l'onglet Expérience de connexion de votre groupe d'utilisateurs, sous Connexion au fournisseur d'identité fédéré, sélectionnez votre SAML IdP et choisissez Afficher le certificat de chiffrement.

  4. Choisissez Télécharger au format .crt et fournissez le fichier téléchargé à votre SAML IdP. Configurez votre SAML IdP pour chiffrer les SAML réponses à l'aide de la clé contenue dans le certificat.

API/CLI

Pour configurer le chiffrement des SAML réponses

Configurez le chiffrement des réponses avec le EncryptedResponses paramètre d'une UpdateIdentityProviderAPIdemande CreateIdentityProviderou. Voici un exemple ProviderDetails d'IdP qui prend en charge la signature des demandes.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }

Pour obtenir le certificat de chiffrement auprès de votre groupe d'utilisateurs, faites une DescribeIdentityProviderAPIdemande et récupérez la valeur de ActiveEncryptionCertificate dans le paramètre de réponseProviderDetails. Enregistrez ce certificat et fournissez-le à votre IdP en tant que certificat de chiffrement pour les demandes de connexion de votre groupe d'utilisateurs.

SAMLDemandes de signature

La capacité à prouver l'intégrité des requêtes SAML 2.0 adressées à votre IdP constitue un avantage de sécurité de la connexion initiée par Amazon SAML Cognito SP. Chaque groupe d'utilisateurs doté d'un domaine reçoit un certificat de signature X.509 du groupe d'utilisateurs. Avec la clé publique contenue dans ce certificat, les groupes d'utilisateurs appliquent une signature cryptographique aux demandes de déconnexion que votre groupe d'utilisateurs génère lorsque vos utilisateurs sélectionnent un SAML IdP. Vous pouvez éventuellement configurer le client de votre application pour qu'il SAML signe les demandes de connexion. Lorsque vous signez vos SAML demandes, votre IdP peut vérifier que la signature figurant dans les XML métadonnées de vos demandes correspond à la clé publique figurant dans le certificat de groupe d'utilisateurs que vous fournissez.

AWS Management Console
Pour configurer la signature des SAML demandes
  1. Créez un groupe d'utilisateurs, un client d'application et un SAML IdP.

  2. Lorsque vous créez ou modifiez votre fournisseur SAML d'identité, sous Signer les demandes et chiffrer les réponses, cochez la case intitulée Signer les SAML demandes à ce fournisseur.

  3. Dans l'onglet Expérience de connexion de votre groupe d'utilisateurs, sous Connexion au fournisseur d'identité fédéré, choisissez Afficher le certificat de signature.

  4. Choisissez Télécharger au format .crt et fournissez le fichier téléchargé à votre SAML IdP. Configurez votre SAML IdP pour vérifier la signature des demandes entrantesSAML.

API/CLI

Pour configurer la signature des SAML demandes

Configurez la signature des demandes avec le RequestSigningAlgorithm paramètre d'une UpdateIdentityProviderAPIdemande CreateIdentityProviderou. Voici un exemple ProviderDetails d'IdP qui prend en charge la signature des demandes.

"ProviderDetails": { "MetadataURL" : "https://myidp.example.com/saml/metadata", "IDPSignout" : "true", "RequestSigningAlgorithm" : "rsa-sha256", "EncryptedResponses" : "true", "IDPInit" : "true" }