Puoi configurare il Web Widget (versione classica) per incorporare contenuti da un centro assistenza con limitazioni (un centro assistenza che richiede agli utenti l’accesso) o contenuti della Knowledge base con limitazioni (un centro assistenza pubblico con articoli riservati a utenti specifici).
Quando configuri il Web Widget (versione classica) per includere contenuti con limitazioni:
- I visitatori del sito web che hanno effettuato l’accesso possono leggere gli articoli con limitazioni del centro assistenza tramite il Web Widget (versione classica). Tieni presente che il sito del cliente in cui è incorporato il widget è responsabile dell’autenticazione dell’email di un utente.
- I visitatori che non hanno effettuato l’accesso, tuttavia, vedono solo gli articoli pubblici. Se non ci sono articoli pubblici, le funzioni del centro assistenza non appaiono nel Web Widget (versione classica).
L'articolo include i seguenti argomenti:
Per maggiori informazioni su Web Widget (versione classica), consulta Uso del Web Widget (versione classica) per incorporare il servizio clienti in un sito web.
Per informazioni sulle limitazioni dei centri di assistenza e dei contenuti della Knowledge base, consulta Limitazione dei contenuti ai soli utenti connessi e Limitazione dell'accesso ai contenuti della Knowledge base.
Definizione delle impostazioni di sicurezza del centro assistenza
Il Web Widget (versione classica) ti consente di visualizzare i contenuti di un centro assistenza con una delle seguenti configurazioni di sicurezza. Potrebbe essere necessario abilitare o disabilitare l’opzione Richiedi l’accesso nelle impostazioni di sicurezza del centro assistenza in Guide, in base al tipo di centro assistenza.
Tipo di centro assistenza | Abilita “Richiedi l’accesso”? |
---|---|
Un centro assistenza pubblico, in cui tutti i contenuti sono disponibili al pubblico. | Non abilitare Richiedi l’accesso. |
Un centro assistenza con limitazioni, in cui gli utenti devono essere registrati e aver effettuato l’accesso per visualizzare qualsiasi contenuto. | Abilita Richiedi l’accesso. |
Un centro assistenza pubblico con contenuti con limitazioni, in cui alcuni articoli sono disponibili solo per utenti specifici e altri sono disponibili per tutti i visitatori del centro assistenza. | Non abilitare Richiedi l’accesso. Chiunque può vedere gli articoli senza limitazioni nel centro assistenza senza effettuare l’accesso. Tuttavia, solo gli utenti autenticati con le autorizzazioni corrette possono vedere gli articoli con limitazioni. |
Per controllare le impostazioni di sicurezza del centro assistenza
- In Guide, fai clic sull’icona Impostazioni () nella barra laterale.
- Nella sezione Sicurezza, abilita o disabilita l’opzione Richiedi l’accesso, se necessario, in base al tipo di centro assistenza.
- Se disponi di un centro assistenza riservato o di un centro assistenza pubblico con contenuti riservati, passa a Configurazione del Web Widget (versione classica) per mostrare i contenuti riservati.
Configurazione del Web Widget (versione classica) per mostrare contenuti con limitazioni
Se disponi di un centro assistenza con limitazioni o pubblico con contenuti con limitazioni, significa che hai articoli con limitazioni (consulta Definizione delle impostazioni di sicurezza del centro assistenza). Se vuoi che gli articoli con limitazioni appaiano nel Web Widget (versione classica), devi configurare le impostazioni del Web Widget (versione classica) e aggiungere ulteriori frammenti al codice del tuo sito web.
Se disponi di un centro assistenza pubblico, questo compito non è applicabile al tuo caso.
Per iniziare, devi controllare le impostazioni del Web Widget (versione classica) e generare un segreto condiviso.
Per verificare le impostazioni e generare un segreto condiviso
- Nel Centro amministrativo, fai clic su Canali nella barra laterale, quindi seleziona Versione classica > Web Widget.
- Fai clic sulla scheda Informazioni di base.
- Assicurati che la casella Centro assistenza sia selezionata.
Se non l’hai già fatto, accedi alle impostazioni di Guide e abilita o disabilita l’opzione Richiedi l’accesso, in base al tipo di centro assistenza (consulta Definizione delle impostazioni di sicurezza del centro assistenza).
- Fai clic sulla scheda Sicurezza.
- Nella casella Elenco consentito, inserisci i sottodomini che contengono il Web Widget (versione classica). Ciò consente la visualizzazione dei contenuti del centro assistenza nel widget per gli utenti autenticati.
Per la tua sicurezza, ti consigliamo di aggiungere i sottodomini all’elenco consentito. Se hai motivi specifici per cui la limitazione dell’accesso a determinati sottodomini non funziona, puoi lasciare vuota questa casella. Usa gli spazi per separare i sottodomini.
- Seleziona Consenti agli agenti di accedere ai contenuti riservati del centro assistenza per consentire la visualizzazione dei contenuti riservati del centro assistenza quando agenti e amministratori accedono al Web Widget (versione classica).
Se disponi di un centro assistenza con limitazione e l'accesso degli agenti non è abilitato, le funzioni del centro assistenza non saranno visualizzate da agenti e amministratori nel Web Widget (versione classica). Se gli articoli sono riservati e l'accesso degli agenti non è abilitato, gli agenti vedranno solo il contenuto pubblico.
- Configura segreto condiviso:
- Crea un segreto condiviso facendo clic sul pulsante Genera:
Poiché si tratta di un’impostazione di sicurezza, il segreto condiviso può essere generato, copiato e incollato in una comunicazione con il team tecnico o direttamente nel tuo code base in un’unica sessione. Non deve essere inserito in un browser.
Nota: il segreto condiviso deve rimanere riservato. Di conseguenza, apparirà per intero solo una volta. Se non hai accesso al segreto condiviso e hai bisogno del segreto completo per creare il token, puoi reimpostare il segreto facendo clic su Reimposta. - Se ritieni che il segreto condiviso sia stato compromesso, dopo aver reimpostato il segreto condiviso puoi revocare tutti i token esistenti. Ciò renderà nullo l’accesso a tutti coloro che si erano autenticati in precedenza e non consentirà la visualizzazione dei contenuti con limitazione fino all’emissione di un nuovo token valido.
- Crea un segreto condiviso facendo clic sul pulsante Genera:
Dopo aver generato il segreto condiviso, usalo per creare un token JWT (Scopri di più su JWT) che aggiungerai al frammento di codice del Web Widget (versione classica).
Per creare un token JWT e aggiungere il codice al frammento di codice del Web Widget (versione classica)
- Crea un payload di dati sul lato server per il token JWT. Sono necessarie le seguenti informazioni:
- name: il nome del cliente.
- email: l’indirizzo email del cliente.
-
iat: il valore intero del timestamp corrente espresso in secondi. Alcune funzioni in linguaggi specifici, ad esempio Date.now() di JavaScript, restituiscono tale valore in millisecondi, quindi assicurati di convertirlo in secondi.
L’autenticazione Iat per Web Widget consente uno sfasamento dell’orologio di due minuti.
- jti: Identificatore univoco per questo token. Non può essere uguale a nessun altro token jwt già inviato. Ad esempio, un numero casuale a 64 bit.
- Specifica HS256 come algoritmo JWT nell’intestazione del tuo payload JWT:
{ "typ":"JWT", "alg":"HS256" }
HS256 è l’acronimo di HMAC SHA 256, un algoritmo di crittografia a 256 bit ideato dalla NSA (National Security Agency, Agenzia per la Sicurezza Nazionale degli Stati Uniti)
Nota: Zendesk non supporta gli algoritmi JWT RS256 ed ES256. - Usa gli esempi di codice qui sotto per trovare un modello adatto alle tue esigenze.
- Aggiungi una funzione che recuperi il JWT dal server ed effettui una richiamata con il valore JWT. Sostituisci “YOUR_JWT_TOKEN” con il token che hai creato. Assicurati di inserire questo codice prima del frammento di codice del Web Widget (versione classica):
<script type="text/javascript"> window.zESettings = { webWidget: { authenticate: { jwtFn: function(callback) { callback('YOUR_JWT_TOKEN'); } } } }; </script>
I token scadono dopo due ore. Puoi rimuoverli prima dalla memorizzazione locale aggiungendo la seguente chiamata API quando l’utente si disconnette:
<script type="text/javascript"> zE(function() { zE.logout(); }); </script>
Esempi di codice
Il token deve essere generato dinamicamente sul lato server al caricamento della pagina. Trova qui sotto il modello adatto alle tue esigenze. Personalizza il campione come necessario, assicurandoti di sostituire #{details} con le tue informazioni.
Se nessuno di questi esempi soddisfa le tue esigenze, JWT offre un elenco più ampio di librerie JWT da esplorare.
Ruby
Innanzitutto, installa ruby-jwt.
Se stai usando Rubygems:
gem install jwt
Se stai usando Bundler, aggiungi quanto segue al tuo file gem:
gem 'jwt'
Quindi, genera un token usando il segreto condiviso:
require 'jwt'
payload = {
:name => "#{customerName}",
:email => "#{customerEmail}",
:iat => timestamp,
:jti => "#{uniqueId}"
}
token = JWT.encode payload, "#{yourSecret}"
NodeJS
Installa jsonwebtoken:
npm install jsonwebtoken --save-dev
Genera quindi un token usando il segreto condiviso:
var jwt = require('jsonwebtoken');
var payload = {
name: '#{customerName}',
email: '#{customerEmail}',
iat: #{timestamp},
jti: '#{uniqueId}'
};
var token = jwt.sign(payload, '#{yourSecret}');
Python
Installa python-jose:
pip install python-jose
Genera un token usando il segreto condiviso:
from jose import jwt
var payload = {
'name': '#{customerName}',
'email': '#{customerEmail}',
'iat': #{timestamp},
'jti': '#{uniqueId}'
}
token = jwt.encode(payload, '#{yourSecret}'
PHP
Scarica PHP-JWT:
composer require firebase/php-jwt
Genera un token usando il segreto condiviso:
use \Firebase\JWT\JWT;
$payload = {
'name' => '#{customerName}' ,
'email' => '#{customerEmail}',
'iat' => #{timestamp},
'jti' => '#{uniqueId}'
};
$token = JWT::encode($payload, '#{yourSecret}');
Elixir
Aggiungi `json_web_token_ex` al tuo file `mix.exs`:
defp deps do
[{:json_web_token, "~> 0.2"}]
end
Genera un token usando il segreto condiviso:
data = %{
name: "#{customerName}",
email: "#{customerEmail}",
iat: "#{timestamp}",
jti: "#{uniqueId}"
}
options = %{ key: "#{yourSecret}" }
jwt = JsonWebToken.sign data, options