Comment configurer Okta en tant que fournisseur d'identité SAML avec un groupe d'utilisateurs Amazon Cognito ?

Date de la dernière mise à jour : 03/09/2020

Je souhaite utiliser Okta en tant que fournisseur d'identité (IdP) Security Assertion Markup Language 2.0 (SAML 2.0) avec un groupe d'utilisateurs Amazon Cognito. Comment puis-je configurer cela ?

Brève description

Les groupes d'utilisateurs Amazon Cognito permettent la connexion par le biais d'un tiers (fédération), notamment par le biais d'un fournisseur d'identité tel qu'Okta. Pour plus d'informations, consultez Ajout de la connexion d'un groupe d'utilisateurs via un tiers et Ajout de fournisseurs d'identité SAML à un groupe d'utilisateurs.

Un groupe d'utilisateurs intégré à Okta permet aux utilisateurs de votre application Okta d'obtenir des jetons de groupe d'utilisateurs à partir d'Amazon Cognito. Pour plus d'informations, consultez la section Utilisation des jetons avec des groupes d'utilisateurs.

Solution

Création d'un groupe d'utilisateurs Amazon Cognito avec un client d'application et un nom de domaine

  1. Créez un groupe d'utilisateurs.
    Remarque : lors de la création, l'attribut standard d'e-mail est sélectionné par défaut. Pour plus d'informations, consultez la section Configuration des attributs du groupe d'utilisateurs.
  2. Créez un client d'application dans votre groupe d'utilisateurs. Pour plus d'informations, consultez la section Ajout d'une application pour activer l'interface utilisateur Web hébergée.
    Remarque : lors de l'ajout d'un client d'application, désélectionnez la case Generate client secret (Générer le secret client). Pour certains flux d'autorisation, comme pour les flux Authorization code grant (Octroi du code d'autorisation) et Token refresh (Actualisation du jeton), les serveurs utilisent une clé secrète de client pour autoriser un client à adresser des requêtes pour le compte d'un utilisateur. Pour le flux d'autorisation implicite utilisé dans cette configuration, aucun secret d'application client n'est requis.
  3. Ajoutez un nom de domaine à votre groupe d'utilisateurs.

Création d'un compte de développeurs Okta

Remarque : si vous disposez déjà d'un compte de développeurs Okta, connectez-vous à ce dernier.

  1. Sur la page Web de connexion aux développeurs Okta, saisissez les informations demandées, puis choisissez MISE EN ROUTE. L'équipe de développeurs Okta envoie un e-mail de vérification à l'adresse e-mail que vous avez renseignée.
  2. Cet e-mail de vérification contient les informations de connexion à votre compte. Choisissez ACTIVATE MY ACCOUNT (ACTIVER MON COMPTE), connectez-vous et achevez la création de votre compte.

Créer une application SAML dans Okta

  1. Ouvrez la console des développeurs Okta. Pour plus d'informations concernant la console, consultez Console des développeurs Okta : une nouvelle console qui vous ressemble sur le blog des développeurs Okta.
  2. Dans le coin supérieur gauche, maintenez votre curseur sur Developer Console (Console des développeurs), puis choisissez Classic UI (Interface utilisateur classique). La console Administrateur s'ouvre. Pour plus d'informations, consultez Console d'administrateur sur la page Organisations Okta du site Web des développeurs Okta.
    Important : vous devez être dans la console d'administrateur (interface utilisateur classique) pour créer une application SAML.
  3. Sous l'onglet Shortcuts (Raccourcis), sélectionnez Add Applications (Ajouter des applications).
    Vous pouvez également choisir Applications, puis Add Application (Ajouter une application).
  4. Sur la page Add Application (Ajouter une application), sélectionnez Create New App (Créer une application).
  5. Dans la boîte de dialogue Create a New Application Integration (Créer une intégration d'application), vérifiez que l'option Platform (Plate-forme) est définie sur Web.
  6. Pour Sign on method (Méthode de connexion), sélectionnez SAML 2.0.
  7. Choisissez Create (Créer).

Pour plus d'informations, consultez Préparer votre intégration dans le guide Créer une intégration à authentification unique (SSO) sur le site Web du développeur Okta.

Configurer l'intégration SAML pour votre application Okta

  1. Sur la page Create SAML Integration (Créer une intégration SAML), sous General Settings (Paramètres généraux), saisissez le nom de votre application.
  2. (Facultatif) Chargez un logo et sélectionnez les paramètres de visibilité de votre application.
  3. Sélectionnez Next (Suivant).
  4. Sous SAML Settings (Paramètres SAML), pour Single sign on URL (URL d'authentification unique), copiez l'adresse https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse.
    Remarque : remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Pour pouvez rechercher ces valeurs dans la console Amazon Cognito sous l'onglet Domaine name (Nom de domaine) de votre groupe d'utilisateurs.
  5. Pour Audience URI (SP Entity ID) (URI d'audience) (ID d'entité du fournisseur de service), saisissez urn:amazon:cognito:sp:yourUserPoolId.
    Remarque : remplacez yourUserPoolId par l'ID de votre groupe d'utilisateurs Amazon Cognito. Vous pouvez rechercher cette valeur dans la console Amazon Cognito sur la page General settings (Paramètres généraux) de votre groupe d'utilisateurs.
  6. Sous ATTRIBUTE STATEMENTS (OPTIONAL) (DECLARATIONS D'ATTRIBUT) (FACULTATIF), ajoutez une déclaration avec les informations suivantes :
    Pour Name (Nom), saisissez le nom d'attribut SAML http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.
    Pour Value (Valeur), saisissez user.email.
  7. Pour tous les autres paramètres de la page, conservez leurs valeurs par défaut ou définissez-les en fonction de vos préférences.
  8. Sélectionnez Next (Suivant).
  9. Sélectionnez un commentaire pour le support Okta.
  10. Sélectionnez Finish (Terminer).

Pour plus d'informations, consultez Créer votre intégration dans le guide Créer une intégration à authentification unique (SSO) sur le site Web du développeur Okta.

Attribuer un utilisateur à votre application Okta

  1. Sous l'onglet Assignments (Affectations) de votre application Okta, cliquez sur Assign (Affecter) et sélectionnez Assign to People (Affecter à une personne).
  2. Sélectionnez Assign (Affecter) en regarde de l'utilisateur de votre choix.
    Remarque : s'il s'agit d'un nouveau compte, vous ne pouvez sélectionner que vous-même (admin) en tant qu'utilisateur.
  3. (Facultatif) Dans le champ User Name (Nom d'utilisateur), saisissez un nom d'utilisateur ou laissez l'adresse e-mail de l'utilisateur selon votre préférence.
  4. Sélectionnez Save et Go Back (Enregistrer et retour). Votre utilisateur est attribué.
  5. Choisissez Done (Terminé).

Pour plus d'informations, consultez Affecter des utilisateurs dans le guide Créer une intégration à authentification unique (SSO) sur le site Web du développeur Okta.

Obtenir les métadonnées de l'IdP (fournisseur d'identité) de votre application Okta

Dans l'onglet Sign On (Connexion) de votre application Okta, recherchez le lien hypertexte Identity Provider metadata (Métadonnées du fournisseur d'identité). Cliquez avec le bouton droit sur le lien hypertexte, puis copiez l'URL.

Pour plus d'informations, consultez Spécifier vos paramètres d'intégration dans le guide Créer une intégration à authentification unique (SSO) sur le site Web du développeur Okta.

Configurer Okta comme IdP (fournisseur d'identité) SAML dans votre groupe d'utilisateurs

  1. Dans la console Amazon Cognito, sélectionnez Manage user pools (Gérer les groupes d'utilisateurs), puis choisissez votre groupe d'utilisateurs.
  2. Dans le volet de navigation de gauche, sous Federation (Fédération), choisissez Identity providers (Fournisseurs d'identité).
  3. Choisissez SAML.
  4. Sous Metadata document (Document de métadonnées), collez l'URL Identity Provider metadata (Métadonnées du fournisseur d'identité) que vous avez copiée.
  5. Pour Provider name (Nom du fournisseur), entrez Okta. Pour plus d'informations, consultez Choix des noms de fournisseur d'identité SAML.
  6. (Facultatif) Entrez des identifiants SAML (Identifiers (Optional)) (Identificateurs (Facultatif)) et activez la déconnexion de l'IdP (Okta) lorsque vos utilisateurs se déconnectent de votre groupe d'utilisateurs (Enable IdP sign out flow (Activer le flux de déconnexion de l'IdP)).
  7. Choisissez Create provider (Créer un fournisseur).

Pour plus d'informations, consultez Création et gestion d'un fournisseur d'identité SAML pour un groupe d'utilisateurs (AWS Management Console).

Associer l'adresse e-mail de l'attribut IdP à l'attribut du groupe d'utilisateurs

  1. Dans la console Amazon Cognito, sélectionnez Manage user pools (Gérer les groupes d'utilisateurs), puis choisissez votre groupe d'utilisateurs.
  2. Dans le volet de navigation de gauche, sous Federation (Fédération), choisissez Attribute mapping (Assocation d'attribut).
  3. Sur la page d'association d'attribut, choisissez l'onglet OIDC.
  4. Choisissez Add SAML attribute (Ajouter un attribut SAML).
  5. Pour SAML attribute (Attribut SAML), saisissez le nom d'attribut SAML http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.
  6. Pour User pool attribute (Attribut du groupe d’utilisateurs), choisissez E-mail dans la liste.

Pour plus d'informations, consultez la section Spécification des mappages d'attributs du fournisseur d'identité pour votre groupe d'utilisateurs.

Modification des paramètres du client d'application pour votre groupe d'utilisateurs

  1. Dans la console Amazon Cognito, sélectionnez Manage user pools (Gérer les groupes d'utilisateurs), puis choisissez votre groupe d'utilisateurs.
  2. Dans le volet de navigation de gauche, sous Intégration d'application, sélectionnezParamètres du client d'application.
  3. Sur la page du client d'application, procédez comme suit :
    Sous Enabled identity providers (Fournisseurs d'identité activés), cochez les cases Okta et Cognito User Pool (Groupe d'utilisateurs Cognito).
    Sous Callback URL(s) (URL(s) de rappel), saisissez l'URL vers laquelle vous souhaitez que vos utilisateurs soient redirigés après s'être connectés. Pour effectuer un test, vous pouvez saisir n'importe quelle URL valide, par exemple https://www.exemple.com/.
    Sous Sign out URL(s) (URL de déconnexion), saisissez l'URL vers laquelle vous souhaitez que vos utilisateurs soient redirigés après s'être déconnectés. Pour effectuer un test, vous pouvez saisir n'importe quelle URL valide, par exemple https://www.exemple.com/.
    Sous Allowed OAuth Flows (Flux OAuth autorisés), veillez à cocher la case Implicit grant (Autorisation implicite).
    Sous Allowed OAuth Scopes (Règles OAuth autorisées), veillez à cocher au moins les cases email et openid.
  4. Choisissez Save changes (Enregistrer les modifications).

Pour plus d'informations, consultez la section Présentation des paramètres du client d'application.

Créer l'URL de point de terminaison

En utilisant les valeurs de votre groupe d'utilisateurs, créez l'URL de point de terminaison de connexion suivante :

https://préfixedevotredomaine.auth.region.amazoncognito.com/login?response_type=token&client_id=IDdevotreclient&redirect_uri=redirectUrl

Veillez à effectuer les opérations suivantes :

  • Remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Pour pouvez rechercher ces valeurs dans la console Amazon Cognito sous l'onglet Domaine name (Nom de domaine) de votre groupe d'utilisateurs.
  • Remplacez yourClientId par l'identifiant de votre client d'application et remplacez redirectUrl par l'URL de rappel de votre client d'application. Vous pouvez rechercher ces valeurs dans la console Amazon Cognito sur la page App client settings (Paramètres du client d'application) de votre groupe d'utilisateurs.

Pour plus d'informations, consultez les sections Comment configurer l'interface utilisateur Web hébergée Amazon Cognito ? et Point de terminaison LOGIN.

Test de l'URL de point de terminaison

  1. Dans votre navigateur Web, saisissez l'URL du point de terminaison de connexion créée.
  2. Sur la page web de votre point de terminaison de connexion, choisissez Okta.
    Remarque : si vous êtes redirigé vers l'URL de rappel de votre client d'application, cela signifie que vous êtes déjà connecté à votre compte Okta dans votre navigateur. Les jetons de groupe d'utilisateurs s'affichent dans l'URL située dans la barre d'adresse de votre navigateur Web.
  3. Dans Okta, sur la page Sign In (Connexion), saisissez le nom et le mot de passe de l'utilisateur que vous avez affecté à votre application.
  4. Sélectionnez Sign in (Connexion).

Une fois connecté, vous êtes redirigé vers l'URL de rappel de votre client d'application. Les jetons de groupe d'utilisateurs s'affichent dans l'URL située dans la barre d'adresse de votre navigateur Web.

(Facultatif) Ignorer l'interface utilisateur hébergée d'Amazon Cognito

Si vous souhaitez que vos utilisateurs ignorent l'interface utilisateur Web hébergée d'Amazon Cognito au moment de se connecter à votre application, utilisez l'URL suivante comme URL de point de terminaison :

https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/authorize?response_type=token&identity_provider=samlProviderName&client_id=yourClientId&redirect_uri=redirectUrl&scope=allowedOauthScopes

Veillez à effectuer les opérations suivantes :

  • Remplacez yourDomainPrefix et region par les valeurs de votre groupe d'utilisateurs. Pour pouvez rechercher ces valeurs dans la console Amazon Cognito sous l'onglet Domaine name (Nom de domaine) de votre groupe d'utilisateurs.
  • Remplacez samlProviderName par le nom du fournisseur SAML dans votre groupe d'utilisateurs (Okta).
  • (Facultatif) Si vous avez ajouté précédemment un identifiant pour votre fournisseur OIDC dans le champ Identifiers (optional) (Identifiants (facultatif)), vous pouvez remplacer identity_provider=oidcProviderName par idp_identifier=idpIdentifier, afin de remplacer idpIdentifier par votre chaîne d'identifiant personnalisée.
  • Remplacez yourClientId par l'identifiant de votre client d'application et remplacez redirectUrl par l'URL de rappel de votre client d'application. Vous pouvez rechercher ces valeurs dans la console Amazon Cognito sur la page App client settings (Paramètres du client d'application) de votre groupe d'utilisateurs.
  • Remplacez allowedOauthScopes par les portées spécifiques que vous souhaitez que votre client d'application Amazon Cognito demande. Par exemple, scope=email+openid.

Pour plus d'informations, consultez Comment configurer l'interface utilisateur Web hébergée pour Amazon Cognito ? et Point de terminaison AUTHORIZATION.