Capacité

Backend SSO

SSO moderne en amont, modèle d'authentification legacy en aval — sans modifier une seule ligne de code backend.

La plupart des applications d'entreprise ont été construites avant les standards d'identité fédérée modernes comme SAML ou OIDC. Ces applications reconnaissent généralement l'utilisateur via un en-tête HTTP, une valeur Basic-Auth ou un cookie de session qu'elles font déjà confiance. TR7 AAM exécute la couche d'authentification moderne en amont de l'application : login, MFA, accès conditionnel et confiance dispositif y sont évalués. L'identité authentifiée est ensuite traduite dans le format exact que le backend accepte déjà et transmise à l'application. Ainsi, les applications legacy bénéficient d'une expérience SSO moderne sans aucune modification de leur code, de leur modèle de session existant ou de leur logique d'identité backend. L'utilisateur se connecte une seule fois ; AAM transporte l'identité correcte vers chaque application en toute sécurité. Pour la sécurité, tout en-tête d'identité usurpé ou non fiable provenant de l'utilisateur est supprimé en premier. Seule la valeur d'identité fiable produite par AAM est transmise au backend. Les règles sont délimitées par route ; la déconnexion et la perte de session sont gérées par le même moteur. Résultat : les applications legacy rejoignent le SSO moderne sans modification de code, les utilisateurs travaillent avec une session unique, et l'organisation dispose d'un contrôle d'identité et d'accès centralisé.

5
Formes d'injection en production — en-tête, Basic, Bearer, cookie, SAML-SP
0
Lignes de code backend modifiées pour activer le SSO moderne
Strip + Inject
Discipline appliquée à chaque valeur — l'usurpation entrante échoue avant que la valeur de confiance soit écrite

Les backends legacy n'ont jamais été conçus pour accepter l'identité moderne

De nombreuses applications fonctionnant en entreprise — portails internes, systèmes de facturation, consoles d'opérations, panneaux d'administration fournis par des éditeurs, outils métier legacy — ont été construites avant que SAML ou OIDC ne se généralisent. Elles reconnaissent généralement l'utilisateur non pas via des tokens modernes, mais via un en-tête HTTP, un identifiant Basic-Auth ou un cookie de session qu'elles font déjà confiance.

Migrer ces applications vers un SSO moderne semble simple en théorie : réécrire le chemin d'authentification backend, ajouter la prise en charge SAML/OIDC et connecter l'application au fournisseur d'identité central. En pratique, cela n'arrive presque jamais. Le code source peut être ancien, l'application peut appartenir à un éditeur tiers, le changement peut perturber un processus métier réglementé, ou le coût n'est tout simplement pas justifié pour un outil interne qui fonctionne.

Les organisations se retrouvent alors à choisir entre deux mauvaises options : laisser les applications legacy en dehors du périmètre d'identité moderne, ou construire une intégration fragile et distincte pour chacune. Le résultat est une expérience utilisateur fragmentée, un contrôle d'accès décentralisé et une logique d'identité dispersée dans le modèle legacy de chaque backend.

La bonne approche consiste à positionner la couche d'accès moderne en amont de l'application. L'utilisateur passe d'abord par les contrôles d'identité centraux, de MFA, d'accès conditionnel et de confiance dispositif ; l'identité authentifiée est ensuite traduite dans un format que le backend comprend déjà. L'application bénéficie d'une expérience SSO moderne sans modification de code.

Mais cette transition doit être réalisée avec soin. Si les en-têtes d'identité usurpés de l'utilisateur sont transmis au backend sans être supprimés, n'importe qui peut ajouter son propre en-tête X-Auth-User à sa requête et usurper l'identité d'un autre utilisateur. La passerelle doit supprimer les valeurs entrantes non fiables, injecter uniquement l'identité fiable qu'elle produit elle-même, et délimiter cela strictement par route.

La déconnexion, la perte de session et l'état d'identité piloté par le backend doivent également transiter par le même moteur. Sinon, l'utilisateur peut sembler déconnecté du portail tandis que la session backend reste active, ou la session backend peut tomber sans que la couche d'accès ne s'en aperçoive.

Le Backend SSO ne consiste pas à forcer la réécriture des applications legacy — il s'agit de placer le contrôle d'identité moderne en amont de l'application, et de traduire en toute sécurité l'identité de l'utilisateur authentifié dans le langage que le backend accepte déjà.

