Skip to Content

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:

  1. Auris genera un token di verifica univoco per il dominio.
  2. L’amministratore DNS dell’organizzazione crea un record TXT: _auris-verify.dominio.com con il token come valore.
  3. Un admin clicca “Verifica” nella Console (o chiama l’API di verifica).
  4. Auris esegue una ricerca DNS per il record TXT e conferma che il token corrisponde.
POST/api/organizations/[orgId]/sso/domainsRequires: manage:sso_connections

Aggiunge 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..."
POST/api/organizations/[orgId]/sso/domains/[domainId]/checkRequires: manage:sso_connections

Avvia 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

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

Crea 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:

CampoObbligatorioNote
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)
signRequestsNoSe firmare le richieste SAML in uscita (default: true)
nameIdFormatNoFormato 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

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

Attiva 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:

CampoObbligatorioNote
discoveryUrlConsigliatoEndpoint di discovery OIDC. Se fornito, gli altri endpoint vengono inferiti automaticamente
authorizationUrlSe no discoveryUrlEndpoint di autorizzazione OAuth2
tokenUrlSe no discoveryUrlEndpoint token OAuth2
jwksUrlSe no discoveryUrlEndpoint JWKS per la verifica del token
clientId✅Il Client ID OAuth2 registrato presso l’IdP
clientSecret✅Il Client Secret OAuth2
scopesNoDefault: ["openid", "profile", "email"]
pkceNoAbilita 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/callback

Attiva 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:

  1. L’utente inserisce la propria email nella pagina Hosted Login di Auris.
  2. Auris chiama l’endpoint di rilevamento SSO:
POST/api/auth/sso/detect

Accetta 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" }
  1. Auris reindirizza l’utente all’IdP tramite:
GET/api/auth/sso/login/[alias]

Avvia il flusso SSO reindirizzando l’utente all’IdP configurato.

  1. L’utente si autentica presso il proprio IdP aziendale.

  2. L’IdP reindirizza ad Auris:

POST/api/auth/sso/callback

Riceve l’assertion SAML o il codice di autorizzazione OIDC. Valida la risposta, risolve o crea l’utente Auris ed emette token Auris.

  1. 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

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

Elenca tutte le connessioni SSO per un’organizzazione.

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

Ottieni una connessione SSO specifica con il suo stato attuale e la configurazione.

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

Aggiorna una connessione SSO. Puoi aggiornare i campi di configurazione, il nome o i mapping degli attributi senza disattivare la connessione.

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

Disattiva la connessione SSO. Gli utenti con domini email corrispondenti non verranno più reindirizzati all’IdP. Tornano all’autenticazione standard Auris.

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

Elimina 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:

  1. Naviga su Console Admin → Organizzazioni → [Nome org] → Enterprise SSO.
  2. Clicca “Aggiungi Connessione SSO”. Seleziona SAML 2.0.
  3. Inserisci il metadata URL dell’IdP o incolla l’XML.
  4. Revisiona la configurazione analizzata (Entity ID, SSO URL, certificato).
  5. Salva. La connessione viene creata in stato inattivo.
  6. Naviga nella scheda “Domini” e aggiungi il dominio email dell’organizzazione.
  7. Aggiungi il record DNS TXT e clicca “Verifica Dominio”.
  8. 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

OperazionePermesso
Visualizza connessioni SSOview:sso_connections
Crea / aggiorna / elimina connessioni SSOmanage:sso_connections
Gestisci la verifica del dominiomanage:sso_connections

Pagine Correlate