A partire da Tableau Server versione 2022.1, le app connesse di Tableau consentono un'esperienza di autenticazione semplice e sicura, facilitando una relazione di trust esplicita tra il sito Tableau Server e le applicazioni personalizzate in cui è incorporato il contenuto di Tableau.

Le app connesse offrono i seguenti vantaggi:

  • Limita l'accesso ai contenuti che possono essere incorporati e alle posizioni in cui tali contenuti possono essere incorporati
  • Offri agli utenti la possibilità di accedere ai contenuti incorporati utilizzando l'accesso Single Sign-On (SSO) senza dover eseguire l'integrazione con un provider di identità (IdP)
  • Offri agli utenti la possibilità di autenticarsi direttamente dalla tua applicazione personalizzata

Note:

  • La funzionalità per le app connesse, senza interfaccia utente, per Tableau Server è diventata disponibile in Tableau Server versione 2021.4 tramite i metodi per le app connesse(Il collegamento viene aperto in una nuova finestra) nell'API REST di Tableau.
  • Le app connesse di Tableau e le app connesse di Salesforce sono diverse e offrono funzionalità differenti. Attualmente, le app connesse a Tableau sono ottimizzate per incorporare viste e metriche di Tableau nelle applicazioni personalizzate.

Come funzionano le app connesse

La relazione di trust tra il sito Tableau Server e l'applicazione personalizzata viene stabilita e verificata tramite un token di autenticazione nello standard JWT (JSON Web Token), che utilizza un segreto condiviso fornito dall'app connessa di Tableau e firmato dall'applicazione personalizzata.

Componenti principali di un'app connessa

I seguenti componenti dell'app connessa funzionano insieme al token JWT nell'applicazione personalizzata per autenticare gli utenti e visualizzare il contenuto incorporato.

  • Segreti: i segreti sono chiavi condivise da Tableau e dall'applicazione personalizzata. Sono utilizzati nelle firme che formano il token JWT. È necessario un segreto quando si utilizzano app connesse per incorporare l'autenticazione. I segreti possono essere creati in un'app connessa, non scadono e rimangono validi fino all'eliminazione.
  • Elenco consentiti di dominio: puoi specificare un elenco di domini consentiti in ogni app connessa. Il contenuto di Tableau incorporato tramite un'app connessa è consentito solo nei domini specificati. Ciò aiuta a garantire che i contenuti siano esposti nei domini protetti e approvati dalla tua azienda.
  • Livello di accesso: puoi specificare quale contenuto può essere incorporato tramite un'app connessa associando un'app connessa a un progetto o a tutti i progetti. Se specifichi un progetto, solo il contenuto del progetto selezionato può essere incorporato tramite l'app connessa.

Nota: per abilitare l'incorporamento tramite app connesse, Tableau Server deve essere configurato per l'utilizzo di SSL per il traffico HTTP.

Flusso di lavoro dell'app connessa

Il diagramma seguente illustra come funziona l'autenticazione tra l'applicazione personalizzata (server Web e pagina Web) e l'app connessa.

  1. L'utente visita la pagina Web: quando un utente visita il contenuto incorporato in una pagina Web, la pagina Web invia una richiesta GET all'applicazione personalizzata per recuperare il codice HTML per la pagina Web.
  2. L'applicazione personalizzata crea un token di autenticazione: l'applicazione personalizzata crea un token JWT, che contiene un segreto dell'app connessa (vedi la fase 3 di seguito per ulteriori requisiti del token JWT) e l'ambito dell'accesso utente per il contenuto incorporato. Il segreto viene firmato dall'applicazione personalizzata ed è utilizzato per la verifica della relazione di trust in una fase successiva.
  3. L'applicazione personalizzata risponde con il token di autenticazione: l'applicazione personalizzata risponde alla pagina con il token JWT nell'URL del contenuto incorporato chiamato dalla pagina Web.
  4. La pagina Web richiede il contenuto a Tableau: nel tentativo di caricare il contenuto incorporato, la pagina Web chiama l'URL del contenuto incorporato, che invia una richiesta GET a Tableau.
  5. Tableau convalida il token: Tableau riceve il token JWT e verifica la relazione di trust con l'applicazione personalizzata identificando l'app connessa e il segreto condiviso utilizzati nel token JWT. Tableau crea quindi una sessione per l'utente. La sessione rispetta non solo gli ambiti di incorporamento definiti nel token JWT, ma anche le restrizioni specificate nell'app connessa, inclusi i domini consentiti e i progetti consentiti.
  6. Tableau restituisce il contenuto in base al contesto di incorporamento limitato: il contenuto incorporato viene caricato solo quando la pagina si trova in un dominio consentito e il contenuto viene pubblicato in un progetto consentito (se applicabile). L'utente autenticato può interagire solo con il contenuto incorporato nell'ambito definito nel token JWT.

