Wizard Home |
Permette di mediare l'accesso a contenuti di servizi esterni tramite il sistema di autenticazione zotsell.
- Servizio Zotsell (Buy o Sell) : ad esempio BaseUrl : test-enterprise.zotsell.com
- CMS esterno : ad esempio BaseUrl: www.miocms.com/
La caratteristica fornisce gli strumenti per permettere al CMS di verificare l'utente con il sistema di Login Zotsell per permettergli o meno l'accesso alle risorse del CMS stesso
Gli strumenti predisposti sono i seguenti
Non è possibile utilizzare un'autenticazione diretta di base passando per il servizio cms, ossia fare in modo che un form sul cms del cliente accetti username e password, le legga e le mandi al server di Zotsell per l'autenticazione, questo perché l'utenza non può essere condivisa con un singolo servizio, essendo tale utenza propria della singolo user che potrebbe utilizzarla su più servizi Zotsell.
La verifica della validità dell'autenticazione utente viene eseguita tramite l'utilizzo di un access token (code) che può essere verificato dal CMS tramite apposita API PATH: /app/0.1/checkcodes
URL :
Method:
HEADER
Required:
Login non va a buon fine
Utente non esiste nel DB locale o il role è diverso da base (Accounts::ROLE_REGISTERED_USER (6))
URL :
Method:
HEADER
Required:
Al primo accesso al CMS l'utente non essendo riconosciuto dal CMS dovrebbe essere rediretto alla pagina di autenticazione del Vostro server Zotsell con un url contenente il link di ritorno al CMS nella forma
Il browser atterrerà sulla pagina login di Zotsell e richiederà i parametri di autenticazione
Una volta che l'utente ha utilizzato dei parametri di autenticazione validi il sistema di Zotsell provvederà a redirigere l'utente al redirect_url indicato con il parametro code e mail
www.miocms.com?code=qwertyuiopasdfghjklzxcvbnm&mail=mail@mail.com
Il CMS utilizzando l'API può verificare la validità del query param 'code' con cui l'utente si presenta al CMS
L'API avrà le seguenti risposte :
In questi casi è necessario che il CMS riesegua il processo dello step 1
Per eseguire un logout si utilizza l'apposita API /app/0.1/logout transando il code negli header
Una volta effettuato il logout il CMS reindirizza al login di zotsell con il parametro redirect_url, non essendoci sessioni aperte si rimane sul form di login in attesa delle immissioni delle credenziali
Il sistema di scadenza verrà impostato in questa maniera.
Esempio di processo lato CMS .
Attenzione La modifica dei setting di default è un operazione che comporta delle attività di riconfigurazione e ri-compilazione e personalizzazione e come tale comporterà un costo.
Cod. | Ultima revisione | Wiki | Note |
841 | 2021/05/19 - PG | integrazione_cms_esterno |
|
Integrazione sistema autenticazione con servizi esterni
Caratteristica
I servizi coinvolti sono- Servizio Zotsell (Buy o Sell) : ad esempio BaseUrl : test-enterprise.zotsell.com
- CMS esterno : ad esempio BaseUrl: www.miocms.com/
La caratteristica fornisce gli strumenti per permettere al CMS di verificare l'utente con il sistema di Login Zotsell per permettergli o meno l'accesso alle risorse del CMS stesso
Gli strumenti predisposti sono i seguenti
Autenticazione - Validazione
E' utilizzato un sistema simile a OAuth, anche se in questo caso non è necessario la separazione del client dalla risorsa protetta (pagine cms)Non è possibile utilizzare un'autenticazione diretta di base passando per il servizio cms, ossia fare in modo che un form sul cms del cliente accetti username e password, le legga e le mandi al server di Zotsell per l'autenticazione, questo perché l'utenza non può essere condivisa con un singolo servizio, essendo tale utenza propria della singolo user che potrebbe utilizzarla su più servizi Zotsell.
La verifica della validità dell'autenticazione utente viene eseguita tramite l'utilizzo di un access token (code) che può essere verificato dal CMS tramite apposita API PATH: /app/0.1/checkcodes
API
Di seguito le specifiche delle API di riferimentoAPI - checkcodes
L'API è predisposta su base url del servizio Zotsell (Es test.enterprise.zotsell.com)URL :
/app/0.1/checkcodes
Method:
GET
HEADER
Required:
code=[string]
:
Success Response
Code: 200
Content:{ "status":"codice autorizzato", "email": "enterprisebuyer002@zotsell.com", "user_type": "" }
Error Response
Code: 401 Unauthorized
Content: Case 1Login non va a buon fine
{ "status":"codice scaduto", }Content: Case 2
Utente non esiste nel DB locale o il role è diverso da base (Accounts::ROLE_REGISTERED_USER (6))
{ "status":"codice non autorizzato", }
Esempio
La verifica del code deve essere eseguita passandolo all'api nel Headercurl --location --request GET 'https://test-enterprise.zotsell.com/app/0.1/checkcodes' --header 'code: vOgHEKCG1VXgPQCryj7VeMtF3iZgazvNNSN3lcSKrGDRNGg6f8l80dAzaHtrhEPE' --data-raw ''
API - logout
E' disponibile una API per eseguire il logout utente al pathURL :
/app/0.1/logout
Method:
GET
HEADER
Required:
code=[string]
:Success Response
Code: 200
{ "status": 0, }
Esempio
curl --location --request GET '<a href="https://test-enterprise.zotsell.com/app/0.1/logout">https://test-enterprise.zotsell.com/app/0.1/logout</a>' --header 'code: vOgHEKCG1VXgPQCryj7VeMtF3iZgazvNNSN3lcSKrGDRNGg6f8l80dAzaHtrhEPE' --data-raw ''
Workflow
Di seguito sono rappresentati le fasi del workflow da utilizzare e relative descrizioniStep 1 /2 - Accesso a pagina protetta del CMS e redirect per Prima autenticazione
Al primo accesso al CMS l'utente non essendo riconosciuto dal CMS dovrebbe essere rediretto alla pagina di autenticazione del Vostro server Zotsell con un url contenente il link di ritorno al CMS nella forma
<a href="https://#ZOTSELLSERVER#?redirect_url=#URLVOSTROCMS#" "="">https://#ZOTSELLSERVER#?redirect_url=#URLVOSTROCMS...</a>Esempio
<a href="https://test-enterprise.zotsell.com/site/login?redirect_url=http://www.miocms.com">https://test-enterprise.zotsell.com/site/login?red...</a>
Il browser atterrerà sulla pagina login di Zotsell e richiederà i parametri di autenticazione
Step 3 - Autenticazione tramite login
Zotsell presenta la pagina di autenticazione richiedendo username e password che permetterà all'utente di eseguire il processo di autenticazione nel sistema.Una volta che l'utente ha utilizzato dei parametri di autenticazione validi il sistema di Zotsell provvederà a redirigere l'utente al redirect_url indicato con il parametro code e mail
www.miocms.com?code=qwertyuiopasdfghjklzxcvbnm&mail=mail@mail.com
Step 4 - API - Ritorno al CMS con l'authentication code e verifica validità code
Il CMS utilizzando l'API può verificare la validità del query param 'code' con cui l'utente si presenta al CMS
L'API avrà le seguenti risposte :
codice: 200
{
"status":"codice autorizzato",
"email":"enterprisebuyer002@zotsell.com"
"user_type":""
}<br>
codice: 401
{ "status":"codice scaduto" }
{ "status":"codice non autorizzato" }
In questi casi è necessario che il CMS riesegua il processo dello step 1
Step 5 - Logout
Per eseguire un logout si utilizza l'apposita API /app/0.1/logout transando il code negli header
curl --location --request GET '<a href="https://test-enterprise.zotsell.com/app/0.1/logout">https://test-enterprise.zotsell.com/app/0.1/logout</a>' --header 'code: vOgHEKCG1VXgPQCryj7VeMtF3iZgazvNNSN3lcSKrGDRNGg6f8l80dAzaHtrhEPE' --data-raw ''
Una volta effettuato il logout il CMS reindirizza al login di zotsell con il parametro redirect_url, non essendoci sessioni aperte si rimane sul form di login in attesa delle immissioni delle credenziali
Sessioni su Zotsell
Il sistema Zotsell manterrà le sessioni attive per il codice generato al momento dell'autenticazione, che verrà cancellato nel momento in cui un utente esegue un logout dal sistema, oppure fino a quando scade.Il sistema di scadenza verrà impostato in questa maniera.
- La scadenza verrà fissata a 72 ore (E' possibile eventualmente richiedere la modifica).
- Se il codice viene controllato viene fatto un rinnovo del tempo di scadenza spostandola dal tempo attuale in avanti di 72 ore.
- Questo fa in modo che il codice di autorizzazione non scada mai fino a quando l'utente è attivo.
- Se il codice non viene controllato per 72 ore allora al momento del controllo il cms deve fare in modo che il browser venga ridiretto alla pagina di login e la sessione viene cancellata.
Sessioni su CMS
Il volume di chiamate al sistema Zotsell per la verifica del codice di autenticazione potrebbe essere rilevante, quindi è consigliabile prevedere a livello del cms un sistema di "trust session", ossia una registrazione delle sessioni con il codice che mantenga "fidata" tale sessione per un tempo di 5/10 minuti e che poi lo richieda alla scadenza di tale tempo.Esempio di processo lato CMS .
- Il browser ottiene il codice di autorizzazione e lo presenta al cms
- Il cms registra il codice di autorizzazione e lo verifica presso il sistema di Zotsell
- Una volta verificato lo registra su una tabella di supporto registrando la data di verifica
- La seconda volta che il codice di autorizzazione viene presentato al cms viene verificato se dalla data di verifica sono passati 5 minuti.
- Se non sono passati si fida del codice e permette all'utente di accedere
- Se sono passati più di 5 minuti ricontrolla sul sistema di Zotsell se il codice è ancora valido.
- Se è ancora valido registra nuovamente la data di verifica attuale.
Settings base
Setting | Descrizione | Codice riferimento |
---|---|---|
|
||
Etichetta link da Zotsell | Etichetta da presentare nella pagina di atterraggio zotsell per portare l'utente al CMS dalla Dashboard di Zotsell | cms_external_link_anchor |
URl CMS per link da Zotsell | Url da associare all'etichetta del setting precedente per portare l'utente al CMS dalla Dashboard di Zotsell | cms_external_link |