15.10 Applicazioni esterne
Questa funzione di vtenext, che si trova in Impostazioni > Applicazioni esterne, permette di configurare il crm come un Server per OAuth2 e quindi far collegare altre applicazioni direttamente a vtenext.
Schermata di configurazione per le Applicazioni esterne
Quindi come funziona esattamente? L'OAuth2 mette a disposizione dei flussi di autorizzazione che permettono alle applicazioni esterne, di accedere al crm tramite dei token ed inviare delle richieste in modo che il crm eroghi i dati richiesti e li invii all'applicazione richiedente. Vediamo una immagine esplicativa:
Questo flusso raffigurato, è denominato Client Credentials. Ci sono tre parti coinvolte:
- Applicazione (per esempio un Gestionale)
- Il Server di Autorizzazione (spesso equiparabile al punto 3)
- Il Server che contiene di Dati (nel nostro caso vtenext)
In pratica, l'Applicazione (che potrebbe essere un Gestionale che deve leggere le Fatture su vtenext), chiede al Server di Autorizzazione una chiave di accesso (Cliend ID e Secret Key) per poter accedere al Server che contiene i Dati. Quindi nel nostro esempio, vtenext, genera la coppia di chiavi (Cliend ID e Secret Key) e le passa all'applicazione la quale le usa per richiedere l'accesso al Server di Autorizzazione (che è sempre vtenext), il quale fornirà all'Applicazione stessa un Token, che permetterà di leggere direttamente le Fatture sul crm.
Il vantaggio è che l'access Token ha una durata limitata, è revocabile lato server e quindi è possibile consentire l'accesso alle app in maniera controllata e, soprattutto, non vengono divulgate o condivise password di sistema. Naturalmente allo scadere del Token, sarà necessario crearne uno di nuovo ripetendo la procedura sopra menzionata.
Il secondo tipo di flusso, è denominato OAuth2 Authorization Code. Questo flusso coinvolge un elemento in più, che identificheremo come Utente.
Nell'esempio, diremo che l'Applicazione che si vuole connettere a vtenext questa volta, è Facebook che necessita di leggere i Lead presenti in vtenext. Facebook però è collegato ad un Utente, che è il richiedente di questi dati, quindi è l'utente che in realtà sta chiedendo a Facebook di connettersi a vtenext per leggere i Lead. L'Utente in questo caso ha anche un account in vtenext, quindi l'obiettivo, è che l'utente da il permesso a Facebook di leggere i Lead su vtenext, quindi sarà fatta un'autenticazione da parte dell'utente su vte, il quale risponderà a Facebook con un OAuth2 Authorization Code. Facebook userà quell'Auth Code per richiedere all'Authorization Server l'Access Toke temporaneo e leggere finalmente i dati nel Server.
Quindi Facebook ha avuto accesso ai Lead di vtenext, non ha in pancia le credenziali dell'utente, e dopo circa un'ora scadranno e quindi l'accesso ai dati sensibili resteranno al sicuro.
Configurazione Service Account
Cliccare sul pulsante AGGIUNGI sulla destra
Si accede ad una schermata con un Wizard che ci aiuta a determinare il flusso che vogliamo configurare. Come prima cosa impostare il Tipo di Client e si potrà scegliere tra:
- Web or Mobile application se abbiamo bisogno di un accesso tramite login con utente
- Service account se l'accesso avviene in background tra due server
Volendo dunque configurare un flusso Client Credentials, come Tipo di Chiave = Service Account e come Tipo di Segreto = Chiave segreta. Compariranno dunque altri campi da configurare che vediamo di seguito:
A questo punto si dovrà dare un Nome a questa configurazione, che tipicamente identifica anche quello che fa (nell'esempio fa connettere ad un gestionale). Vengono già messe in evidenza il Client ID e la Chiave Segreta autogenerate. Infine si deve determinare lo Scope, ovvero come i dati verranno fruiti dal sistema (sola lettura, sola scrittura, oppure in lettura/scrittura) e l'Utente al quale questa configurazione dovrà fare riferimento (se lo Scope è in sola lettura o lettura/scrittura per esempio, sarà possibile gestire solamente i dati di quell'utente con le limitazioni che la sua profilazione prevede. E' chiaro che se si desidera pieno controllo senza limitazioni, dovrà essere selezionato un utente Admin).
Fornendo dunque gli Endpoints, il Client ID e la Chiave Segreta all'ipotetico tecnico del gestionale al quale ci si vuole connettere, sarà possibile finalizzare il collegamento.
Tornando alla configurazione iniziale, dopo aver scelto Tipo di Chiave = Service Account e come Tipo di Segreto = JWT firmato, ci sono più o meno le stesse informazioni da configurare e come unica differenza, troviamo che la Chiave Segreta verrà generata solamente dopo il salvataggio della configurazione.
Configurazione Web or Mobile Application
Cliccare sul pulsante AGGIUNGI sulla destra
Si accede dunque nuovamente al Wizard e selezioneremo Web or mobile application. Comparirà la schermata seguente:
In Tipo di applicazione, è possibile scegliere Web application se si tratta di un App che funziona tramite browser, oppure Native or Single Page App se invece si tratta di un'applicazione nativa come un'app presente su un dispositivo mobile.
Scegliendo Web application, verrà generata come per la configurazione vista in precedenza, un Client ID ed una Chiave Segreta e sarà possibile determinare il tipo di accesso, Scope, in sola lettura, sola scrittura o lettura/scrittura.
E' possibile decidere le attivare l'Accesso offline, ovvero invece di far scadere il Token come si diceva in precedenza (il Token ha una durata limitata e va rinnovato), in questo modo è possibile dare accesso a tempo indeterminato all'app verso vtenext. Quindi cosa succede? Il server chiede il "refresh token" e quindi l'app può richiedere nuovamente il token che sarà il medesimo e rimarrà valido fino a che non viene deciso di togliere la spunta da Offline.
Quindi poi si configurerà l'URL di ritorno, che permetterà di reindirizzare l'utente, dopo il Login al Server (ovvero vtenext), direttamente all'app in cui deve accedere (es. Facebook o altro). E' anche possibile decidere quali sono gli Utenti autorizzati ad utilizzare questa configurazione. Possono essere Tutti gli utenti, oppure quelli che si vogliono selezionare dalla lista Gruppi o Utenti.
E' possibile configurare la Schermata di autorizzazione, ovvero quando l'utente viene indirizzato alla richiesta di autorizzazione (es. l'applicazione Facebook richiede di accedere ai dati di vtenext, vuoi autorizzare?), comparirà una schermata che è possibile personalizzare con un Nome, una Descrizione ed un'Icona.
Tornando all'inizio di questo tipo di settaggio, in Tipo di applicazione è possibile selezionare anche Native or Single Page App, la cui configurazione è molto simile a quella appena illustrata.
Dalla schermata inziale, Impostazioni > Applicazioni esterne, è possibile vedere la lista delle Applicazioni registrate ed è possibile decidere se revocarne qualcuna. Ad esempio, non è più richiesto che Facebook possa accedere a vtenext, nonostante l'autorizzazione sia già stata configurata e concessa, è possibile disabilitarla cliccando sulla spunta verde sulla destra della lista.
In questa lista è anche possibile vedere se ci sono Token scaduti oppure di non attivi. Nel caso di Token scaduti l'utente è tenuto a rifare il login al sistema. Nella stessa lista, sulla destra, troviamo gli Strumenti:
-
serve per modificare la configurazione
-
per revocare tutti i Token
-
per eliminare la configurazione eseguita
Nelle Preferenze Utente, c'è una voce sulla destra, denominata Applicazioni collegate, che permette di visualizzare tutte le applicazioni che sono state create e relazionate allo specifico utente. Da quella stessa related, è possibile vedere il dettaglio della configurazione (ma non modificarla se non è un utente admin), ed è possibile anche disabilitarla o revocarne i token.