Aller au contenu
LSSM / ID
Votre compte LSSMIntégration des applicationsOuvrir LSSM ID
LangueEnglishFrançaisEspañol

LSSM ID

Intégrer une application à LSSM ID

LSSM ID authentifie une personne. Votre application conserve ses propres sessions, appartenances et permissions produit. Utilisez un client serveur confidentiel avec code d’autorisation et PKCE S256.

Mis à jour le 2 novembre 2026

Dans cette page

  1. Déploiement et approbation
  2. Préparer l’inscription de votre application
  3. Paramètres du protocole
  4. Utiliser la configuration serveur vérifiée
  5. Vérifier le retour et l’autorité locale
  6. Consentement, rotation et déconnexion
  7. Qualifier avant l’utilisation en production
  8. Source de référence

Déploiement et approbation

L’implémentation AuthOS étendue et l’inscription d’applications externes sont en cours de qualification en production. Ce guide décrit le contrat d’intégration ; sa publication ne signifie pas que votre application est approuvée ni que tous les fournisseurs et fonctions sont activés. Confirmez la disponibilité avec support@lssm.co avant une intégration en production.

L’inscription dynamique anonyme de clients est désactivée. Un opérateur doit approuver la configuration et la politique d’accès de votre application. L’inscription d’une identité seule n’accorde pas d’appartenance à un produit.

Préparer l’inscription de votre application

  • Fournissez le nom, le propriétaire, les URL HTTPS exactes de retour et d’après-déconnexion, les portées d’identité et les audiences de ressources nécessaires. Utilisez une URL telle que https://YOUR_HOST/api/auth/callback/lssm, sans joker.
  • Choisissez avec l’opérateur une admission publique pour identités vérifiées ou une politique d’invitation et de droits. Conservez les appartenances, rôles et autorisations métier dans l’application consommatrice.
  • Après approbation, le propriétaire effectue la rotation du secret client pour obtenir sa valeur affichée une seule fois. Conservez l’identifiant d’application, l’identifiant client et le secret dans le gestionnaire de secrets du serveur. N’exposez jamais le secret dans un navigateur, une application mobile ou une configuration publique.
  • L’interface de gestion prévue est /auth/applications sur id.lssm.co. Pendant le déploiement, demandez à l’assistance la procédure disponible ; ne supposez pas qu’une route non qualifiée est active.

Paramètres du protocole

Obtenez les points d’autorisation, de jeton et JWKS à partir du document de découverte canonique. Vérifiez que son émetteur est exactement https://id.lssm.co/api/auth, y compris après de nouvelles tentatives. Refusez un autre émetteur découvert.

Les audiences de ressources sont examinées séparément. Les métadonnées d’inscription ne peuvent pas élargir la politique d’audiences valides du déploiement. L’audience du jeton d’identité est l’identifiant client, pas l’audience de ressource.

Émetteur
https://id.lssm.co/api/auth
Découverte
https://id.lssm.co/.well-known/openid-configuration
Authentification du client
Client serveur confidentiel ; client_secret_basic
Autorisation
authorization_code avec PKCE S256 ; refresh_token uniquement si approuvé
Portées d’identité
openid ; profile et email selon le besoin ; offline_access seulement si approuvé
Portée d’application
https://lssm.co/scopes/YOUR_APPROVED_APPLICATION_ID
Audience du jeton d’identité
Votre identifiant client approuvé
Audience de ressource
L’audience de ressource exacte approuvée par l’opérateur
Sujet
sub pairwise lié à l’émetteur ; pas l’adresse électronique

Utiliser la configuration serveur vérifiée

Utilisez Better Auth 1.7.14 et le module de référence complet proposé ci-dessous. Il utilise le plugin officiel Generic OAuth et vérifie l’émetteur canonique au démarrage et lors des nouvelles tentatives. Fournissez un adaptateur de base persistante compatible, un secret de session dédié d’au moins 32 caractères et les identifiants serveur approuvés. La création de la base et ses migrations restent des étapes explicites de déploiement.

Conservez le module de référence complet : ses contrôles de compatibilité du client confidentiel font partie de la configuration. Il exige un jeton d’identité signé, lié au nonce exact généré par le serveur, et l’émetteur de la réponse d’autorisation. Il refuse un repli sur userinfo seul et la connexion par jeton d’identité soumis par le navigateur. Userinfo ne peut compléter que le sujet vérifié ; un identifiant de profil ne remplace pas cette preuve.

La configuration demande uniquement openid, profile, email et la portée exacte de l’application. Ajoutez offline_access seulement après approbation si des jetons de renouvellement sont nécessaires. Ces extraits ne créent aucun droit produit ni la base d’un autre produit.

APP_ORIGIN doit être l’origine HTTPS exacte, par exemple https://YOUR_HOST, sans chemin ni barre finale. Utilisez un secret de session serveur distinct ; ne réutilisez pas le secret OAuth comme secret de session.

Configuration serveur de l’application

import { betterAuth } from 'better-auth';
import { externalIdentityOptions } from './lssm-id-auth';
import { database } from './database'; // Your persistent supported adapter.

