Skip to Content

Enterprise SSO par Organisation

L’Enterprise Single Sign-On (SSO) permet à chaque organisation dans Auris de déléguer l’authentification à son propre fournisseur d’identité d’entreprise. Quand un utilisateur se connecte avec une adresse e-mail appartenant à un domaine vérifié, Auris le redirige automatiquement vers l’IdP de son organisation au lieu de présenter le formulaire standard nom d’utilisateur/mot de passe. Après une authentification réussie auprès de l’IdP, l’utilisateur est retourné à Auris et associé à un compte existant ou provisionné automatiquement via création JIT (Just-in-Time).

Cette fonctionnalité est conçue pour les produits SaaS B2B où les clients enterprise exigent que leurs employés s’authentifient exclusivement via des credentials gérés par l’entreprise.


Protocoles Supportés

Auris supporte deux protocoles SSO, tous deux implémentés via la fonctionnalité de courtier d’identité de Keycloak :

SAML 2.0 — Security Assertion Markup Language. Utilisé par les IdP enterprise incluant Microsoft Azure AD (Entra ID), Okta, ADFS, Ping Identity et Shibboleth. SAML utilise des assertions basées sur XML signées avec des certificats X.509.

OIDC (OpenID Connect) — Une couche d’identité moderne sur OAuth 2.0. Utilisé par Google Workspace, Okta (comme fournisseur OIDC), Microsoft Azure AD (supporte aussi OIDC) et tout Authorization Server OAuth 2.0 avec un endpoint de découverte OIDC.


Vérification du Domaine

Avant qu’une connexion SSO puisse être activée, l’organisation doit prouver la propriété du domaine e-mail. Cela empêche une organisation d’intercepter les connexions pour un domaine qu’elle ne possède pas.

La vérification utilise un enregistrement DNS TXT :

  1. Auris génère un token de vérification unique pour le domaine.
  2. L’administrateur DNS de l’organisation crée un enregistrement TXT : _auris-verify.domaine.com avec le token comme valeur.
  3. Un admin clique “Vérifier” dans la Console (ou appelle l’API de vérification).
  4. Auris effectue une recherche DNS pour l’enregistrement TXT et confirme que le token correspond.
POST/api/organizations/[orgId]/sso/domainsRequires: manage:sso_connections

Ajoute un domaine à vérifier pour le SSO. Retourne le token de vérification à ajouter au DNS.

{ "domain": "acme.com" }

Réponse :

{ "id": "dom_01HX...", "domain": "acme.com", "verificationToken": "auris-verify=a1b2c3d4e5f6...", "verificationMethod": "TXT", "status": "PENDING" }

Enregistrement DNS à créer :

_auris-verify.acme.com TXT "auris-verify=a1b2c3d4e5f6..."
POST/api/organizations/[orgId]/sso/domains/[domainId]/checkRequires: manage:sso_connections

Lance une vérification DNS. Retourne le statut mis à jour du domaine : PENDING, ACTIVE ou FAILED.

La propagation DNS peut prendre jusqu’à 48 heures, bien que la plupart des modifications se propagent en quelques minutes. Si la vérification échoue immédiatement après avoir ajouté l’enregistrement, attends quelques minutes et réessaie.


Configuration SAML 2.0

Obtiens les métadonnées de l’IdP

Depuis l’IdP de ton client, récupère :

  • Un Metadata URL — une URL fournissant le metadata XML SAML de l’IdP (préféré, car il met à jour automatiquement les certificats)
  • Un fichier XML de metadata — une copie téléchargée du metadata

Le metadata contient l’Entity ID, l’SSO URL et le certificat de signature.

Crée la connexion SSO

POST/api/organizations/[orgId]/sso/connectionsRequires: manage:sso_connections

Crée une nouvelle connexion SSO pour l’organisation.

{ "type": "SAML", "name": "Acme Azure AD", "config": { "entityId": "https://sts.windows.net/tenant-id-here/", "ssoUrl": "https://login.microsoftonline.com/tenant-id/saml2", "certificate": "MIICIjANBgkq...", "signRequests": true, "nameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" } }

Champs de configuration SAML :

