Enterprise SSO per Organizzazione
L’Enterprise Single Sign-On (SSO) consente a ciascuna organizzazione in Auris di delegare l’autenticazione al proprio identity provider aziendale. Quando un utente esegue il login con un indirizzo email appartenente a un dominio verificato, Auris lo reindirizza automaticamente all’IdP della sua organizzazione invece di presentare il modulo standard di username/password. Dopo l’autenticazione riuscita all’IdP, l’utente viene restituito ad Auris e viene associato a un account esistente o viene eseguito il provisioning automatico tramite creazione JIT (Just-in-Time).
Questa funzionalità è progettata per prodotti SaaS B2B dove i clienti enterprise richiedono che i propri dipendenti si autentichino esclusivamente tramite credenziali gestite dall’azienda.
Protocolli Supportati
Auris supporta due protocolli SSO, entrambi implementati tramite la funzionalità di identity broker di Keycloak:
SAML 2.0 — Security Assertion Markup Language. Usato da IdP enterprise tra cui Microsoft Azure AD (Entra ID), Okta, ADFS, Ping Identity e Shibboleth. SAML usa assertion basate su XML firmate con certificati X.509.
OIDC (OpenID Connect) — Un moderno layer di identità su OAuth 2.0. Usato da Google Workspace, Okta (come provider OIDC), Microsoft Azure AD (supporta anche OIDC) e qualsiasi Authorization Server OAuth 2.0 con un endpoint di discovery OIDC.
Verifica del Dominio
Prima che una connessione SSO possa essere attivata, l’organizzazione deve dimostrare la proprietà del dominio email. Questo impedisce a un’organizzazione di intercettare i login per un dominio che non possiede.
La verifica usa un record DNS TXT:
- Auris genera un token di verifica univoco per il dominio.
- L’amministratore DNS dell’organizzazione crea un record TXT:
_auris-verify.dominio.comcon il token come valore. - Un admin clicca “Verifica” nella Console (o chiama l’API di verifica).
- Auris esegue una ricerca DNS per il record TXT e conferma che il token corrisponde.
/api/organizations/[orgId]/sso/domainsRequires: manage:sso_connectionsAggiunge un dominio da verificare per l’SSO. Restituisce il token di verifica da aggiungere al DNS.
{
"domain": "acme.com"
}Risposta:
{
"id": "dom_01HX...",
"domain": "acme.com",
"verificationToken": "auris-verify=a1b2c3d4e5f6...",
"verificationMethod": "TXT",
"status": "PENDING"
}Record DNS da creare:
_auris-verify.acme.com TXT "auris-verify=a1b2c3d4e5f6..."/api/organizations/[orgId]/sso/domains/[domainId]/checkRequires: manage:sso_connectionsAvvia un controllo di verifica DNS. Restituisce lo stato aggiornato del dominio: PENDING, ACTIVE o FAILED.
La propagazione DNS può richiedere fino a 48 ore, anche se la maggior parte delle modifiche si propagano in pochi minuti. Se la verifica fallisce immediatamente dopo aver aggiunto il record, attendi qualche minuto e riprova.
Configurazione SAML 2.0
Ottieni i metadati dell’IdP
Dall’IdP del tuo cliente, recupera:
- Un Metadata URL — un URL che fornisce il metadata XML SAML dell’IdP (preferito, in quanto aggiorna automaticamente i certificati)
- Un file XML del metadata — una copia scaricata del metadata
Il metadata contiene l’Entity ID, l’SSO URL e il certificato di firma.
Crea la connessione SSO
/api/organizations/[orgId]/sso/connectionsRequires: manage:sso_connectionsCrea una nuova connessione SSO per l’organizzazione.
{
"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"
}
}Campi di configurazione SAML:
| Campo | Obbligatorio | Note |
|---|---|---|
entityId | ✅ | L’Entity ID dell’IdP dai suoi metadati |
ssoUrl | ✅ | L’URL dell’endpoint SSO SAML dell’IdP |
certificate | ✅ | Il certificato di firma X.509 dell’IdP (codificato PEM, senza intestazioni) |
signRequests | No | Se firmare le richieste SAML in uscita (default: true) |
nameIdFormat | No | Formato NameID preferito. Default: emailAddress |
Configura il mapping degli attributi
Mappa gli attributi dell’assertion SAML ai campi utente di 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"
}
}Fornisci i metadati SP di Auris all’IdP
Dopo aver creato la connessione, Auris genera i metadati del Service Provider (SP) che il tuo cliente deve registrare nel proprio IdP:
- SP Entity ID:
https://auth.tuaapp.com/saml/org-slug - ACS URL (Assertion Consumer Service):
https://auth.tuaapp.com/saml/org-slug/callback - SP Metadata URL:
https://auth.tuaapp.com/saml/org-slug/metadata
Condividi lo SP Metadata URL con l’amministratore IT del tuo cliente. La maggior parte degli IdP enterprise accetta direttamente un metadata URL.
Attiva la connessione
/api/organizations/[orgId]/sso/connections/[id]/activateRequires: manage:sso_connectionsAttiva la connessione SSO. La verifica del dominio deve essere completata prima dell’attivazione.
Configurazione OIDC
Ottieni la configurazione OIDC
Dal provider OIDC del cliente, hai bisogno di:
- Discovery URL (preferito):
https://provider.esempio.com/.well-known/openid-configuration - Oppure manualmente: Authorization endpoint, Token endpoint, JWKS URI, Client ID, Client Secret
Crea la connessione 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
}
}Campi di configurazione OIDC:
| Campo | Obbligatorio | Note |
|---|---|---|
discoveryUrl | Consigliato | Endpoint di discovery OIDC. Se fornito, gli altri endpoint vengono inferiti automaticamente |
authorizationUrl | Se no discoveryUrl | Endpoint di autorizzazione OAuth2 |
tokenUrl | Se no discoveryUrl | Endpoint token OAuth2 |
jwksUrl | Se no discoveryUrl | Endpoint JWKS per la verifica del token |
clientId | ✅ | Il Client ID OAuth2 registrato presso l’IdP |
clientSecret | ✅ | Il Client Secret OAuth2 |
scopes | No | Default: ["openid", "profile", "email"] |
pkce | No | Abilita PKCE per il flusso OIDC (consigliato, default: true) |
Registra l’URI di reindirizzamento Auris nell’IdP
Fornisci questo redirect URI quando registri l’applicazione Auris nell’IdP del cliente:
https://auth.tuaapp.com/oidc/org-slug/callbackAttiva la connessione
Come per SAML — la verifica del dominio deve essere completata prima dell’attivazione.
Flusso di Login SSO
Una volta che una connessione SSO è attiva e un dominio è verificato, il flusso di login cambia per gli utenti con indirizzi email corrispondenti:
- L’utente inserisce la propria email nella pagina Hosted Login di Auris.
- Auris chiama l’endpoint di rilevamento SSO:
/api/auth/sso/detectAccetta un indirizzo email e restituisce i dettagli della connessione SSO se esiste una connessione attiva per il dominio email.
{ "email": "[email protected]" }Risposta quando l’SSO è configurato:
{
"ssoRequired": true,
"connectionType": "SAML",
"organizationName": "Acme Corporation",
"loginUrl": "/api/auth/sso/login/acme-azure-ad"
}- Auris reindirizza l’utente all’IdP tramite:
/api/auth/sso/login/[alias]Avvia il flusso SSO reindirizzando l’utente all’IdP configurato.
-
L’utente si autentica presso il proprio IdP aziendale.
-
L’IdP reindirizza ad Auris:
/api/auth/sso/callbackRiceve l’assertion SAML o il codice di autorizzazione OIDC. Valida la risposta, risolve o crea l’utente Auris ed emette token Auris.
- Auris emette il proprio access token e refresh token. Da questo momento, la sessione SSO è indipendente — le durate dei token Auris sono governate dalle impostazioni Auris, non dalla sessione dell’IdP.
Provisioning JIT (Just-in-Time)
Se un utente si autentica con successo all’IdP ma non ha un account Auris esistente, Auris ne crea uno automaticamente durante l’SSO callback. Questo è chiamato provisioning Just-in-Time.
Il provisioning JIT crea l’utente con:
- Email, firstName e lastName dalla risposta dell’IdP o dall’assertion SAML
- Membership nell’organizzazione legata alla connessione SSO
- Il ruolo default configurato per gli utenti provisioning JIT (configurabile per connessione, default: MEMBER)
L’account dell’utente persiste dopo il primo login — i login successivi si risolvono allo stesso account.
Il provisioning JIT crea gli utenti con il ruolo MEMBER di default. Se la tua applicazione richiede ruoli elevati per alcuni utenti, usa il provisioning SCIM in aggiunta all’SSO per pre-provisioning degli utenti con i ruoli corretti prima del loro primo login.
Connessioni SSO Multiple per Organizzazione
Un’organizzazione può avere più connessioni SSO attive — ad esempio, SAML per un deployment Azure AD e OIDC per un sottoinsieme di utenti su Google Workspace.
L’endpoint di rilevamento SSO abbina in base al dominio email verificato. Se più connessioni condividono lo stesso dominio, la connessione attivata più di recente ha la precedenza. In pratica, ogni connessione SSO dovrebbe essere associata a domini verificati distinti per evitare ambiguità.
Gestione delle Connessioni SSO
/api/organizations/[orgId]/sso/connectionsRequires: view:sso_connectionsElenca tutte le connessioni SSO per un’organizzazione.
/api/organizations/[orgId]/sso/connections/[id]Requires: view:sso_connectionsOttieni una connessione SSO specifica con il suo stato attuale e la configurazione.
/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connectionsAggiorna una connessione SSO. Puoi aggiornare i campi di configurazione, il nome o i mapping degli attributi senza disattivare la connessione.
/api/organizations/[orgId]/sso/connections/[id]/deactivateRequires: manage:sso_connectionsDisattiva la connessione SSO. Gli utenti con domini email corrispondenti non verranno più reindirizzati all’IdP. Tornano all’autenticazione standard Auris.
/api/organizations/[orgId]/sso/connections/[id]Requires: manage:sso_connectionsElimina definitivamente la connessione SSO. Gli account utente esistenti creati tramite provisioning JIT non vengono eliminati.
Procedura Guidata nella Console
La gestione SSO è disponibile sulla pagina di dettaglio dell’organizzazione nella Console Admin, nella scheda “Enterprise SSO”.
Aggiungere una connessione SAML:
- Naviga su Console Admin → Organizzazioni → [Nome org] → Enterprise SSO.
- Clicca “Aggiungi Connessione SSO”. Seleziona SAML 2.0.
- Inserisci il metadata URL dell’IdP o incolla l’XML.
- Revisiona la configurazione analizzata (Entity ID, SSO URL, certificato).
- Salva. La connessione viene creata in stato inattivo.
- Naviga nella scheda “Domini” e aggiungi il dominio email dell’organizzazione.
- Aggiungi il record DNS TXT e clicca “Verifica Dominio”.
- Una volta verificato il dominio, torna alla scheda SSO e clicca “Attiva”.
Aggiungere una connessione OIDC:
Stesso flusso, ma il form richiede Discovery URL, Client ID e Client Secret. Auris recupera automaticamente il documento di discovery e popola i campi rimanenti.
Permessi Richiesti
| Operazione | Permesso |
|---|---|
| Visualizza connessioni SSO | view:sso_connections |
| Crea / aggiorna / elimina connessioni SSO | manage:sso_connections |
| Gestisci la verifica del dominio | manage:sso_connections |
Pagine Correlate
- Organizzazioni B2B Multi-Tenant — Setup dell’organizzazione, ruoli dei membri e inviti
- SCIM 2.0 Provisioning — Provisioning automatico degli utenti per complementare l’SSO
- Hosted Login — Come la pagina Hosted Login si integra con il rilevamento SSO
- Console: Organizzazioni — Guida completa alla Console