export const auth = betterAuth(externalIdentityOptions({
  origin: process.env.APP_ORIGIN!,
  database,
  sessionSecret: process.env.APP_SESSION_SECRET!,
  clientId: process.env.LSSM_CLIENT_ID!,
  clientSecret: process.env.LSSM_CLIENT_SECRET!,
  applicationId: process.env.LSSM_APPLICATION_ID!,
}));

Gestionnaire Next.js App Router

// app/api/auth/[...all]/route.ts
import { toNextJsHandler } from 'better-auth/next-js';
import { auth } from '@/lib/auth';

export const { GET, POST } = toNextJsHandler(auth);

Gestionnaire de serveur générique

// Mount on your HTTPS server; preserve the reviewed canonical origin.
import { auth } from './auth';
import { handleAuthorizedApplicationRequest } from './application';

export async function fetch(request: Request): Promise<Response> {
  if (new URL(request.url).pathname.startsWith('/api/auth/')) {
    return auth.handler(request);
  }
  const session = await auth.api.getSession({
    headers: request.headers,
    query: { disableCookieCache: true },
  });
  if (!session) return new Response('Sign in required', { status: 401 });
  // This application handler must check its own live memberships and grants.
  return handleAuthorizedApplicationRequest(request, session);
}

Client navigateur sur l’origine de votre application

import { createAuthClient } from 'better-auth/client';

const authClient = createAuthClient();
await authClient.signIn.social({ provider: 'lssm', callbackURL: '/account' });
// Product-local sign-out; central LSSM ID logout is a separate choice.
await authClient.signOut();
  • Télécharger le module TypeScript complet de configuration vérifiée

Vérifier le retour et l’autorité locale

  • Liez chaque autorisation navigateur à un état à usage unique, un nonce, un défi et vérificateur S256 et une URL de retour exacte. Vérifiez l’émetteur de la réponse d’autorisation.
  • Vérifiez la signature du jeton d’identité avec la découverte et les JWKS de confiance, l’émetteur exact, l’audience client, le nonce et l’expiration. Un jeton d’accès n’est pas un jeton d’identité. Refusez les preuves absentes ou invalides.
  • Utilisez l’émetteur et le sujet pairwise comme identité, pas une correspondance d’adresses électroniques. Ne fusionnez pas silencieusement une identité locale existante sur la seule base d’une adresse identique.
  • Créez une session locale seulement après admission centrale réussie. Recalculez les appartenances et droits produit après le retour et le changement de compte. Un rôle d’administration centrale n’accorde pas d’accès produit.
  • Utilisez HTTPS et des cookies sécurisés propres à l’application. Séparez sa session et ses identifiants du cookie Passport central, des clés API et des autorisations d’agents. Ne faites pas confiance à des en-têtes d’hôte transférés arbitraires pour définir l’émetteur ou le retour.

Consentement, rotation et déconnexion

Les modifications de métadonnées nécessitent un nouvel examen par l’opérateur. Suspension, révocation et rotation arrêtent les identifiants et autorisations centrales concernés ; une session locale existante suit toujours la politique de révocation de l’application. Définissez explicitement cette politique.

Le module de référence désactive la déconnexion automatique du fournisseur. Quitter votre produit termine sa session locale ; quitter LSSM ID est une action utilisateur distincte. Testez le choix du compte, les deux déconnexions et les droits locaux après changement.

La connexion n’autorise pas les messages, dépôts, rapports ou autres données de plateformes. Les connexions aux plateformes exigent leurs propres consentements, portées et ressources. Sessions navigateur, clés API et autorisations d’agents restent distinctes.

Qualifier avant l’utilisation en production

  • Enregistrez la version de configuration approuvée par l’opérateur, les sources exactes et les identifiants de déploiement hébergé.
  • Exécutez un vrai parcours autorisation → consentement → retour → session locale sur l’hôte HTTPS réel. Testez aussi le refus de consentement et les états, nonces, émetteurs, audiences, signatures et expirations invalides.
  • Si autorisé, testez le renouvellement, la rotation et la révocation. Testez le choix du compte, le refus d’appartenance locale et la déconnexion sans autorité mise en cache.
  • Un exemple source, un client inscrit ou une URL de début d’autorisation ne constituent pas une preuve de production. L’application de référence hébergée séparément et chaque application de l’écosystème ont besoin de leur propre parcours réel.

Contactez support@lssm.co pour l’intégration et security@lssm.co en cas de problème de sécurité suspecté. Les pages de confidentialité et de suppression expliquent les demandes sur les données personnelles.

Source de référence

Version Better Auth fixée
1.7.14
Commit source examiné
cd244e959faddc42ed30d6a6c5089618e37c1ab0
  • examples/lssm-id-external-app/src/auth.ts
Confidentialité de LSSM IDConditions d'utilisation de LSSM IDMentions légales de LSSM IDSupprimer vos données LSSM IDsupport@lssm.co

CHAMAN VENTURES · SASU · RCS Paris · SIREN 989 498 902