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.
Questo articolo illustra i passaggi seguenti:
- Passaggio 1. Configurazione del server Windows
- Passaggio 2. Configurazione di Zendesk
- Passaggio 3. Download e configurazione dello script di autenticazione
- Passaggio 4. Risoluzione dei problemi
Passaggio 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 di applicazioni
- ASP.NET
- ASP
- Lato server include
E in Sicurezza
- Autenticazione base
Una volta installati correttamente i ruoli e i 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.
Passaggio 2. Configurazione di Zendesk
Per istruzioni, consulta Abilitazione del 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 inserire lo script di autenticazione ASP descritto nella sezione successiva.
Passaggio 3. Download 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 sopra) nella directory wwwroot. Puoi creare una sottodirectory, ma tieni presente che ciò estenderà semplicemente 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 in Blocco note o in qualsiasi altro editor di testo. La prima parte dello script da configurare è la seguente:
' Credentials for a domain user for LDAP access sLdapReaderUsername = "domain\username" sLdapReaderPassword = "password"
Inserisci il nome utente e la password di un 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 guardi il codice, stiamo ottenendo adspath, mail, displayName e sAMAccountName dell’utente. Se vuoi estrarre più dati da usare nella chiamata, includili in quella parte del codice. Ad esempio, se voglio includere il blocco Note qui sotto:
Aggiornerei 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 chiamare 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 di Active Directory, puoi modificare direttamente i singoli attributi. Per abilitare le funzionalità avanzate, vai a Visualizza > Funzioni avanzate:
Una volta abilitato, se accedi alle proprietà dell’utente, vedrai un “Editor attributi”:
Nota sul passaggio attraverso l’organizzazione e i tag
Per trasmettere correttamente un’organizzazione per un utente, è necessario che un’organizzazione esista già 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. Devi prima creare le organizzazioni coinvolte.
Per passare correttamente i tag, l’attributo deve essere elencato come segue:
“tag1, tag2, tag3”
Se non includi “,” tra i tag, l’operazione avrà esito negativo.
Per maggiori informazioni sui diversi campi accettati, 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 inserirai le credenziali di Windows e verrai reindirizzato a Zendesk che ha effettuato l’accesso.
Passaggio 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 “True” 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 ottenere tutte le tue informazioni elencate correttamente. Se hai configurato un’organizzazione, i tag o l’URL foto, dovresti vedere questi dati. Se vedi alcuni dati, 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 riesce a connettersi al controller di dominio o non dispone delle autorizzazioni. Verifica sul server di poter accedere al controller di dominio andando alla condivisione del server (\\dcservername\ nel prompt di esecuzione). Quindi verifica che il nome utente e la password inseriti nel codice siano corretti. Inoltre, se hai abilitato l’accesso anonimo, potresti visualizzare una pagina vuota perché 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 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.
0 commenti