Utilisation de fournisseurs d'identité OIDC avec un pool d'utilisateurs - 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.

Utilisation de fournisseurs d'identité OIDC avec un pool d'utilisateurs

Les utilisateurs peuvent se connecter à votre application en utilisant leurs comptes existants auprès des fournisseurs d'identité OpenID Connect (OIDC) (). IdPs Avec les fournisseurs OIDC, les utilisateurs de systèmes d'authentification unique indépendants peuvent fournir des informations d'identification existantes tandis que votre application reçoit des jetons OIDC au format partagé de groupes d'utilisateurs. Un pool d'utilisateurs est un IdP OIDC qui peut également servir d'intermédiaire entre plusieurs IdPs OIDC externes et votre application.

Les utilisateurs qui se connectent avec un IdP OIDC ne sont pas tenus de fournir de nouveaux identifiants ou informations pour accéder à votre application de pool d'utilisateurs. Votre application peut les rediriger silencieusement vers leur IdP pour se connecter, avec un pool d'utilisateurs comme outil en arrière-plan qui normalise le format du jeton pour votre application. Pour en savoir plus sur la redirection IdP, consultez. Point de terminaison d’autorisation

Comme pour les autres fournisseurs d'identité tiers, vous devez enregistrer votre application auprès du fournisseur OIDC et obtenir des informations sur l'application IdP que vous souhaitez connecter à votre groupe d'utilisateurs. L'IdP OIDC d'un groupe d'utilisateurs nécessite un identifiant client, un secret client, les étendues que vous souhaitez demander et des informations sur les points de terminaison des services du fournisseur. Votre groupe d'utilisateurs peut découvrir les points de terminaison OIDC du fournisseur à partir d'un point de terminaison de découverte ou vous pouvez les saisir manuellement. Vous devez également examiner les jetons d'identification du fournisseur et créer des mappages d'attributs entre l'IdP et les attributs de votre groupe d'utilisateurs.

Présentation de l'authentification avec un fournisseur d'identité OIDC
Note

La connexion via un tiers (fédération) est disponible dans les groupes d'utilisateurs Amazon Cognito. Cette fonctionnalité est indépendante de la fédération OIDC avec les groupes d'identités Amazon Cognito.

Vous pouvez ajouter un IdP OIDC à votre groupe d'utilisateurs selon la méthode API AWS Management Console du groupe d'utilisateurs, par AWS CLI le biais de ou avec celle-ci. CreateIdentityProvider

Prérequis

Avant de commencer, vous avez besoin de ce qui suit :

  • Un groupe d'utilisateurs avec une application client et un domaine de groupe d'utilisateurs. Pour plus d'informations, consultez Créer un groupe d'utilisateurs.

  • Un fournisseur d'identité (IdP) OIDC avec la configuration suivante :

    • Prend en charge l'authentification client client_secret_post. Amazon Cognito ne vérifie pas la revendication token_endpoint_auth_methods_supported au point de terminaison de découverte OIDC pour votre fournisseur d'identité. Amazon Cognito ne prend pas en charge l'authentification client client_secret_basic. Pour plus d'informations sur l'authentification client, consultez Client Authentication dans la documentation sur OpenID Connect.

    • Utilise uniquement HTTPS pour les points de terminaison OIDC tels que openid_configuration, userInfo et jwks_uri.

    • Utilise uniquement les ports TCP 80 et 443 pour les points de terminaison OIDC.

    • Ne signe les jetons d'identification qu'avec les algorithmes HMAC-SHA, ECDSA ou RSA.

    • Publie un champ standard kid d'identifiant de clé dans son jwks_uri et inclut un champ standard kid dans ses jetons.

    • Présente une clé publique non expirée avec une chaîne de confiance de l'autorité de certification racine valide.

Étape 1 : Inscription avec un fournisseur d'identité OIDC

Avant de créer un fournisseur d'identité OIDC avec Amazon Cognito, vous devez enregistrer votre application auprès du fournisseur d'identité OIDC pour recevoir un ID client et une clé secrète de client.