Creare un'app connessa

Fase 1. Creare un'app connessa

Crea un'app connessa dalla pagina Impostazioni di Tableau Server.

  1. Come amministratore del server o del sito, accedi Tableau Server.

  2. Dal riquadro di sinistra seleziona Impostazioni > App connesse, quindi fai clic sul pulsante Nuova app connessa.

  3. Nella finestra di dialogo Crea app connessa procedi come segue:
    1. Nella casella di testo Nome app connessa inserisci un nome per l'app connessa.

    2. Dal menu a discesa Si applica a seleziona Tutti i progetti o Un solo progetto per controllare quali viste o metriche possono essere incorporate. Se selezioni l'opzione "Un solo progetto", seleziona il progetto specifico a cui applicare l'ambito.

    3. Nell'elenco consentiti di dominio specifica i domini utilizzando le regole descritte di seguito in Formattazione del dominio per controllare dove è possibile incorporare le viste o le metriche.

    4. Al termine, fai clic sul pulsante Crea.

  4. Accanto al nome dell'app connessa, fai clic sul menu Azioni e seleziona Abilita. Per motivi di sicurezza, un'app connessa è disabilitata per impostazione predefinita quando viene creata.

  5. Prendi nota dell'ID dell'app connessa, anche denominato ID client, da utilizzare nella fase 3 di seguito.

Fase 2. Generare un segreto

Puoi generare un totale di due segreti per ogni app connessa. Il secondo segreto può essere utilizzato a scopo di rotazione dei segreti, in modo da evitare problemi se un segreto viene compromesso.

  1. Nella pagina dei dettagli dell'app connessa creata nella fase 1 fai clic sul pulsante Genera nuovo segreto.

  2. Prendi nota dell'ID e del valore del segreto da utilizzare nella fase 3 di seguito.

Fase 3. Configurare il token JWT

Dopo aver generato un segreto, vuoi consentire all'applicazione personalizzata di inviare un token JWT valido. JWT è uno standard utilizzato per trasferire in modo sicuro le informazioni tra due parti. Il token JWT è firmato dall'applicazione personalizzata per inviare informazioni in modo sicuro a Tableau Server. Il token JWT fa riferimento all'app connessa, all'utente per cui viene generata la sessione e al livello di accesso che l'utente deve avere.