ChampObligatoireNotes
entityId✅L’Entity ID de l’IdP depuis ses métadonnées
ssoUrl✅L’URL de l’endpoint SSO SAML de l’IdP
certificate✅Le certificat de signature X.509 de l’IdP (encodé PEM, sans en-têtes)
signRequestsNonSi signer les requêtes SAML sortantes (défaut : true)
nameIdFormatNonFormat NameID préféré. Défaut : emailAddress

Configure le mappage des attributs

Mappe les attributs de l’assertion SAML aux champs utilisateur d’Auris :

{ "attributeMapping": { "email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "firstName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "lastName": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" } }

Fournis les métadonnées SP d’Auris à l’IdP

Après avoir créé la connexion, Auris génère les métadonnées du Service Provider (SP) que ton client doit enregistrer dans son propre IdP :

  • SP Entity ID : https://auth.votreapp.com/saml/org-slug
  • ACS URL (Assertion Consumer Service) : https://auth.votreapp.com/saml/org-slug/callback
  • SP Metadata URL : https://auth.votreapp.com/saml/org-slug/metadata

Partage l’URL des métadonnées SP avec l’administrateur IT de ton client. La plupart des IdP enterprise acceptent directement une URL de métadonnées.

Active la connexion

POST/api/organizations/[orgId]/sso/connections/[id]/activateRequires: manage:sso_connections

Active la connexion SSO. La vérification du domaine doit être complétée avant l’activation.


Configuration OIDC

Obtiens la configuration OIDC

Depuis le fournisseur OIDC du client, tu as besoin de :

  • Discovery URL (préféré) : https://provider.exemple.com/.well-known/openid-configuration
  • Ou manuellement : Authorization endpoint, Token endpoint, JWKS URI, Client ID, Client Secret

Crée la connexion SSO

{ "type": "OIDC", "name": "Acme Google Workspace", "config": { "discoveryUrl": "https://accounts.google.com/.well-known/openid-configuration", "clientId": "123456789-abc.apps.googleusercontent.com", "clientSecret": "GOCSPX-...", "scopes": ["openid", "profile", "email"], "pkce": true } }

Champs de configuration OIDC :

ChampObligatoireNotes
discoveryUrlRecommandéEndpoint de découverte OIDC. Si fourni, les autres endpoints sont inférés automatiquement
authorizationUrlSi pas de discoveryUrlEndpoint d’autorisation OAuth2
tokenUrlSi pas de discoveryUrlEndpoint token OAuth2
jwksUrlSi pas de discoveryUrlEndpoint JWKS pour la vérification du token
clientId✅Le Client ID OAuth2 enregistré auprès de l’IdP
clientSecret✅Le Client Secret OAuth2
scopesNonDéfaut : ["openid", "profile", "email"]
pkceNonActive PKCE pour le flux OIDC (recommandé, défaut : true)

Enregistre l’URI de redirection Auris dans l’IdP

Fournis cet URI de redirection lors de l’enregistrement de l’application Auris dans l’IdP du client :

https://auth.votreapp.com/oidc/org-slug/callback

Active la connexion

Comme pour SAML — la vérification du domaine doit être complétée avant l’activation.


Flux de Connexion SSO

Une fois qu’une connexion SSO est active et qu’un domaine est vérifié, le flux de connexion change pour les utilisateurs avec des adresses e-mail correspondantes :

  1. L’utilisateur saisit son e-mail dans la page Hosted Login d’Auris.
  2. Auris appelle l’endpoint de détection SSO :
POST/api/auth/sso/detect

Accepte une adresse e-mail et retourne les détails de la connexion SSO s’il existe une connexion active pour le domaine e-mail.

{ "email": "[email protected]" }

Réponse quand le SSO est configuré :

{ "ssoRequired": true, "connectionType": "SAML", "organizationName": "Acme Corporation", "loginUrl": "/api/auth/sso/login/acme-azure-ad" }
  1. Auris redirige l’utilisateur vers l’IdP via :
GET/api/auth/sso/login/[alias]

Initie le flux SSO en redirigeant l’utilisateur vers l’IdP configuré.

  1. L’utilisateur s’authentifie auprès de son IdP d’entreprise.

  2. L’IdP redirige vers Auris :

POST/api/auth/sso/callback

Reçoit l’assertion SAML ou le code d’autorisation OIDC. Valide la réponse, résout ou crée l’utilisateur Auris et émet des tokens Auris.

  1. Auris émet son propre access token et refresh token. À partir de ce moment, la session SSO est indépendante — les durées des tokens Auris sont gouvernées par les paramètres Auris, pas par la session de l’IdP.

Provisioning JIT (Just-in-Time)

Si un utilisateur s’authentifie avec succès auprès de l’IdP mais n’a pas de compte Auris existant, Auris en crée un automatiquement lors du callback SSO. C’est appelé le provisioning Just-in-Time.

Le provisioning JIT crée l’utilisateur avec :

  • E-mail, firstName et lastName depuis la réponse de l’IdP ou l’assertion SAML
  • Appartenance à l’organisation liée à la connexion SSO
  • Le rôle par défaut configuré pour les utilisateurs provisionnés JIT (configurable par connexion, défaut : MEMBER)

Le compte de l’utilisateur persiste après la première connexion — les connexions suivantes se résolvent au même compte.

Le provisioning JIT crée les utilisateurs avec le rôle MEMBER par défaut. Si ton application nécessite des rôles élevés pour certains utilisateurs, utilise le provisioning SCIM en complément du SSO pour pré-provisionner les utilisateurs avec les bons rôles avant leur première connexion.


Connexions SSO Multiples par Organisation

Une organisation peut avoir plusieurs connexions SSO actives — par exemple, SAML pour un déploiement Azure AD et OIDC pour un sous-ensemble d’utilisateurs sur Google Workspace.

L’endpoint de détection SSO effectue la correspondance sur la base du domaine e-mail vérifié. Si plusieurs connexions partagent le même domaine, la connexion activée le plus récemment a la priorité. En pratique, chaque connexion SSO devrait être associée à des domaines vérifiés distincts pour éviter toute ambiguïté.


Gestion des Connexions SSO

GET/api/organizations/[orgId]/sso/connectionsRequires: view:sso_connections

Liste toutes les connexions SSO pour une organisation.

GET/api/organizations/[orgId]/sso/connections/[id]Requires: view:sso_connections

Obtient une connexion SSO spécifique avec son état actuel et sa configuration.

PATCH/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connections

Met à jour une connexion SSO. Tu peux mettre à jour les champs de configuration, le nom ou les mappages d’attributs sans désactiver la connexion.

POST/api/organizations/[orgId]/sso/connections/[id]/deactivateRequires: manage:sso_connections

Désactive la connexion SSO. Les utilisateurs avec des domaines e-mail correspondants ne seront plus redirigés vers l’IdP. Ils reviennent à l’authentification Auris standard.

DELETE/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connections

Supprime définitivement la connexion SSO. Les comptes utilisateur existants créés via provisioning JIT ne sont pas supprimés.


Assistant de Configuration dans la Console

La gestion SSO est disponible sur la page de détail de l’organisation dans la Console Admin, dans l’onglet “Enterprise SSO”.

Ajouter une connexion SAML :

  1. Navigue vers Console Admin → Organisations → [Nom org] → Enterprise SSO.
  2. Clique “Ajouter une Connexion SSO”. Sélectionne SAML 2.0.
  3. Saisis l’URL de métadonnées de l’IdP ou colle le XML.
  4. Examine la configuration analysée (Entity ID, SSO URL, certificat).
  5. Sauvegarde. La connexion est créée en état inactif.
  6. Navigue dans l’onglet “Domaines” et ajoute le domaine e-mail de l’organisation.
  7. Ajoute l’enregistrement DNS TXT et clique “Vérifier le Domaine”.
  8. Une fois le domaine vérifié, reviens à l’onglet SSO et clique “Activer”.

Ajouter une connexion OIDC :

Même flux, mais le formulaire demande Discovery URL, Client ID et Client Secret. Auris récupère automatiquement le document de découverte et remplit les champs restants.


Permissions Requises

OpérationPermission
Voir les connexions SSOview:sso_connections
Créer / mettre à jour / supprimer des connexions SSOmanage:sso_connections
Gérer la vérification du domainemanage:sso_connections

Pages Associées