Informations à connaître sur les groupes SAML IdPs d'utilisateurs Amazon Cognito - 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.

Informations à connaître sur les groupes SAML IdPs d'utilisateurs Amazon Cognito

Amazon Cognito traite les SAML assertions pour vous

Les groupes d'utilisateurs Amazon Cognito prennent en charge la fédération SAML 2.0 avec des points de terminaison à POST liaison. Votre application n'a donc plus besoin de récupérer ou d'analyser les réponses aux SAML assertions, car le groupe d'utilisateurs reçoit directement la SAML réponse de votre IdP par le biais d'un agent utilisateur. Votre groupe d'utilisateurs agit en tant que fournisseur de services pour le compte de votre application. Amazon Cognito prend en charge l'authentification unique initiée par le SP et l'IdP (SSO), comme décrit dans les sections 5.1.2 et 5.1.4 de la présentation technique de la version 2.0. SAML

Fournir un certificat de signature IdP valide

Le certificat de signature figurant dans les métadonnées de votre SAML fournisseur ne doit pas être expiré lorsque vous configurez l'SAMLIdP dans votre groupe d'utilisateurs.

Les groupes d'utilisateurs prennent en charge plusieurs certificats de signature

Lorsque votre SAML IdP inclut plusieurs certificats de signature dans les SAML métadonnées, lors de la connexion, votre groupe d'utilisateurs détermine que l'SAMLassertion est valide si elle correspond à un certificat des métadonnées. SAML Chaque certificat de signature ne doit pas comporter plus de 4 096 caractères.

Maintenir le paramètre d'état du relais

Amazon Cognito et votre SAML IdP gèrent les informations de session à l'aide d'un paramètre. relayState

  1. Amazon Cognito prend en charge relayState les valeurs supérieures à 80 octets. Bien que les SAML spécifications indiquent que la relayState valeur « ne doit pas dépasser 80 octets », les pratiques actuelles du secteur s'écartent souvent de ce comportement. Par conséquent, le rejet de relayState valeurs supérieures à 80 octets interrompra de nombreuses intégrations de SAML fournisseurs standard.

  2. Le relayState jeton est une référence opaque aux informations d'état gérées par Amazon Cognito. Amazon Cognito ne garantit pas le contenu du paramètre relayState. N'analysez pas son contenu de telle sorte que votre application dépende du résultat. Pour plus d'informations, consultez la spécification SAML 2.0.

Identifier le ACS point de terminaison

Votre fournisseur SAML d'identité exige que vous définissiez un point de terminaison client d'assertions. Votre IdP redirige vos utilisateurs vers ce point de terminaison avec leur assertion. SAML Configurez le point de terminaison suivant dans le domaine de votre groupe d'utilisateurs pour une POST liaison SAML 2.0 dans votre fournisseur SAML d'identité.

https://Your user pool domain/saml2/idpresponse With an Amazon Cognito domain: https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse With a custom domain: https://auth.example.com/saml2/idpresponse

Pour plus d'informations sur les domaines de groupes d’utilisateurs, consultez Configuration d'un domaine de groupe d'utilisateurs.

Aucune assertion rejouée

Vous ne pouvez pas répéter ou rejouer une SAML assertion sur votre point de terminaison Amazon saml2/idpresponse Cognito. Une SAML assertion rejouée possède un ID d'assertion qui duplique l'ID d'une réponse IdP antérieure.

L'ID du groupe d'utilisateurs est l'ID de l'entité SP

Vous devez fournir à votre IdP l'ID de votre groupe d'utilisateurs dans le fournisseur de services (SP)urn, également appelé identifiant d'audience URI ou d'entité SP. L'audience URI de votre groupe d'utilisateurs est au format suivant.

urn:amazon:cognito:sp:us-east-1_EXAMPLE

Vous trouverez l'ID de votre groupe d'utilisateurs dans la section Vue d'ensemble du groupe d'utilisateurs dans la console Amazon Cognito.

Cartographier tous les attributs requis

Configurez votre SAML IdP pour fournir des valeurs pour tous les attributs que vous définissez selon les besoins dans votre groupe d'utilisateurs. Par exemple, email est un attribut courant requis pour les groupes d'utilisateurs. Avant que vos utilisateurs puissent se connecter, vos assertions d'SAMLIdP doivent inclure une revendication que vous mappez à l'attribut User pool. email Pour plus d'informations sur le mappage d'attributs, consultez Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs.

Le format d'assertion a des exigences spécifiques