Notre approche

Un objet de configuration par backend, cinq formes d'injection, coordonnés avec le reste du moteur d'accès.

Supprimer chaque valeur entrante, puis injecter celle authentifiée

Chaque règle d'injection commence par supprimer toute copie entrante de l'en-tête cible, du cookie ou de la valeur Authorization, puis injecte la version dérivée de la session authentifiée. Un utilisateur qui envoie son propre en-tête "X-Auth-User" ne peut pas usurper l'identité d'autrui — son en-tête est supprimé avant que la passerelle n'ajoute celui de confiance.

Cinq formes d'injection pour les patterns legacy rencontrés

En-têtes personnalisés (X-Auth-User, X-Forwarded-User, tout ce qu'attend le backend), Authorization Basic pour les applications qui nécessitent une paire nom d'utilisateur:mot de passe, Authorization Bearer pour les backends compatibles avec les tokens, fusion de valeur de cookie pour les applications qui lisent un cookie nommé, et SAML-SP pour les backends qui attendent une assertion SAML signée. Chaque injection a sa propre configuration ; un seul backend peut utiliser plusieurs formes simultanément.

Des conditions par injection délimitent chaque règle aux bonnes routes

Chaque règle d'injection porte sa propre expression de condition — n'appliquer que sur le chemin admin, uniquement quand un attribut de session spécifique est présent, uniquement pour un locataire. Le même backend peut recevoir une identité plus riche sur les routes privilégiées et un sous-ensemble minimal sur les routes publiques.

La perte de session backend et la déconnexion initiée par le backend remontent à travers la passerelle

Quand le backend signale que la session de l'utilisateur a disparu (une forme de réponse connue par service), ou quand le backend lui-même déconnecte l'utilisateur, AAM détecte le signal, nettoie la session côté passerelle et redirige selon la politique configurée. La priorité logout-wins garantit que le nettoyage s'effectue toujours avant toute injection ultérieure.

Capacités

Cinq formes d'injection en production, la discipline de suppression des entrées qui les rend sûres, ainsi que la feuille de route pour les injections de protocoles de niveau supérieur.

Injection d'en-tête — tout nom d'en-tête auquel le backend fait confiance

La forme la plus simple et la plus courante. Configurez un nom d'en-tête (X-Auth-User, X-Forwarded-User, REMOTE_USER, ce que le backend lit) et la variable intelligente qui produit la valeur (nom d'utilisateur, e-mail, liste de groupes, nom d'affichage). L'en-tête est supprimé des requêtes entrantes, puis rajouté depuis la session authentifiée avant que la requête n'atteigne le backend.

Injection Authorization Basic pour les applications qui nécessitent un nom d'utilisateur:mot de passe

Pour les applications legacy qui s'authentifient via HTTP Basic, la passerelle injecte Authorization: Basicdérivé d'une variable intelligente de nom d'utilisateur et d'un identifiant stocké. Le backend continue d'effectuer sa vérification Basic-Auth native ; l'utilisateur ne voit jamais l'identifiant, ne le saisit jamais et ne peut pas l'exfiltrer.

Injection Authorization Bearer pour les backends compatibles avec les tokens

Pour les backends qui parlent déjà en Bearer tokens (API internes, microservices, applications intranet modernes) AAM injecte Authorization: Bearer. La source du token est configurable par service — un token signé émis par AAM, un token backend à longue durée de vie conservé dans un stockage géré par l'opérateur, ou toute autre forme que le backend vérifiera.

Injection de valeur de cookie avec fusion sécurisée en en-tête unique

Les applications qui lisent l'identité depuis un cookie nommé sont prises en charge avec l'injection de valeur de cookie. La passerelle fusionne la paire name=value injectée dans l'en-tête Cookie de la requête sans écraser les autres cookies — la plus susceptible aux erreurs des quatre formes de style en-tête, traitée avec une logique de fusion explicite plutôt que des écrasements naïfs.

Injection SAML-SP — une assertion SAML signée par requête

Pour les backends qui attendent une assertion SAML signée sur chaque requête, la passerelle génère une assertion SAML 2.0 depuis la session authentifiée, la signe avec la clé de signature SAML d'AAM et la transmet sur l'en-tête configuré au backend. Typique pour les intégrations de fédération d'identité du secteur public et les backends SaaS d'entreprise. L'utilisateur se connecte avec un IdP moderne ; le backend reçoit une assertion SAML fraîche et délimitée à chaque requête.

Discipline de suppression des entrées appliquée à chaque valeur injectée

Chaque injection est couplée à une suppression entrante de la même cible. Un utilisateur qui définit X-Auth-User dans sa propre requête, qui envoie un Cookie forgé avec une valeur d'identité falsifiée, ou qui rejoue un en-tête Authorization depuis ailleurs ne peut pas faire survivre la valeur à travers la passerelle. L'injection ne s'exécute qu'après que la suppression a vidé le slot.

Conditions par injection pour la portée et la priorité

Chaque règle d'injection peut attacher une condition — même langage d'expression que la politique d'accès conditionnel. N'injecter que sur le chemin admin ; n'injecter que lorsque l'utilisateur est dans un groupe spécifique ; n'injecter la variante privilégiée que lorsqu'un attribut est présent. Les conditions sont compilées de manière sécurisée par rapport à la priorité ACL, de sorte que plusieurs règles sur un même backend se composent correctement.

Protection authentifié-uniquement autour de chaque injection

Toutes les injections sont conditionnées à l'état authentifié — elles ne s'exécutent que lorsque la requête porte une session AAM valide. Un utilisateur qui contourne l'authentification via une route mal configurée ne peut pas recevoir accidentellement des identifiants backend injectés ; une requête anonyme atteint toujours le backend sans injection.

Feuille de route — formes d'injection Kerberos et NTLM

Les formes d'injection de protocoles de niveau supérieur — délégation contrainte Kerberos pour les backends qui nécessitent un ticket de service, NTLM pour les environnements Windows anciens — sont sur la feuille de route. L'objet de configuration et la plomberie conditionnelle les accommodent déjà ; le runtime spécifique au protocole est le travail restant.

Profondeur opérationnelle

Les mécanismes qui rendent l'injection de niveau en-tête sûre à la bordure d'accès.

01

Empilement de conditions sécurisé par rapport à la priorité à la compilation

Les conditions par injection se composent avec les autres décisions pilotées par ACL de la passerelle (état d'authentification, politique d'accès, sélection du backend). Le compilateur de conditions utilise un pattern d'entrées supplémentaires de sorte que les conditions d'injection s'évaluent toujours après l'authentification et la politique, jamais avant — une règle par injection ne peut pas accidentellement inverser le résultat d'une décision de politique de priorité supérieure.

02

Récupérations conditionnelles de variables frontend via le dispatcher

Lorsqu'une injection a besoin d'une valeur qui n'est pas dans le sac de session — une valeur dérivée d'une récupération par requête (expansion de groupe, recherche d'attribut) — le dispatcher émet une récupération conditionnelle qui ne s'exécute que lorsque la condition de l'injection correspond. Les backends qui ne voient jamais d'injection ne paient jamais le coût de la récupération de la valeur.

03

Détection de perte de session backend avec signature de réponse configurable

Chaque service peut déclarer la signature de réponse qui signifie « ma session a disparu » — un code de statut spécifique, un en-tête de réponse spécifique, un marqueur de corps. Lorsque la passerelle voit cette signature, elle marque l'indicateur de perte de session, nettoie la session côté passerelle et redirige selon la politique configurée.

04

Nettoyage de déconnexion initiée par le backend et chaîne de redirection

Lorsque le backend lui-même déconnecte l'utilisateur — typiquement en répondant avec une signature de déconnexion connue — la passerelle exécute un nettoyage en trois étapes : effacer les cookies côté passerelle, supprimer l'enregistrement de session et rediriger via la cible configurée. La priorité logout-wins garantit que ce chemin prend la priorité sur toute injection en cours.

05

Gestion des valeurs chiffrées, jamais journalisées en clair

Les identifiants et tokens utilisés par les injections sont stockés chiffrés dans le store de configuration et ne sont jamais écrits en clair dans les logs d'accès. Les entrées d'audit enregistrent qu'une injection s'est exécutée sur une requête, pas la valeur qu'elle portait. Les opérateurs voient la politique ; la charge utile sur le fil reste sur le fil.

06

Feuille de route — flux de ré-authentification silencieuse lorsque la session backend est perdue

Un flux de ré-authentification silencieuse qui utilise un 302 vers le daemon AAM pour rétablir une session backend sans renvoyer l'utilisateur vers une page de login est sur la feuille de route. La propagation de déconnexion initiée par AAM — pousser un signal de déconnexion vers chaque backend qui a reçu une identité injectée — est également sur la feuille de route.

Où les équipes l'utilisent

SSO moderne sur le portail intranet existant

Un portail interne qui faisait confiance à X-Remote-User depuis une décennie continue de lire X-Remote-User. La passerelle exécute le SAML/OIDC moderne à la bordure, puis injecte le même en-tête qu'elle a toujours vu. Pas de déploiement backend, pas de bascule de migration.

Authorization Bearer en amont des microservices

Un cluster de microservices internes souhaite une authentification par Bearer token mais ne veut pas exécuter un flux d'identité par service. La passerelle émet un token signé par requête et l'injecte ; chaque service vérifie le token par rapport aux clés de la passerelle.

Une seule connexion, plusieurs formes d'authentification backend

Un déploiement multi-applications comprend une application qui veut Basic Auth, une qui veut un en-tête personnalisé et une qui veut un cookie. Une seule passerelle AAM gère le login une fois ; chaque backend reçoit la forme qu'il attend, simultanément, avec des conditions par route.

Propagation d'identité de qualité audit

Les régimes de conformité qui exigent une chaîne d'identité claire — « qui était authentifié lorsque cette requête a atteint le backend » — obtiennent cette chaîne produite par le flux d'audit de la passerelle. Les valeurs d'en-tête, les conditions d'injection et le sujet authentifié sont enregistrés ensemble.

Questions fréquentes

Comment cela fonctionne-t-il sans modifier le code du backend ?
Le backend continue de faire ce qu'il fait déjà — lire X-Remote-User, accepter les identifiants Basic-Auth, valider un Bearer token, reconnaître un cookie de session. La passerelle exécute le login moderne à la bordure et produit ensuite la forme exacte en laquelle le backend a déjà confiance. Du point de vue du backend, rien n'a changé ; du point de vue de l'utilisateur, il s'est connecté avec SAML, OIDC ou MFA à la porte d'entrée.
Que se passe-t-il si un utilisateur envoie son propre en-tête X-Auth-User pour usurper une autre identité ?
Son en-tête est supprimé sur le chemin entrant avant que la passerelle n'ajoute le sien. Chaque règle d'injection est couplée à une suppression inconditionnelle de la même cible — nom d'en-tête, nom de cookie ou valeur Authorization. Une valeur usurpée ne peut pas survivre à la passerelle car le slot est vidé avant que la valeur de confiance y soit écrite.
La passerelle peut-elle envoyer une assertion SAML signée à un backend qui en attend une par requête ?
Oui. L'injection SAML-SP produit une assertion SAML 2.0 depuis la session authentifiée à chaque requête, la signe avec la clé de signature SAML d'AAM et la transmet sur l'en-tête configuré au backend. Utilisations typiques : intégrations de fédération d'identité du secteur public, backends SaaS d'entreprise qui attendent une assertion signée. La délégation contrainte Kerberos et l'injection NTLM — pour les environnements Windows legacy qui exigent ces protocoles — restent sur la feuille de route.
Que se passe-t-il lorsque la session backend expire mais que la session AAM est encore valide ?
Chaque service peut déclarer la signature de réponse qui signifie « session backend perdue » — un statut, en-tête ou marqueur de corps spécifique. Lorsque la passerelle voit cette signature, elle marque la session côté passerelle, nettoie l'état et redirige l'utilisateur selon la politique configurée. Un flux de ré-authentification silencieuse qui rétablit la session backend sans renvoyer l'utilisateur vers une page de login est sur la feuille de route.
Une seule passerelle AAM peut-elle exécuter différentes formes d'injection pour différents backends simultanément ?
Oui. Chaque backend dispose de son propre objet de configuration listant les injections dont il a besoin. Un backend peut vouloir un en-tête personnalisé, un autre peut vouloir Basic Auth, un troisième peut vouloir Bearer plus une fusion de cookie — tous se trouvent derrière une seule passerelle AAM et une seule expérience de login. Les conditions par injection vous permettent d'affiner davantage quelles routes à l'intérieur d'un backend reçoivent quelle injection.

SSO moderne en amont, authentification legacy en aval

Nous déploierons le Backend SSO contre vos applications réelles — en conservant leur modèle de confiance existant, en retirant l'identifiant des mains de l'utilisateur et en produisant une chaîne d'identité de qualité audit pour chaque requête.