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-configurationcomme 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)
- 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 :
- Obtenir un jeton d'accès dépend de la présence d'une portée spécifique. Voir Demander un jeton d'accès dans Azure Active Directory B2C
- Le jeton id ne contient pas de revendication email. Il semble qu'une revendication non standard 'emails' soit utilisée.
Activation de la fédération d'authentification
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.
-
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,emailetprofiledoivent ê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é.
- URI de redirection :
-
Définissez les paramètres de configuration
global.oauthFederation.clientId,global.oauthFederation.clientSecretetglobal.oauthFederation.issuer. -
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
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.
- Effacez les paramètres de configuration
global.oauthFederation.*. - 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
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éissuerdans le document JSON.
Google
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
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 :
-
Ajoutez un groupe d'applications. L'assistant de création de groupe d'applications s'ouvre.
-
Étape d'accueil :
Modèle : Application serveur accédant à une API web

-
É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.clientIdde la configuration TPE.

- URI de redirection :
-
É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.clientSecretde la configuration TPE.
-
Étape de configuration de l'API Web :
Identifiant : ajoutez l'ID client de l'étape d'application serveur comme un identifiant

-
Étape de configuration des autorisations d'application
Portée permise : cochez
allatclaims,email,openidetprofile.
-
Créez le groupe d'applications
-
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.

-
Choisir l'étape de type de règle :
Choisissez le modèle Envoyer des attributs LDAP en tant que revendications.

-
Étape de configuration des règles de revendication :
Au moins, la revendication
emaildoit être mappée.
-
Cliquez sur Terminer
Assurez-vous que l'utilisateur qui se connecte possède un email dans son profil Active Directory.

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