Un token JWT valido include le seguenti informazioni:

  • ID dell'app connessa, anche denominato ID client, dalla fase 1
  • ID e valore del segreto generati nella fase 2

  • Attestazioni registrate e intestazione:

    Attestazione Descrizione o valore richiesto
    "iss" (Issuer) Obbligatorio (nell'intestazione o come attestazione). URI dell'emittente univoco che identifica l'app connessa attendibile e la relativa chiave di firma.
    "alg" (Algorithm) Obbligatorio (nell'intestazione o come attestazione). Algoritmo di firma JWT. È supportato solo HS256.
    "sub" (Subject) Nome utente dell'utente autenticato di Tableau Server.
    "aud" (Audience) Il valore deve essere: "tableau"
    "exp" (ExpirationTime)

    Un token JWT valido non deve essere scaduto. L'ora di scadenza del token JWT deve rientrare nel periodo di validità massimo configurato. Il periodo di validità massimo può essere configurato utilizzando il comando tsm vizportal.oauth.connected_apps.max_expiration_period_in_minutes.

    "jti" (ID JWT) Obbligatorio come attestazione. L'attestazione ID JWT fornisce un identificatore univoco per il token JWT, applicando la distinzione tra maiuscole e minuscole.
    "scp" (Scope)

    I valori supportati includono:

    "tableau:views:embed"
    "tableau:metrics:embed"

    Note:

    • I valori devono essere passati come tipo di elenco.
    • Per tableau:views:embed, l'ambito rispetta le autorizzazioni degli utenti già configurate in Tableau Server e consente agli utenti di interagire con gli strumenti nella vista incorporata, se disponibili nella vista originale.
    • È consigliabile che il codice di incorporamento escluda il parametro toolbar. Per maggiori informazioni, consulta Problemi noti di seguito.

Token JWT di esempio

Ecco alcuni token JWT di esempio nei linguaggi Java e Python.

Java

String secret = "secretvalue";
	String kid = "connectedAppSecretId";
	String clientId = "connectedAppClientId";
	List<String> scopes = new
ArrayList<>(Arrays.asList("tableau:views:embed"));
	String username = "username";
	JWSSigner signer = new MACSigner(secret);
	JWSHeader header = new
JWSHeader.Builder(JWSAlgorithm.HS256).keyID(kid).customParam("iss", clientId).build();
	JWTClaimsSet claimsSet = new JWTClaimsSet.Builder()
		.issuer(clientId)
		.expirationTime(new Date(new Date().getTime() + 60 * 1000)) //expires in 1 minute
		.jwtID(UUID.randomUUID().toString())
		.audience("tableau")
		.subject("username")
		.claim("scp", scopes)
		.build();
	SignedJWT signedJWT = new SignedJWT(header, claimsSet);
	signedJWT.sign(signer);
	model.addAttribute("token", signedJWT.serialize());

Python

token = jwt.encode(
	{
		"iss": connectedAppClientId,
		"exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=5),
		"jti": str(uuid.uuid4()),
		"aud": "tableau",
		"sub": user,
		"scp": ["tableau:views:embed", "tableau:metrics:embed"]
	},
		connectedAppSecretKey,
		algorithm = "HS256",
		headers = {
		'kid': connectedAppSecretId,
		'iss': connectedAppClientId
        }
  )

Dopo aver configurato il token JWT, quando il codice viene eseguito dall'applicazione personalizzata, genererà un token.

Fase 4. Operazioni successive per l'incorporamento

Dopo che il token JWT è stato configurato, devi aggiungere il codice di incorporamento alla tua applicazione personalizzata. Assicurati di includere il token JWT valido configurato nella fase 3 nel componente Web chiamato dall'applicazione personalizzata.

Per maggiori informazioni sull'incorporamento del contenuto di Tableau, consulta uno o entrambi i seguenti argomenti:

Nota: affinché gli utenti possano eseguire correttamente l'autenticazione quando accedono ai contenuti incorporati, i browser devono essere configurati in modo da consentire i cookie di terze parti o per l'utilizzo dell'archiviazione partizionata. L'archiviazione partizionata è attivata per impostazione predefinita per Mozilla Firefox e può essere abilitata nei browser Google Chrome.

Gestire un'app connessa

La pagina App connesse consente di gestire tutte le app connesse per il sito. Puoi eseguire attività come la creazione, l'eliminazione e la disabilitazione di app connesse, nonché revocare o generare nuovi segreti se i segreti esistenti sono stati compromessi.

  1. Come amministratore del server o del sito, accedi a Tableau Server.

  2. Dal riquadro di sinistra seleziona Impostazioni > App connesse.

  3. Seleziona la casella di controllo accanto all'app connessa che desideri gestire ed esegui una o più delle seguenti operazioni:

    • Genera un nuovo segreto in base alla tempistica di rotazione specificata dai criteri di sicurezza della tua organizzazione. Per generare un segreto aggiuntivo, fai clic sul nome dell'app connessa, quindi sul pulsante Genera nuovo segreto. Un'app connessa può avere un massimo di due segreti. Entrambi i segreti possono essere attivi contemporaneamente, non scadono e rimangono validi fino all'eliminazione.

    • Esamina i dettagli dell'app connessa facendo clic sul nome dell'app connessa per vedere quando è stata creata, il relativo ID, gli ambiti del progetto e del dominio e i relativi segreti.

    • Modifica l'ambito o il dominio del progetto. Nel menu Azioni seleziona Modifica. Apporta le modifiche e fai clic su Aggiorna.

      Nota: se modifichi gli ambiti del progetto o del dominio e il contenuto incorporato non esiste né nel nuovo progetto né nel nuovo dominio, la vista o la metrica incorporata non potrà essere visualizzata e agli utenti verrà mostrato un errore quando accedono al contenuto incorporato.

    • Elimina un segreto facendo clic sul nome dell'app connessa. Nella pagina dell'app connessa fai clic su Azioni accanto al segreto, quindi seleziona Elimina. Nella finestra di dialogo di conferma seleziona nuovamente Elimina.

      Nota: se il segreto dell'app connessa viene utilizzato da un'applicazione personalizzata, la vista o la metrica incorporata non può essere visualizzata dopo l'eliminazione del segreto. Per maggiori informazioni, consulta Effetti della disabilitazione o dell'eliminazione di un'app connessa o dell'eliminazione di un segreto di seguito.

    • Disabilita un'app connessa. Nel menu Azioni seleziona Disabilita. Se l'app connessa viene utilizzata da un'applicazione personalizzata, la vista o la metrica incorporata non può essere visualizzata dopo la disabilitazione dell'app connessa. Per maggiori informazioni, consulta Effetti della disabilitazione o dell'eliminazione di un'app connessa o dell'eliminazione di un segreto di seguito.

Effetti della disabilitazione o dell'eliminazione di un'app connessa o dell'eliminazione di un segreto

Per mostrare all'utente una vista o una metrica incorporata tramite un'app connessa, è necessario che l'app connessa sia abilitata e che venga generato un segreto. Se l'app connessa è utilizzata nell'applicazione personalizzata e viene disabilitata o eliminata, oppure il relativo segreto viene eliminato o sostituito, agli utenti verrà mostrato un errore quando accedono al contenuto incorporato.

Per evitare questo problema, assicurati che l'app di connessione sia abilitata e che il token JWT utilizzi l'ID e il valore del segreto corretti.

Regole dell'elenco consentiti di dominio

L'elenco consentiti di dominio dell'app connessa ti consente di limitare l'accesso ai contenuti di Tableau incorporati a tutti i domini o ad alcuni domini oppure di escludere alcuni domini o bloccare tutti i domini.

Opzioni per il dominio

Puoi selezionare una delle due opzioni durante la configurazione dell'elenco consentiti di dominio di un'app connessa:

  • Tutti i domini: come opzione predefinita, questa opzione consente l'accesso illimitato al contenuto incorporato.
  • Solo domini specifici: questa opzione ti offre la possibilità di limitare l'accesso al contenuto incorporato. Se utilizzi questa opzione, segui le regole di formattazione specificate nella sezione seguente, Formattazione del dominio.

Formattazione del dominio

Nella casella di testo dell'elenco consentiti di dominio puoi inserire un dominio, più domini o nessun dominio. L'elenco consentiti di dominio rispetta qualsiasi formattazione consentita dall'intestazione frame-ancestors(Il collegamento viene aperto in una nuova finestra) del framework CSP (Content Security Policy).

Nota: le regole di formattazione del dominio si applicano anche quando si utilizzano i metodi per le app connesse(Il collegamento viene aperto in una nuova finestra) dell'API REST di Tableau.

Ecco alcuni esempi di formattazione basati su scenari comuni:

Per specificare... Esempio Accesso al contenuto incorporato
Gamma di domini *.myco.com Il contenuto incorporato è accessibile da tutti i sottodomini in myco.com.
Più domini discreti myco.com
events.myco.com
ops.myco.com
Il contenuto incorporato è accessibile da tutti e tre i domini.
Nessun dominio [nessun dominio] L'accesso ai contenuti incorporati è bloccato.

Problemi noti

Esistono alcuni problemi noti per l'utilizzo delle app connesse che verranno risolti in una versione futura.

  • Funzionalità della barra degli strumenti: quando per il contenuto incorporato è definito il parametro toolbar, non tutte le funzionalità della barra degli strumenti funzioneranno. Per risolvere il problema, è consigliabile nascondere il parametro toolbar come nell'esempio seguente.

    <tableau-viz id='tab-viz' src='https://<your_server>/t/<your_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

  • Origini dati pubblicate: le origini dati pubblicate impostate su Avvisa utente per le credenziali del database non verranno visualizzate. Per risolvere il problema, se possibile, è consigliabile che i proprietari delle origini dati incorporino le proprie credenziali del database.
Grazie per il tuo feedback.