Puoi autenticare gli utenti usando il Single Sign-On JWT (token web JSON). Questo articolo descrive come configurare l'autenticazione SSO JWT per gli utenti di Microsoft Active Directory e descrive i passaggi seguenti:
1. Configurazione del server Windows
3. Scaricamento e configurazione dello script di autenticazione
1. Configurazione del server Windows
È necessario che IIS e ASP siano installati sul server Windows. Il server IIS deve far parte del dominio e avere accesso diretto al controller di dominio. Il server IIS può trovarsi nel controller di dominio, ma non è obbligatorio. Se usi Windows Server 2008, ecco quale ruolo deve essere installato:
Per i servizi ruolo IIS, è necessario che siano installati:
- Sviluppo applicazioni
- ASP.NET
- ASP
- Include il lato server
E in Sicurezza
- Autenticazione base
Dopo aver installato correttamente ruoli e servizi, è necessario configurare l’autenticazione del server IIS. Zendesk funziona bene con l’autenticazione di base, quindi di solito l’impostazione predefinita. Assicurati di disabilitare l’autenticazione anonima, altrimenti agli utenti non verrà chiesto di inserire il nome utente e la password di Windows e quindi non potranno accedere.
2. Configurazione di Zendesk
Per istruzioni, consulta Abilitazione di Single Sign-On JWT in Zendesk nell'articolo Configurazione di Single Sign-On con JWT (JSON Web Token). Per il valore URL di accesso remoto , specifica il percorso in cui verrà posizionato lo script di autenticazione ASP descritto nella sezione successiva.
3. Scaricamento e configurazione dello script di autenticazione
Scarica lo script di autenticazione ASP da questa pagina su Github:
https://github.com/zendesk/zendesk_jwt_sso_examples/tree/master/bun...
Inserisci lo script (e le relative dipendenze, incluse nel bundle qui sopra) nella tua directory wwwroot. Puoi creare una sottodirectory, ma tieni presente che questa amplierà solo l’URL dello script. Durante una nuova installazione, IIS creerà questa directory in:
c:\inetpub\wwwroot\
Per il tuo browser web, i file in quella cartella appariranno in questo URL:
http://serveraddress/classic_asp_jwt_with_ad.asp
Apri lo script nel Blocco note o in qualsiasi altro editor di testo. La prima parte dello script che devi configurare è la seguente:
' Credentials for a domain user for LDAP access sLdapReaderUsername = "domain\username" sLdapReaderPassword = "password"
Inserisci il nome utente e la password dell’utente che ha accesso a LDAP.
Successivamente, devi inserire il token segreto condiviso che hai ricevuto durante la configurazione JWT Zendesk (denominato sKey nello script) e il tuo sottodominio Zendesk:
' Set your shared secret and Zendesk subdomain
sKey = ""
sSubdomain = ""
Ecco la parte dello script che esegue la ricerca LDAP del tuo account utente:
sQuery = "<LDAP://" & sDomainContainer & ">;(sAMAccountName=" & sUsername & "); adspath," & sFields & ";subtree"
Set userRS = oConn.Execute(sQuery)
Se dai un’occhiata al codice, stiamo ottenendo l’adspath, la mail, il displayName e il sAMAccountName dell’utente. Se vuoi estrarre altri dati da usare nella chiamata, includili in quella parte del codice. Ad esempio, se voglio includere il blocco Note qui sotto:
Vorrei aggiornare il codice con l’attributo “info” in modo che abbia il seguente aspetto:
sQuery = ";(sAMAccountName=" & strUsername & ");adspath,mail,displayName,sAMAccountName,info;subtree" Set userRS = oConn.Execute(sQuery)
Dopo aver cercato gli attributi, possiamo usarli. Il codice seguente esegue la traduzione effettiva degli attributi:
If Not userRS.EOF and not err then sFullName = userRS("displayName") sEmail = userRS("mail") sExternalID = userRS("sAMAccountName") if sOrg then sOrganization = "" end if sTags = "" sPhotoUrl = ""
Vedrai che abbiamo già inserito in displayName, mail e sAMAccountName. Per richiamare i singoli attributi del tuo utente, devi usare l’oggetto “userRS(“nameofattribute)”. Ad esempio, se includi la ricerca "info" e voglio usare il blocco Notes per i tag, aggiornerei il codice in modo che sia il seguente:
If Not userRS.EOF and not err then sFullName = userRS("displayName") sEmail = userRS("mail") sExternalID = userRS("sAMAccountName") if sOrg then sOrganization = "" end if sTags = userRS("info") sPhotoUrl = ""
Quali sono i singoli attributi disponibili? Puoi vedere quali opzioni hai per gli attributi qui:
http://www.kouti.com/tables/userattributes.htm
Inoltre, se abiliti “Funzionalità avanzate” in Utenti e computer Active Directory, puoi cambiare direttamente i singoli attributi. Per abilitare le funzioni avanzate, seleziona Vista > Funzioni avanzate:
Una volta abilitato, se accedi alle proprietà dell’utente, vedrai un “Editor attributi”:
Nota sul passaggio attraverso l’organizzazione e i tag
Affinché un utente possa trasmettere correttamente un’organizzazione, è necessario che esista già un’organizzazione in Zendesk. Se un'organizzazione non esiste in Zendesk (o i nomi non corrispondono esattamente), Zendesk non creerà l'organizzazione al volo come fa con l'utente. Per prima cosa devi creare le organizzazioni coinvolte.
Per trasferire correttamente i tag, l'attributo deve elencarli come segue:
“tag1, tag2, tag3”
Se non includi “,” tra i tag, non riuscirà.
Per maggiori informazioni sui diversi campi che accettiamo, dai un’occhiata a questo post.
Dopo aver apportato le modifiche allo script, salvalo. Vai al sito Zendesk e fai clic su Accedi. Questo dovrebbe reindirizzarti allo script in cui inserisci le credenziali di Windows e verrai rimandato a Zendesk che ha effettuato l’accesso.
4. Risoluzione dei problemi
Quindi hai fatto clic su Accedi e l’operazione non è riuscita? Come parte dello script abbiamo incluso un’opzione di debug. Se si imposta il flag Debug su “Vero” nello script, le informazioni di debug verranno stampate quando si accede allo script. Sarà simile a:
[DEBUG] ZENDESK\test - should be of the form DOMAIN\username - if blank, your IIS probably allows anonymous access to this file.
[DEBUG] DomainContainer: DC=zendesk,DC=internal
[DEBUG] Attribute name: Test User
[DEBUG] Attribute email: test@zendesk.com
[DEBUG] Attribute jti: 2968942290171.981
[DEBUG] Attribute iat: 1380123848
[DEBUG] Redirecting to https://subdomain.zendesk.com/access/jwt?jwt=eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpYXQiOjEzODAxMjM4NDgsImp0aSI6Mjk2ODk0MjI5MDE3MS45ODEsIm5hbWUiOiJUZXN0IFVzZXIiLCJlbWFpbCI6InRlc3RAemVuZGVzay5jb20ifQ.QuRC6Ig7x_nK86Wc38u2viIVjshtTDohcgXTYpmU6VY
Qui dovresti elencare correttamente tutte le tue informazioni. Se hai configurato un’organizzazione, i tag o l’URL foto, dovresti vedere questi dati. Se alcuni dei dati sono visibili, ma non tutti, verifica i dati degli attributi dell’utente e assicurati che il codice faccia riferimento all’attributo corretto.
Se stai accedendo alla pagina ma non ricevi alcun dato, significa che lo script non si collega al controller di dominio o non dispone di autorizzazioni. Verifica sul server di poter accedere al controller di dominio selezionando la condivisione del server (\\dcservername\ nel prompt di esecuzione). Verifica quindi che il nome utente e la password inseriti nel codice siano corretti. Inoltre, se hai attivato l’accesso anonimo, potresti visualizzare una pagina vuota in quanto non ha mai richiesto l’autenticazione. Assicurati che l’accesso anonimo sia disattivato.
Se non riesci ad accedere alla pagina e il browser genera un errore, il problema risiede in IIS. Conferma di aver installato i ruoli/servizi necessari sul tuo server e che siano in esecuzione. Se i problemi persistono, potrebbe essere necessario consultare un amministratore IIS in quanto errori di questo tipo esulano dallo scopo di questa guida.
Se riscontri un errore, facci sapere quale è stata la soluzione. Sarei lieto di aggiornare questo post con ulteriori suggerimenti sui problemi che le persone stanno riscontrando e su come risolverli.
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.