Configurare SSO con AD FS¶
Active Directory Federation Services è l'opzione on-premises: i tuoi server emettono i token e l'URL di discovery è il tuo nome host. AD FS supporta OpenID Connect a partire da Windows Server 2016.
Questa guida copre il lato AD FS: creare l'application group e raccogliere i valori necessari a digna. Il lato digna — dashboard_config.toml, test e risoluzione dei problemi — è lo stesso per tutti i provider ed è descritto nella Panoramica del Single Sign-On.
Prima di Iniziare¶
| Requisito | Note |
|---|---|
| Versione AD FS | Windows Server 2016 o successivo — le versioni precedenti non supportano OIDC |
| Accesso | Amministratore locale sul server AD FS |
| Nome del federation service | es. adfs.yourdomain.com |
| URI di redirect per digna | L'URL a cui gli utenti tornano dopo il login, es. https://digna.yourdomain.com/oidc/callback |
Passo 1: Creare l'Application Group¶
- Sul server AD FS, apri AD FS Management
- Clic destro su Application Groups e scegli Add Application Group
- Inserisci
dignacome nome - Sotto Standalone applications — o Client-Server applications a seconda della versione — seleziona Server application accessing a web API
- Clicca Next
Passo 2: Configurare il Server Application¶
- Name:
digna backend - Client Identifier: AD FS genera un GUID. Copialo — questo diventerà
DIGNA_OIDC_CLIENT_ID - Redirect URI: inserisci il tuo URL di callback di digna e clicca Add:
- Clicca Next
Premi Aggiungi, non solo Avanti
Il campo redirect URI ha un proprio pulsante Add. Digitare un URI e cliccare Next senza premere Add lo scarta, e la procedura guidata non avvisa. Verifica che l'URI appaia nella lista sotto il campo prima di proseguire.
Passo 3: Generare il Shared Secret¶
- Seleziona Generate a shared secret
- Copia il segreto generato → diventerà
DIGNA_OIDC_CLIENT_SECRET - Clicca Next
Il segreto viene mostrato una sola volta
AD FS mostra il shared secret solo in questa pagina della procedura guidata e non può mostrarlo di nuovo. Se lo perdi, rigeneralo in seguito dalle proprietà dell'application group.
Passo 4: Configurare la Web API¶
- Identifier: inserisci lo stesso client identifier del Passo 2 e clicca Add
- Clicca Next
- Scegli una Access Control Policy — Permit everyone è il punto di partenza più semplice; limitarla a un gruppo è raccomandato per la produzione
- Clicca Next
Passo 5: Concedere gli Scope Consentiti¶
Nella fase Configure Application Permissions, seleziona:
openidprofileemail
Poi clicca Next e completa la procedura guidata.
openid non è selezionato di default
AD FS in alcune versioni pre-seleziona solo user_impersonation. Senza openid, l'endpoint token restituisce un access token OAuth invece di un ID token, e digna non può identificare l'utente.
Passo 6: Confermare l'Endpoint di Discovery¶
Sostituisci il nome del tuo federation service:
Per esempio:
Aprilo in un browser. Un documento JSON conferma che OIDC è abilitato e che il nome host è corretto.
Il backend deve fidarsi del certificato
Un'autorità di certificazione interna è comune per AD FS. La macchina che esegue il backend di digna effettua una propria chiamata HTTPS outbound a questo URL, quindi la CA emittente deve essere presente nel trust store di quella macchina — non solo nei browser degli utenti che fanno il login.
Passo 7: Configurare digna¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.adfs]
DIGNA_OIDC_CLIENT_ID = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
DIGNA_OIDC_CLIENT_SECRET = "<the shared secret copied in Step 3>"
DIGNA_OIDC_REDIRECT_URI = "https://digna.yourdomain.com/oidc/callback"
DIGNA_OIDC_CONFIGURATION_URL = "https://adfs.yourdomain.com/adfs/.well-known/openid-configuration"
La key in entrambi i file deve corrispondere — adfs in questo esempio.
Passo 8: Test¶
Riavvia il backend e il web server, poi apri la dashboard. Vedi Test di accesso per la checklist completa.
Risoluzione dei problemi di AD FS¶
MSIS9611: The Client Is Not Allowed to Access the Resource¶
L'identificatore della web API nel Passo 4 non corrisponde al client identifier, oppure gli scope nel Passo 5 non sono stati concessi. Entrambi sono modificabili dalle proprietà dell'application group.
MSIS9602: Invalid redirect_uri¶
L'URI è stato digitato ma non aggiunto con il pulsante Add, oppure differisce da DIGNA_OIDC_REDIRECT_URI. Controlla Application Groups → digna → digna backend → Properties.
Nessun ID Token viene restituito¶
Manca lo scope openid tra i permessi dell'applicazione.
Il backend non riesce a raggiungere l'URL di discovery¶
O DNS sull'host del backend non risolve il nome del federation service, oppure il certificato AD FS non è attendibile lì. Testa con curl https://adfs.yourdomain.com/adfs/.well-known/openid-configuration dal server di digna stesso.
Eventi da controllare¶
Il server AD FS registra i fallimenti in Applications and Services Logs → AD FS → Admin in Event Viewer, normalmente con una motivazione più specifica rispetto a quella mostrata dal browser.
Vedi anche¶
- Panoramica del Single Sign-On — riferimento alla configurazione, test e risoluzione generale dei problemi
- Microsoft: Scenari OpenID Connect di AD FS