Aller au contenu principal

Application tierce (OAuth / OIDC)

L'intégration d'applications tierces de Logto vous permet d'utiliser Logto comme Fournisseur d’identité (IdP) pour des applications externes.

Un Fournisseur d’identité (IdP) est un service qui vérifie les identités des utilisateurs et gère leurs identifiants de connexion. Après avoir confirmé l'identité d'un utilisateur, l'IdP génère des jetons d’authentification ou des assertions et permet à l'utilisateur d'accéder à diverses applications ou services sans avoir à se reconnecter.

Contrairement aux applications que vous avez créées dans le guide Intégrer Logto à votre application qui sont développées et entièrement contrôlées par vous, les applications tierces sont des services indépendants développés par des développeurs externes ou des partenaires commerciaux.

Cette approche d'intégration est bien adaptée aux scénarios métier courants. Vous pouvez permettre aux utilisateurs d'accéder à des applications partenaires en utilisant leurs comptes Logto, tout comme les utilisateurs d'entreprise se connectent à Slack avec Google Workspace. Vous pouvez également créer une plateforme ouverte où les applications tierces peuvent ajouter la fonctionnalité "Se connecter avec Logto", similaire à "Se connecter avec Google".

Logto est un service d'identité basé sur le protocole OpenID Connect (OIDC), offrant des capacités d’authentification et d’autorisation. Cela rend l'intégration d'une application tierce OIDC aussi simple qu'une application web traditionnelle.

Ainsi, puisque OIDC s'appuie sur OAuth 2.0 en ajoutant une couche d’authentification, vous pouvez également intégrer une application tierce en utilisant le protocole OAuth.

Créer une application tierce dans Logto

  1. Rendez-vous sur Console > Applications.
  2. Cliquez sur le bouton "Créer une application". Sélectionnez "Application tierce" comme type d'application et choisissez l'un des protocoles d'intégration suivants :
    • OIDC / OAuth
  3. Sélectionnez un type d'application en fonction du type d'application tierce :
    • Web traditionnel : Applications rendues côté serveur (par ex. Node.js, PHP, Java) pouvant stocker un secret client de manière sécurisée côté serveur.
    • Application monopage (SPA) : Applications rendues côté client (par ex. React, Vue, Angular) qui s'exécutent entièrement dans le navigateur et ne peuvent pas stocker de secrets de façon sécurisée.
    • Native : Applications mobiles ou de bureau (par ex. iOS, Android, Electron) qui s'exécutent sur les appareils des utilisateurs.
  4. Saisissez un nom et une description pour votre application et cliquez sur le bouton "Créer". Une nouvelle application tierce sera créée.

Toutes les applications tierces créées seront répertoriées sur la page Applications sous l’onglet "Applications tierces". Cette organisation vous aide à les distinguer de vos propres applications, facilitant ainsi la gestion de toutes vos applications au même endroit.

Guide d'intégration

Trouver les configurations de l'application

Sur la page de détails de l'application, vous pouvez trouver le Client ID, le Client secret (pour les applications web traditionnelles uniquement), et les points de terminaison OIDC nécessaires à l'intégration.

Si le service tiers prend en charge la découverte OIDC, fournissez simplement le point de terminaison de découverte. Sinon, cliquez sur Afficher les détails des points de terminaison pour voir tous les points de terminaison, y compris le point de terminaison d’autorisation et le point de terminaison de jeton.

Intégrer avec des services prenant en charge un IdP tiers

