Configurazione SSO
NexBasira supporta sia OpenID Connect (OIDC) sia SAML 2.0 Web Browser SSO. Gli utenti nei domini email configurati vengono autenticati tramite il tuo provider di identità; i primi accessi ottengono il provisioning just-in-time con il ruolo di default che scegli.
Prima di iniziare
- Ti serve un ruolo
org_adminsul lato NexBasira. - Ti serve l'accesso all'admin del tuo IdP per registrare un'applicazione + configurare il mapping degli attributi.
- L'SSO è disponibile dal piano Pro in su (vedi prezzi).
Walkthrough OIDC
1. Trova il tuo callback URL
Nella SPA di NexBasira: Admin → SSO → Protocollo: OpenID Connect. Il callback URL è mostrato in cima al modulo:
https://app.nexbasira.com/api/v1/auth/sso/callback I clienti con dominio personalizzato (Pro+) vedono qui il proprio dominio. Copialo — al tuo IdP serve.
2. Registra un'applicazione nel tuo IdP
Ogni IdP ha la propria UI, ma la forma è la stessa:
- Tipo di applicazione: Web (server-side, confidential client)
- Redirect URI: il callback URL dello step 1
- Grant type consentiti: Authorization Code (con PKCE)
- Scope:
openid+email+profile
L'IdP ti restituisce un Client ID, un Client Secret e l'Issuer URL (l'URL base per la discovery — di solito https://your-idp.example.com/realms/yourrealm oppure https://accounts.google.com).
3. Compila la configurazione SSO
Di nuovo in Admin → SSO, compila il modulo:
- Nome visualizzato: mostrato sul pulsante "Continua con SSO". Es. "Acme SSO".
- Issuer URL: dal tuo IdP.
- Client ID + Client Secret dal tuo IdP.
- Domini email: elenco separato da virgole (
acme.com, acme-eu.com). Gli utenti con email in questi domini vengono instradati tramite SSO. - Ruolo di default per i nuovi utenti: di solito
inspector. Gli admin dell'org devono ottenere il ruoloorg_adminmanualmente dopo il primo accesso. - Auto-provisioning dei nuovi utenti al primo accesso: tipicamente attivo.
- Abilitato: disattivo finché non hai testato.
4. Testa la discovery
Clicca Testa discovery. Recupera la configurazione OpenID del tuo IdP ({issuer_url}/.well-known/openid-configuration) + effettua il parsing del JWKS. Errori comuni:
- OK — N chiavi JWKS: hai finito.
- Connection refused / DNS failure: errore di battitura nell'issuer URL; verifica che si risolva nel tuo browser.
- JSON parse error: l'issuer URL punta a qualcosa che non è un provider OIDC.
- No JWKS keys: la probe è riuscita ma l'endpoint JWKS ha restituito un set vuoto; controlla la rotazione delle chiavi lato IdP.
5. Abilita + smoke-test
Attiva Abilitato, salva. Esci, poi accedi con un'email di uno dei domini consentiti. Dovresti essere reindirizzato alla schermata di login del tuo IdP, poi di nuovo alla dashboard della SPA.
Walkthrough SAML 2.0
1. Trova il tuo ACS URL
In Admin → SSO → Protocollo: SAML 2.0, copia l'URL dell'Assertion Consumer Service:
https://app.nexbasira.com/api/v1/auth/saml/acs 2. Registra un'app SAML nel tuo IdP
- ACS URL / Reply URL: l'URL dello step 1.
- Entity ID (audience):
https://app.nexbasira.com/saml/sp(o il tuo dominio personalizzato). - Formato NameID: emailAddress.
- Mapping degli attributi: almeno
email; idealmente anchegivenName+surname. - Firma le asserzioni: obbligatorio.
L'IdP ti restituisce un Entity ID, un SSO Service URL e un certificato di firma (PEM).
3. Compila la configurazione SAML
- IdP Entity ID — dal tuo IdP.
- IdP SSO Service URL — dal tuo IdP.
- Certificato di firma IdP (PEM) — incolla l'intero blocco
-----BEGIN CERTIFICATE-----. - Domini email — stessa forma di OIDC.
- Ruolo di default + auto-provisioning — come per OIDC.
La sezione Avanzate — mapping degli attributi ti permette di sovrascrivere le URN che cerchiamo; i default corrispondono alla convenzione WS-Federation di Microsoft, che la maggior parte degli IdP rispetta out of the box.
4. Abilita + smoke-test
Stesso flusso di OIDC: attiva Abilitato, esci, accedi con un'email di un dominio consentito, aspettati un round-trip attraverso il tuo IdP.
IdP testati
Il supporto OIDC + SAML di NexBasira è generico; qualsiasi IdP conforme alle specifiche funziona. Abbiamo fatto smoke test su:
- Microsoft Entra ID (Azure AD) — OIDC + SAML
- Google Workspace — OIDC + SAML
- Okta — OIDC + SAML
- Keycloak — OIDC + SAML
- OneLogin — SAML
Regole di provisioning JIT
- La prima volta che un utente con un dominio corrispondente accede tramite SSO, viene creata una Membership con il ruolo di default configurato.
emailè la chiave univoca. Un utente che cambia la propria email nell'IdP crea un nuovo account.- I cambi di ruolo dopo il primo accesso si gestiscono nella SPA (Admin → Membri), non nell'IdP. Per il mapping gruppo → ruolo guidato dall'IdP, vedi provisioning SCIM.
Disabilitare l'SSO
Puoi disattivare Abilitato (mantiene la configurazione; puoi riabilitarla più tardi) oppure cliccare Rimuovi SSO (elimina la configurazione). Con l'SSO disabilitato, tutti gli utenti tornano all'autenticazione con password; le membership esistenti vengono preservate.
Risoluzione dei problemi
| Sintomo | Causa probabile |
|---|---|
| Loop di redirect tra IdP + SPA | Il dominio email non è nell'allowlist. L'email dell'utente non corrisponde. |
| "Signature validation failed" (SAML) | Certificato di firma obsoleto nella configurazione. Reincollalo dall'IdP. |
| "Issuer mismatch" (SAML) | L'Entity ID nell'IdP non corrisponde a quello che ci aspettiamo. Controlla maiuscole/minuscole e lo slash finale. |
| "No email attribute in assertion" | Il mapping degli attributi SAML nell'IdP non emette l'email. Sovrascrivi la URN nelle impostazioni Avanzate. |
Cosa c'è dopo
- Provisioning SCIM — creazione + disattivazione di utenti guidata dall'IdP
- Autenticazione API — separata dall'SSO della SPA