Skip to main content

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.

image.png

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:

image.png

Questo flusso raffigurato, è denominato Client Credentials. Ci sono tre parti coinvolte:

  1. Applicazione (per esempio un Gestionale)
  2. Il Server di Autorizzazione (spesso equiparabile al punto 3)
  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.

image.png

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

image.png

Cliccare sul pulsante AGGIUNGI sulla destra

image.png

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:

image.png

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.