Si vous connectez un service ou un produit qui prend en charge nativement la configuration d'un fournisseur d'identité externe (par ex. plateformes SaaS d'entreprise, outils de collaboration), la configuration est simple :

  1. Ouvrez la page de configuration IdP ou SSO du service.
  2. Copiez le Client ID (et le Client secret si nécessaire) depuis Logto et collez-les dans la configuration du service.
  3. Fournissez le point de terminaison de découverte si le service prend en charge la découverte automatique OIDC, ou copiez manuellement le point de terminaison d’autorisation et le point de terminaison de jeton.
  4. Copiez l’URI de redirection depuis la page de configuration du service et ajoutez-le aux URI de redirection autorisés de votre application Logto.
  5. Configurez les portées (scopes) si le service le permet. Puisque Logto est un fournisseur OIDC, incluez la portée openid si vous devez authentifier les utilisateurs (donne accès à un jeton d’identifiant et au point de terminaison UserInfo). La portée openid est facultative si vous avez seulement besoin d’un accès aux ressources OAuth.

Le service gérera automatiquement le flux OAuth / OIDC une fois configuré.

Intégrer via le protocole OAuth / OIDC

Si une application tierce doit s'intégrer à Logto comme IdP de manière programmatique, elle doit implémenter le flux d’autorisation par code standard. Nous recommandons d'utiliser une bibliothèque cliente OAuth 2.0 / OIDC pour votre langage de programmation afin de gérer l'implémentation.

Les applications web traditionnelles sont des clients confidentiels qui peuvent stocker un secret client de manière sécurisée sur le serveur backend. Voir flux d’autorisation par code pour tous les détails d’implémentation.

Étapes clés :

  1. Initier l’autorisation : Redirigez l'utilisateur vers le point de terminaison d’autorisation de Logto avec client_id, redirect_uri, response_type=code et scope.
  2. Gérer le callback : Recevez le code d’autorisation depuis la redirection.
  3. Échanger les jetons : Depuis votre backend, effectuez une requête POST vers le point de terminaison de jeton avec le code, le client_id et le client_secret.

Intégrer via le device flow

Pour les applications tierces natives fonctionnant sur des appareils à saisie limitée (par ex. smart TV, consoles de jeux, outils CLI), le flux d’autorisation par code basé sur la redirection standard peut ne pas être réalisable. Dans ces cas, l'application peut utiliser la subvention d’autorisation de périphérique OAuth 2.0.

Avec le device flow, l'appareil affiche un code utilisateur et une URL de vérification. L'utilisateur visite l'URL sur un autre appareil (téléphone, ordinateur portable), saisit le code et termine l’authentification là-bas. L'appareil interroge le point de terminaison de jeton de Logto jusqu'à ce que l'autorisation soit terminée.

remarque:

Avant d’implémenter le device flow, assurez-vous de configurer les permissions requises pour votre application tierce dans la Console Logto. Les applications tierces demandant des portées non activées se verront refuser l'accès.

Voir le guide de démarrage rapide du device flow pour tous les détails d’implémentation.

Pour des raisons de sécurité, toutes les applications tierces OIDC seront redirigées vers un écran de consentement pour l’autorisation de l’utilisateur après leur authentification par Logto.

Toutes les permissions de profil utilisateur demandées par l’application tierce, les portées de ressources API, les permissions d’organisation et les informations d’appartenance à l’organisation seront affichées sur l’écran de consentement.

Ces permissions demandées ne seront accordées à l’application tierce qu’après que l’utilisateur ait cliqué sur le bouton "Autoriser".

écran de consentement

Actions supplémentaires

FAQ

Logto utilise le Contrôle d’accès basé sur les rôles (RBAC) pour gérer les permissions des utilisateurs. Sur l’écran de consentement, seules les portées (permissions) déjà attribuées à l’utilisateur — via ses rôles — seront affichées. Si une application tierce demande des portées que l’utilisateur ne possède pas, celles-ci seront exclues afin d’éviter tout consentement non autorisé.

Pour gérer cela :

  • Définissez des rôles globaux ou des rôles d’organisation avec des portées spécifiques.
  • Attribuez des rôles aux utilisateurs selon leurs besoins d’accès.
  • Les utilisateurs hériteront automatiquement des portées de leurs rôles.

Cas d’usage : Intégrer Apache Answer pour lancer une communauté pour vos utilisateurs

Utiliser Logto comme fournisseur d’identité tiers (IdP)