Pour vous inscrire avec un fournisseur d'identité OIDC
  1. Créez un compte développeur avec le fournisseur d'identité OIDC.

    Liens vers l'OIDC IdPs
    IdP OIDC Procédure d'installation URL de découverte OIDC
    Salesforce

    Salesforce en tant que fournisseur d'identité OpenID Connect

    https://MyDomainName.my.salesforce.com/.well-known/openid-configuration

    PingOne pour Enterprise

    Ajouter ou mettre à jour une application OIDC

    https://sso.connect.pingidentity.com/sso/as/authorization.oauth2
    Okta

    Installer un fournisseur d'identité Okta

    https://Your Okta subdomain.okta.com.well-known/openid-configuration

    Identifiant Microsoft Entra

    OpenID Connect sur la plateforme d'identité Microsoft

    https://login.microsoftonline.com/{tenant}/v2.0

    Les valeurs de tenant peuvent inclure un identifiant de locatairecommon,organizations, ouconsumers.

  2. Enregistrez l'URL du domaine de votre groupe d'utilisateurs avec le point de terminaison /oauth2/idpresponse auprès de votre fournisseur d'identité (IdP) OIDC Cela garantit que l'IdP OIDC l'acceptera d'Amazon Cognito lors de l'authentification des utilisateurs.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Enregistrez votre URL de rappel avec votre groupe d'utilisateurs Amazon Cognito. Il s'agit de l'URL de la page vers laquelle Amazon Cognito redirige l'utilisateur après une authentification réussie.

    https://www.example.com
  4. Sélectionnez vos règles. La règle openid est obligatoire. La règle email est requise pour accorder l'accès aux demandes email et email_verified https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims.

  5. L'IdP OIDC vous fournit un ID client et un clé secrète de client. Vous les utiliserez pour configurer un IdP OIDC dans votre groupe d'utilisateurs.

Exemple : Utilisation de Salesforce en tant qu'IdP OIDC avec votre groupe d'utilisateurs

