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é (IDP) vers lequel l'authentification est déléguée doit supporter les exigences techniques suivantes :

  • L'IDP DOIT implémenter les fonctionnalités obligatoires pour tous les fournisseurs OpenID (voir OpenID Connect Core 1.0, section 15.1.

  • L'IDP DOIT implémenter les fonctionnalités obligatoires suivantes pour les fournisseurs OpenID dynamiques (voir OpenID Connect Core 1.0, section 15.2 :

    • L'IDP DOIT implémenter le flux de code d'autorisation (type de réponse "code").
    • L'IDP DOIT servir sa configuration sur l'URL bien connue ${issuer}/.well-known/openid-configuration comme décrit dans OpenID Connect Discovery 1.0).
    • L'IDP DOIT publier les clés publiques sous forme de clés brutes.
  • L'IDP DOIT renvoyer un jeton d'accès dans les réponses du point de terminaison de jeton.

  • L'IDP DOIT supporter au moins l'un des algorithmes suivants pour signer l'ID Token : RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512.

  • Cet IDP DOIT être configuré pour fournir l'email dans les revendications du jeton ID ou le point de terminaison userinfo doit être configuré pour renvoyer l'email.

  • L'IDP DEVRAIT renvoyer un jeton d'actualisation dans les réponses du point de terminaison de jeton. Ce jeton de rafraîchissement ne doit pas être un jeton hors ligne : il doit être lié à la session utilisateur.

  • L'IDP 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.

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
  • PingFederate

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 installation, l'administrateur TPE doit se connecter avec le compte 'install@actility.com' et effectuer 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. Allez dans le module de configuration TPE Cockpit, dans la section fédération d'authentification. Définissez "Fédération d'authentification" sur "Activé". Ne pas sauvegarder la configuration pour le moment.

  2. Créez un client chez le fournisseur d'identité fédéré pour le ThingPark Enterprise en utilisant les instructions affichées dans la section fédération d'authentification.

    Utilisez éventuellement la définition du client dans la Description des Métadonnées du Client OpenID Connect.

    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é.

  3. Remplissez les champs client ID, secret client et émetteur OpenID Connect avec les informations récupérées à l'étape 2.

  4. Sauvegardez la 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, il doit utiliser la procédure de récupération du mot de passe pour définir son mot de passe.

  1. Allez dans le module de configuration TPE Cockpit, dans la section fédération d'authentification. Définissez "Fédération d'authentification" sur "Désactivé"
  2. Sauvegardez la 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://<hostname>/auth/federation-post-logout doit être ajouté en tant qu'URI de redirection dans Azure AD / Enregistrements d'application / ThingPark Enterprise / Authentification / URIs 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
  • URLs de rappel autorisées : https://<hostname>/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. Allez dans les paramètres avancés / Points de terminaison de la page de l'application pour obtenir l'URL du document JSON de configuration OpenID. 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://<tpe-hostname>/auth/federation-callback (copier/coller depuis le module TPE Configuration Cockpit)
    • Copiez l'ID du client. Il sera nécessaire de le coller dans le module TPE Configuration Cockpit à l'étape de configuration de l'API Web

    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 module TPE Configuration Cockpit (secret client)

    Capture d&#39;écran de l&#39;étape de configuration des informations d&#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 la 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 de l&#39;application

  7. Créez le groupe d'applications

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

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

  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 de choix du 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 de 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

L'ID de l'émetteur à définir dans le module TPE Configuration Cockpit doit être https://<your-adfs-hostname>/adfs/.