Passer au contenu principal

Fédération d'authentification

À propos de la fédération d'authentification

ThingPark Enterprise peut être configuré pour déléguer l'authentification en utilisant OpenID Connect.

Le fournisseur d'identité fédéré vers lequel l'authentification est déléguée a les exigences obligatoires suivantes :

  • Implémentez « Caractéristiques obligatoires à mettre en œuvre pour tous les fournisseurs OpenID » dans OpenID Connect Core 1.0 1,0

  • Implémentez les fonctionnalités suivantes de la section « Caractéristiques obligatoires à mettre en œuvre pour les fournisseurs OpenID dynamiques » de OpenID Connect Core 1.0 1,0 :

    • Type de réponse « code » (Le fournisseur d'identités doit mettre en œuvre le flux de code d'autorisation)
    • Découverte (Le fournisseur d'identités doit fournir sa configuration au niveau de l'URL bien connue ${issuer}/.well-known/openid-configuration comme décrit dans OpenID Connect Discovery 1.0) 1,0
    • Clés publiques publiées sous forme de clés brutes
  • Toujours renvoyer un jeton d'accès dans les réponses du point de terminaison du jeton

et les exigences suivantes, facultatives mais fortement recommandées :

  • Le fournisseur d'identités devrait renvoyer un jeton de rafraîchissement dans les réponses du point de terminaison du jeton. Ce jeton de rafraîchissement ne doit pas être un jeton hors ligne : il doit être lié à la session utilisateur.
  • Le fournisseur d'identités devrait implémenter un point de terminaison de déconnexion et fournir son URL dans la configuration (end_session_endpoint) comme décrit dans OpenID Connect RP-Initiated Logout 1.0 1,0.

Les algorithmes de signature suivants sont supportés pour signer le jeton d'identité (ID Token) : RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512.

Les fournisseurs d'identités suivants sont connus comme compatibles :

  • Microsoft Azure Active Directory
  • Microsoft Active Directory Federation Services (Windows Server 2022)
  • Google
  • Auth0
  • Keycloak

Le fournisseur d'identités suivant est connu comme incompatible :

  • Microsoft Azure Active Directory B2C. Les comportements spécifiques suivants sont incompatibles avec ThingPark Enterprise :

Activation de la fédération d'authentification

Remarque

Après avoir été installé, l'administrateur de TPE doit se connecter avec le compte <install@actility.com> et réaliser la première procédure d'installation. Cette procédure doit être réalisée avant d'activer la fédération d'authentification.

Prérequis : tous les utilisateurs de ThingPark Enterprise doivent avoir un utilisateur correspondant sur le fournisseur d'identité fédéré avec un email correspondant.

  1. Créer un client dans le fournisseur d'identité fédéré pour ThingPark Enterprise avec les propriétés suivantes :

    • URI de redirection : https://<.Values.global.dnsHostname>/auth/federation-callback
    • URI de redirection après déconnexion : https://<.Values.global.dnsHostname>/federation-post-logout
    • Types de réponse : code
    • Méthode d'authentification du point de terminaison du jeton : client_secret_basic
    • Portées : Les portées openid, email et profile doivent être autorisées

    Obtenez les propriétés suivantes du client créé :

    • ID Client
    • Secret client
    • Émetteur OpenID Connect

    Voir Créer le client ThingPark Enterprise pour une procédure détaillée par fournisseur d'identité.

  2. Définissez les paramètres de configuration global.oauthFederation.clientId, global.oauthFederation.clientSecret et global.oauthFederation.issuer.

  3. Appliquez la configuration en suivant la procédure Mise à jour d'un paramètre de configuration.

Désactivation de la fédération d'authentification

Remarque

Après avoir désactivé la fédération d'authentification, tous les utilisateurs existants doivent se connecter en utilisant leur email et le mot de passe qu'ils avaient avant l'activation de la fédération d'authentification. Si l'utilisateur a été créé lorsque la fédération était activée, l'utilisateur doit utiliser le flux de mot de passe oublié pour définir son mot de passe.

  1. Effacez les paramètres de configuration global.oauthFederation.*.
  2. Appliquez la configuration en suivant la procédure Mise à jour d'un paramètre de configuration.

Création du client ThingPark Enterprise

Microsoft Azure Active Directory

Remarque

Microsoft Azure Active Directory n'émet pas de jetons de rafraîchissement. Par conséquent, la session ThingPark Enterprise n'est pas liée à la session utilisateur sur Azure AD.

Dans votre locataire, l'application ThingPark Enterprise doit être enregistrée.

Le client ThingPark Enterprise doit être déclaré dans Azure AD / Enregistrements d'applications / Nouvelle inscription.

Un secret client doit être créé dans Azure AD / Enregistrements d'applications / ThingPark Enterprise / Certificats & secrets / Secrets clients / Nouveau secret client. Copiez le secret créé car il sera nécessaire pour configurer TPE.