Vous utilisez un fournisseur d'identité OIDC lorsque vous souhaitez établir une approbation entre un fournisseur d'identité compatible OIDC, tel que Salesforce, et votre groupe d'utilisateurs.

  1. Créez un compte sur le site web Salesforce Developers.

  2. Connectez-vous avec le compte développeur que vous avez créé à l'étape précédente.

  3. Dans votre page Salesforce, procédez de l'une des manières suivantes :

    • Si vous utilisez Lightning Experience, choisissez l'icône d'engrenage de configuration, puis choisissez Setup Home (Page d'accueil de configuration).

    • Si vous utilisez Salesforce et que vous voyez Setup (Configurer) dans l'en-tête de l'interface utilisateur, choisissez cette option.

    • Si vous utilisez Salesforce Classic et que vous ne voyez pas Setup (Configurer) dans l'en-tête, choisissez votre nom dans la barre de navigation supérieure, puis choisissez Setup (Configurer) dans la liste déroulante.

  4. Dans la barre de navigation de gauche, sélectionnez Company Settings (Paramètres de l'entreprise).

  5. Dans la barre de navigation, choisissez Domaine, saisissez un domaine, puis choisissez Créer.

  6. Dans la barre de navigation de gauche, sous Outils de plateforme puis choisissez Applications.

  7. Choisissez App Manager (Gestionnaire d'applications).

    1. Choisissez Nouvelle application connectée.

    2. Renseignez les champs obligatoires.

      Sous Start URL (URL de lancement), saisissez une URL au niveau du point de terminaison /authorize pour le domaine de groupe d'utilisateurs qui se connecte avec votre fournisseur d'identité Salesforce. Quand vos utilisateurs accèdent à votre application connectée, Salesforce les dirige vers cette URL pour terminer la connexion. Salesforce redirige ensuite les utilisateurs vers l'URL de rappel que vous avez associée à votre client d'application.

      https://mydomain.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Activez OAuth les paramètres et entrez l'URL du point de /oauth2/idpresponse terminaison pour le domaine de votre groupe d'utilisateurs dans Callback URL. Il s'agit de l'URL à laquelle Salesforce émet le code d'autorisation qu'Amazon Cognito échange contre un OAuth jeton.

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Sélectionnez vos règles. Vous devez inclure l'étendue openid. Pour accorder l'accès aux demandes email et email_verified, ajoutez l'étendue email. Séparez les étendues par des espaces.

  9. Sélectionnez Create (Créer).

    Dans Salesforce, l'ID client est appelé Consumer Key (Clé consommateur)et la clé secrète du client est appelée Consumer Secret (Clé secrète du consommateur). Notez l'ID client et la clé secrète du client. Vous les utiliserez dans la section suivante.

Étape 2 : Ajout d'un fournisseur d'identité OIDC à votre groupe d'utilisateurs

Dans cette section, vous configurez votre groupe d'utilisateurs pour traiter les demandes d'authentification basées sur OIDC à partir d'un IdP OIDC.

Pour ajouter un IdP OIDC (console Amazon Cognito)

Ajouter un fournisseur d'identité OIDC
  1. Accédez à la console Amazon Cognito. Si vous y êtes invité, entrez vos AWS informations d'identification.

  2. Choisissez Groupes d'utilisateurs dans le menu de navigation.

  3. Choisissez un groupe d’utilisateurs existant dans la liste ou créez-en un.

  4. Choisissez le menu Fournisseurs sociaux et externes, puis sélectionnez Ajouter un fournisseur d'identité.

  5. Choisissez un fournisseur d'identité OpenID Connect.

  6. Saisissez un nom unique dans le champ Nom du fournisseur.

  7. Saisissez l'ID client que vous avez reçu de votre fournisseur dans ID du client.

  8. Saisissez le secret client que vous avez reçu de votre fournisseur dans Secret du client.

  9. Saisissez les périmètres d'autorisation pour ce fournisseur. Les périmètres définissent les groupes d'attributs utilisateur (tels que name et email) que votre demande demandera à votre fournisseur. Les étendues doivent être séparées par des espaces, conformément à la spécification OAuth2.0.

    Votre utilisateur est invité à accepter de fournir ces attributs à votre application.

  10. Choisissez une méthode de demande d'attribut pour fournir à Amazon Cognito la méthode HTTP (GET ou POST) qu'il doit utiliser pour récupérer les détails de l'utilisateur à partir du point de terminaison userInfo exploité par votre fournisseur.

  11. Choisissez une Méthode de configuration pour récupérer les points de terminaison OpenID Connect soit par Remplissage automatique via l'URL du diffuseur soit par Saisie manuel. Utilisez le remplissage automatique de l'URL de l'émetteur lorsque votre fournisseur dispose d'un point de .well-known/openid-configuration terminaison public sur lequel Amazon Cognito peut récupérer URLs les points de authorization terminaisontoken,userInfo, jwks_uri et.

  12. Entrez l'URL de l'émetteur ouauthorization, tokenuserInfo, et le jwks_uri point URLs de terminaison de votre IdP.

    Note

    L'URL doit commencer par https:// et ne doit pas se terminer par une barre oblique /. Seuls les numéros de port 443 et 80 peuvent être utilisés avec cette URL. Par exemple, Salesforce utilise cette URL :

    https://login.salesforce.com

    Si vous choisissez le remplissage automatique, le document de découverte doit utiliser HTTPS pour les valeurs suivantes :authorization_endpoint, token_endpoint, userinfo_endpoint, et jwks_uri. Sinon, la connexion échoue.

  13. Par défaut, la demande d'OIDC sub est mappée à l'attribut de groupe d'utilisateurs Nom d'utilisateur. Vous pouvez mapper d'autres demandes d'OIDC aux attributs de groupe d'utilisateurs. Saisissez la demande OIDC et choisissez l'attribut du groupe d'utilisateurs correspondant dans la liste déroulante. Par exemple, l'e-mail de demande est souvent mappé à l'e-mail de l'attribut de groupe d'utilisateurs.

  14. Mappez les attributs de votre fournisseur d'identité dans votre groupe d'utilisateurs. Pour de plus amples informations, veuillez consulter Spécification des mappages d'attribut du fournisseur d'identité pour votre groupe d'utilisateurs.

  15. Sélectionnez Create (Créer).

  16. Dans le menu Clients de l'application, sélectionnez un client d'application dans la liste et sélectionnez Modifier. Pour ajouter le nouveau fournisseur d'identité OIDC au client de l'application, accédez à l'onglet Pages de connexion et sélectionnez Modifier dans la configuration des pages de connexion gérées.

  17. Sélectionnez Enregistrer les modifications.

Pour ajouter un IdP OIDC (AWS CLI)

  • Consultez les descriptions des paramètres de la méthode CreateIdentityProviderAPI.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    Utilisez ce schéma pour les détails du fournisseur :

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

Étape 3 : Test de la configuration de votre IdP OIDC

Vous pouvez créer l'URL d'autorisation en utilisant les éléments des deux sections précédentes, et les utiliser pour tester votre configuration d'IdP OIDC.

https://mydomain.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Votre domaine se trouve sur la page de la console répertoriant le nom de domaine du groupe d'utilisateurs. Le client_id se trouve sur la page Paramètres généraux. Utilisez votre URL de rappel pour le paramètre redirect_uri. Il s'agit de l'URL de la page vers laquelle l'utilisateur est redirigé après une authentification réussie.