Votre SAML IdP doit inclure les affirmations suivantes dans l'SAMLassertion.

  1. Une NameID réclamation. Amazon Cognito associe une SAML assertion à l'utilisateur de destination par. NameID En cas de NameID modification, Amazon Cognito considère que l'assertion est destinée à un nouvel utilisateur. L'attribut que vous avez défini NameID dans votre configuration IdP doit avoir une valeur persistante.

    <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:persistent"> carlos </saml2:NameID>
  2. Un champ standard AudienceRestriction avec une valeur Audience qui définit l'ID d'entité SP de votre groupe d'utilisateurs comme cible de la réponse.

    <saml:AudienceRestriction> <saml:Audience> urn:amazon:cognito:sp:us-east-1_EXAMPLE </saml:AudienceRestriction>
  3. Pour l'authentification unique initiée par le SP, Response élément dont la InResponseTo valeur correspond à l'ID de SAML demande d'origine.

    <saml2p:Response Destination="https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse" ID="id123" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    Note

    Les SAML assertions initiées par l'IdP ne doivent pas contenir de valeur. InResponseTo

  4. Un SubjectConfirmationData élément dont Recipient la valeur correspond au point de saml2/idpresponse terminaison de votre groupe d'utilisateurs et, pour les applications initiées par le SPSAML, une InResponseTo valeur correspondant à l'ID de SAML demande d'origine.

    <saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="Date-time stamp" Recipient="https://mydomain.us-east-1.amazoncognito.com/saml2/idpresponse"/>
Demandes de connexion initiées par le SP

Lorsque l'utilisateur est Point de terminaison d’autorisation redirigé vers la page de connexion de votre IdP, Amazon Cognito inclut SAMLune demande dans URL un paramètre de la demande. HTTP GET Une SAML demande contient des informations sur votre groupe d'utilisateurs, y compris votre ACS point de terminaison. Vous pouvez éventuellement appliquer une signature cryptographique à ces demandes.

Signer les demandes et chiffrer les réponses

Chaque groupe d'utilisateurs disposant d'un SAML fournisseur génère une paire de clés asymétriques et un certificat de signature pour une signature numérique qu'Amazon Cognito attribue SAML aux demandes. Chaque SAML IdP externe que vous configurez pour prendre en charge les SAML réponses chiffrées amène Amazon Cognito à générer une nouvelle paire de clés et un nouveau certificat de chiffrement pour ce fournisseur. Pour consulter et télécharger les certificats avec la clé publique, choisissez votre IdP dans l'onglet Expérience de connexion de la console Amazon Cognito.

Pour établir la confiance avec les SAML demandes de votre groupe d'utilisateurs, fournissez à votre IdP une copie du certificat de signature de votre groupe d'utilisateurs SAML 2.0. Votre IdP peut ignorer les SAML demandes signées par votre groupe d'utilisateurs si vous ne configurez pas l'IdP pour accepter les demandes signées.

  1. Amazon Cognito applique une signature numérique aux SAML demandes que votre utilisateur transmet à votre IdP. Votre groupe d'utilisateurs signe toutes les demandes de déconnexion unique (SLO), et vous pouvez configurer votre groupe d'utilisateurs pour qu'il signe les demandes d'authentification unique (SSO) pour n'importe quel SAML IdP externe. Lorsque vous fournissez une copie du certificat, votre IdP peut vérifier l'intégrité des demandes de vos utilisateursSAML.

  2. Votre SAML IdP peut chiffrer les SAML réponses à l'aide du certificat de chiffrement. Lorsque vous configurez un IdP avec SAML chiffrement, celui-ci ne doit envoyer que des réponses chiffrées.

Coder des caractères non alphanumériques

Amazon Cognito n'accepte pas les caractères de 4 octets à UTF 8 caractères tels 😐 que ceux transmis par 𠮷 votre IdP comme valeur d'attribut. Vous pouvez coder le caractère en Base64, le transmettre sous forme de texte, puis le décoder dans votre application.

Dans l'exemple suivant, la revendication d'attribut ne sera pas acceptée :

<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue> </saml2:Attribute>

Contrairement à l'exemple précédent, la revendication d'attribut suivante sera acceptée :

<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue> </saml2:Attribute>
Le point de terminaison des métadonnées doit disposer d'une sécurité de couche de transport valide

Si vous voyez, InvalidParameterException lors de la création d'un SAML IdP avec un point de terminaison de HTTPS métadonnées, par exempleURL, « Erreur lors de la récupération des métadonnées depuis <metadata endpoint>», assurez-vous que le point de terminaison des métadonnées est SSL correctement configuré et qu'un SSL certificat valide lui est associé. Pour plus d'informations sur la validation des certificats, voir Qu'est-ce qu'un TLS certificatSSL/? .

Les clients de l'application initiés par un IdP ne SAML peuvent se connecter qu'avec SAML

Lorsque vous activez la prise en charge d'un IdP SAML 2.0 qui prend en charge la connexion initiée par l'IdP à un client d'application, vous ne pouvez ajouter qu'un autre identifiant SAML 2.0 IdPs à ce client d'application. Il vous est interdit d'ajouter l'annuaire des utilisateurs dans le groupe d'utilisateurs et tous les fournisseurs d'identité non SAML externes à un client d'application configuré de cette manière.

Les réponses de déconnexion doivent utiliser POST une liaison

Le /saml2/logout point de terminaison accepte LogoutResponse les HTTP POST demandes. Les groupes d'utilisateurs n'acceptent pas les réponses de déconnexion HTTP GET contraignantes.