Le secret client a une date d'expiration. Il doit être renouvelé avant que cette date ne soit atteinte. Si ThingPark Enterprise est configuré avec un ID client expiré, personne ne pourra se connecter.

https://<.Values.global.dnsHostname>/auth/federation-post-logout doit être ajouté comme URI de redirection dans Azure AD / Enregistrements d'applications / ThingPark Enterprise / Authentification / URI de redirection.

Pour obtenir les informations requises pour activer la fédération d'authentification (en plus du secret client), rendez-vous sur Azure AD / Enregistrements d'applications / ThingPark Enterprise / Aperçu :

  • L'ID client se trouve dans la section Essentiels : ID d'application (client)
  • L'identifiant de l'émetteur a la forme https://login.microsoftonline.com/<uuid>/v2.0. Pour l'obtenir, affichez le panneau "endpoints", rendez-vous sur l'URL du document Metadata OpenID Connect et obtenez la propriété issuer dans le document JSON.

Google

Remarque

Google n'émet pas de jetons de rafraîchissement autres que les jetons hors ligne et n'implémente pas le end_session_endpoint. Par conséquent, la délégation Google fonctionne en mode dégradé.

ThingPark Enterprise peut être déclaré comme une application interne d'un Google Workspace. Voir OpenID Connect dans la documentation de Google pour déclarer TingPark Enterprise dans votre console cloud Google et obtenir l'ID du client et le secret. L'ID de l'émetteur est https://accounts.google.com.

Auth0

Remarque

Auth0 n'émet pas de jetons de rafraîchissement autres que les jetons hors ligne et n'implémente pas le end_session_endpoint. Par conséquent, la délégation Auth0 fonctionne en mode dégradé.

Dans votre tableau de bord de gestion Auth0, créez une application web régulière.

Dans l'onglet des paramètres, définissez :

  • Méthode d'authentification du point de terminaison du jeton : Basique
  • URL de rappel autorisées : https://<.Values.global.dnsHostname>/auth/federation-callback

Pour activer la fédération d'authentification, obtenez l'ID client et le secret client dans l'onglet paramètres de l'application, dans la section des informations de base. L'ID de l'émetteur est visible dans la propriété "issuer" du document OpenID Configuration JSON. Rendez-vous dans Paramètres avancés / Points de terminaison de la page de l'application pour obtenir l'URL du document OpenID Configuration JSON. L'ID de l'émetteur doit être https://<tenant-hostname>/.

Services de Fédération d'Active Directory Microsoft

La procédure suivante s'applique à Windows Server 2022.

Dans le Gestionnaire de service de fédération Active Directory :

  1. Ajoutez un groupe d'applications. L'assistant de création de groupe d'applications s'ouvre.

  2. Étape d'accueil :

    Modèle : Application serveur accédant à une API web

    Capture d&#39;écran de l&#39;étape d&#39;accueil

  3. Étape de l'application serveur :

    • URI de redirection : https://<.Values.global.dnsHostname>/auth/federation-callback
    • Copiez l'ID du client. Il sera nécessaire de le coller dans le paramètre global.oauthFederation.clientId de la configuration TPE.

    Capture d&#39;écran de l&#39;étape de l&#39;application serveur

  4. Étape de configuration des informations d'identification de l'application :

    Cochez « Générer un secret partagé » et copiez-le. Il sera nécessaire de le coller dans le paramètre global.oauthFederation.clientSecret de la configuration TPE.

    Capture d&#39;écran de l&#39;étape de configuration des informations d&#39;identification de l&#39;application

  5. Étape de configuration de l'API Web :

    Identifiant : ajoutez l'ID client de l'étape d'application serveur comme un identifiant

    Capture d&#39;écran de l&#39;étape de configuration de l&#39;API Web

  6. Étape de configuration des autorisations d'application

    Portée permise : cochez allatclaims, email, openid et profile.

    Capture d&#39;écran de l&#39;étape de configuration des autorisations d&#39;application

  7. Créez le groupe d'applications

  8. Dans le groupe d'applications créé, modifiez l'application API Web, cliquez sur Ajouter une règle dans l'onglet Règles de transformation de délivrance. L'assistant Ajouter la règle de transformation de la revendication s'ouvre.

    Capture d&#39;écran des règles de transformation de délivrance

  9. Choisir l'étape de type de règle :

    Choisissez le modèle Envoyer des attributs LDAP en tant que revendications.

    Capture d&#39;écran de l&#39;étape Choisir le type de règles

  10. Étape de configuration des règles de revendication :

    Au moins, la revendication email doit être mappée.

    Capture d&#39;écran de l&#39;étape Configuration des règles de revendication

  11. Cliquez sur Terminer

Assurez-vous que l'utilisateur qui se connecte possède un email dans son profil Active Directory.

Capture d&#39;écran des propriétés de l&#39;utilisateur avec un email

Le global.oauthFederation.issuer à configurer dans la configuration TPE doit être https://<your-adfs-hostname>/adfs/.