Configurazione SSO
Configurazione SSO
Questa guida è rivolta all'amministratore IT che collega un provider di identità aziendale (IdP) a InterMIND. Dopo la configurazione, i membri accedono dalla normale pagina di login: Accedi con SSO → email di lavoro → il tuo IdP → di nuovo in InterMIND.
Disponibile su: piani Business ed Enterprise Configurato da: proprietario o amministratore del team Protocollo: OpenID Connect (OIDC). L'accesso SAML 2.0 è in fase di sviluppo — la configurazione SAML viene memorizzata ma non può ancora essere utilizzata per accedere.
Prerequisiti
- Un dominio verificato — verifica prima il dominio email tramite record DNS TXT (vedi Gestione dei domini). L'accesso SSO accetta solo account il cui dominio email è stato verificato dal tuo team; questo è il confine del tenant.
- Un IdP che supporti OIDC con discovery — deve servire
/.well-known/openid-configurationsotto l'Issuer URL. Okta, Microsoft Entra ID e Google lo fanno tutti.
Cosa registrare nel tuo IdP
Crea un'applicazione web OIDC nel tuo IdP con:
| Impostazione | Valore |
|---|---|
| Redirect URI (callback) | https://intermind.com/api/auth/sso/callback — mostrato anche nella scheda SSO dopo aver selezionato OIDC |
| Grant type | Authorization Code (PKCE S256 viene utilizzato automaticamente) |
| Scope | openid email profile |
L'ID token emesso dal tuo IdP deve includere l'email dell'utente, e il dominio dell'email deve essere uno dei tuoi domini verificati — altrimenti l'accesso viene rifiutato.
Poi compila la scheda SSO nella pagina Integrazioni:
| Campo | Cosa incollare |
|---|---|
| Nome visualizzato | Qualsiasi etichetta riconoscibile dai tuoi membri |
| Issuer URL | L'issuer del tuo IdP — l'URL che serve /.well-known/openid-configuration |
| Authorization URL | L'authorization_endpoint da quel documento di discovery |
| Client ID / Client Secret | Dall'app che hai registrato |
Il client secret è crittografato a riposo e non viene mai restituito al browser dopo il salvataggio.
Okta
- Console di amministrazione → Applications → Create App Integration → metodo di accesso OIDC, tipo di applicazione Web Application
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - Assegna gli utenti o i gruppi che dovrebbero avere accesso
- Copia il Client ID e il Client Secret
- In InterMIND: Issuer URL = l'URL della tua organizzazione Okta (es.
https://acme.okta.com, oppure l'issuer del tuo authorization server comehttps://acme.okta.com/oauth2/defaultse ne usi uno); Authorization URL = l'authorization_endpointda<issuer>/.well-known/openid-configuration
Microsoft Entra ID (Azure AD)
- Entra admin center → App registrations → New registration
- Piattaforma Web, redirect URI
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret — copia immediatamente il Value del segreto
- Client ID = l'Application (client) ID nella pagina Overview
- Assicurati che l'ID token contenga l'email dell'utente: Token configuration → Add optional claim → ID → email
- In InterMIND: Issuer URL =
https://login.microsoftonline.com/<tenant-id>/v2.0; Authorization URL =https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
Google Workspace
Non è necessaria alcuna registrazione dell'app. Nella scheda SSO scegli il tipo di provider Google Workspace e salva — i membri sui tuoi domini verificati accedono con il loro account Google e si uniscono automaticamente al tuo team. (Google può anche essere collegato come provider OIDC generico con issuer https://accounts.google.com se preferisci credenziali client esplicite.)
Testa la connessione
- Apri la pagina di login in una finestra privata/in incognito
- Fai clic su Accedi con SSO e inserisci un'email di lavoro sul tuo dominio verificato
- Vieni reindirizzato al tuo IdP; dopo l'autenticazione, torni in InterMIND già loggato
- L'accesso viene registrato nell'audit log del team (esportabile dalla pagina Utenti) come
auth.logincon metodosso
Risoluzione dei problemi
| Sintomo | Causa |
|---|---|
| "SSO non configurato" dopo aver inserito l'email | Nessuna configurazione SSO abilitata corrisponde a quel dominio email — verifica che il dominio sia verificato e che la scheda SSO sia salvata |
SSO login is not available: plan | Il piano del team non include più SSO |
SSO login is not available: domain-not-verified | Il dominio è ancora in attesa di verifica DNS |
SSO login is not available: config-incomplete | Client ID o Client Secret mancante — salva di nuovo la scheda SSO |
SSO login is not available: type-unsupported | La configurazione memorizzata è SAML — l'accesso SAML non è ancora disponibile |
SSO IdP discovery failed | L'Issuer URL è errato o non serve /.well-known/openid-configuration |
| "sessione di login scaduta, ricomincia" | Sono trascorsi più di 5 minuti tra l'inizio dell'accesso e il callback dell'IdP |
| Accesso rifiutato dopo il redirect dell'IdP | L'IdP ha restituito un'email al di fuori dei tuoi domini verificati, oppure nessun claim email (Entra: aggiungi il claim email opzionale) |
Proprietà di sicurezza
Per i questionari di sicurezza: il flusso SSO è Authorization Code con PKCE (S256), state e nonce; la firma dell'ID token viene convalidata rispetto alla JWKS dell'IdP, insieme a issuer e audience; l'IdP è autoritativo solo per i domini verificati tramite DNS — un'asserzione per qualsiasi altra email non produce mai una sessione; il client secret OIDC è crittografato a riposo; ogni accesso SSO viene registrato nell'audit log del team. I controlli su piano, dominio e configurazione sono applicati lato server sia all'avvio dell'accesso sia nel callback.