Chiavi di accesso
Le chiavi di accesso sono token di protezione crittografati nel database ThingWorx che possono essere utilizzati al posto delle credenziali standard per accedere all'applicazione ThingWorx.
È possibile passare i token delle chiavi di accesso all'intestazione nell'URL di una richiesta. La richiesta viene eseguita mediante il contesto di protezione dell'utente associato alla chiave di accesso. Per default, non viene creata una sessione quando viene eseguita una richiesta utilizzando una chiave di accesso. Si tratta della modalità consigliata per altri sistemi e applicazioni di eseguire una richiesta all'applicazione ThingWorx. Se tuttavia si intende creare una sessione, oltre a passare il token della chiave di accesso è possibile utilizzare il parametro di query seguente:x-thingworx-session=true.
Quando si visualizza un mashup tramite un URL e si utilizza una chiave di accesso, è consigliabile creare una sessione aggiungendo x-thingworx-session=true. Senza una sessione, le richieste successive richiedono l'autenticazione mediante l'autenticatore HTTP di base standard. Dopo il parametro di query x-thingworx-session=true, includere #mashup=[your mashup name].
* 
Quando si creano e si assegnano privilegi per le chiavi di accesso, è opportuno utilizzare sempre il concetto di protezione del privilegio minimo. Non è consigliabile assegnare un membro del gruppo Amministratori a una chiave di accesso. Se si tenta di creare una chiave di accesso in base a un utente con privilegi di amministratore, viene visualizzata un'avvertenza.
Proprietà delle chiavi di accesso
Nome proprietà
Descrizione
Nome
Parola o frase che identifica questa chiave. Campo obbligatorio.
Avatar
Immagine che può essere caricata per rappresentare visivamente la chiave di accesso.
Descrizione
Descrizione della chiave di accesso.
Progetto
Il lavoro o il gruppo associato a questa chiave.
Tag
Tag modello che è possibile utilizzare per raggruppare o classificare la chiave di accesso.
Elenco di IP consentiti
Elenco di IP consentiti per accedere a ThingWorx utilizzando la chiave di accesso. Separare gli IP con una virgola. Se il campo viene lasciato vuoto, qualsiasi IP può utilizzare la chiave di accesso.
Nome client
Campo definibile dall'utente che può rappresentare qualsiasi elemento, ad esempio il client associato alla chiave di accesso o un indirizzo IP. ThingWorx ignora i valori assegnati a questo campo.
Riferimento nome utente
Nome utente associato alla chiave di accesso. Campo obbligatorio.
ID chiave
Valore di chiave generato da ThingWorx. L'ID chiave non può essere modificato.
* 
L'ID chiave viene memorizzato in modalità crittografata nel database. La chiave simmetrica utilizzata per crittografare il valore è memorizzata in /ThingworxStorage/keystore.jks e la password per il keystore in /ThingworxPlatform/keystore-password. Se questi file non esistono, vengono generati. Se una chiave simmetrica non esiste, ne verrà creata una prima dell'avvio del sistema. Se si installa e si gestisce il server ThingWorx, assicurarsi di conservare questi file. Se i file vengono persi, le chiavi di accesso non funzionano, ovvero non è possibile crittografare il valore durante l'avvio del sistema e le chiavi di accesso esistenti non possono più essere salvate o autenticate.
Data di scadenza
Data di scadenza della chiave di accesso. Se non è specificata una data di scadenza, viene utilizzato il valore di default nel sottosistema Gestione utenti. In ThingWorx 8.1 e versioni successive, le chiavi di accesso scadono 24 ore dopo la creazione, se non è specificata la data di scadenza o se il valore Durata chiave di accesso (sec) nel sottosistema Gestione utenti non viene modificato.
Data ultima modifica
Data e ora in cui è stata apportata l'ultima modifica alla chiave di accesso.
Mashup di default
Mashup di default associato alla chiave di accesso.
Documentazione
Note opzionali o informazioni di base che descrivono come o a quale scopo viene utilizzata nell'ambiente.
Creazione di una chiave di accesso
Per creare una chiave di accesso, attenersi alla procedura descritta di seguito. La chiave creata assume le impostazioni di protezione concesse all'utente associato nel campo Riferimento nome utente.
1. In ThingWorx Composer fare clic su Nuovo.
2. Scorrere verso il basso e selezionare Chiavi di accesso.
3. Digitare un valore nel campo Nome.
4. Se si desidera, selezionare o immettere Descrizione, Progetto e Tag per questa chiave.
5. Nel campo Riferimento nome utente selezionare l'utente associato alla chiave di accesso.
6. Riempire tutti i campi opzionali desiderati, inclusi Elenco di IP consentiti, Nome client, Mashup di default, Avatar, Data di scadenza o Documentazione.
* 
Se non è impostata una Data di scadenza, viene calcolato un valore dalla data di creazione dell'entità chiave di accesso più l'impostazione Durata chiave di accesso (sec) nel sottosistema Gestione utenti.
7. Fare clic su Salva.
8. La chiave di accesso viene visualizzata nel campo ID chiave.
Eliminazione di una chiave di accesso
Sebbene sia possibile specificare una data di scadenza per una chiave di accesso, le chiavi di accesso non vengono automaticamente eliminate alla scadenza. È possibile scrivere la logica dell'applicazione ThingWorx in modo da scorrere ed eliminare periodicamente le chiavi di accesso scadute. Vedere Servizi delle chiavi di accesso. Per eliminare manualmente una chiave di accesso:
1. In Composer sfogliare Tutto.
2. Scorrere verso il basso fino alla sezione PROTEZIONE.
3. Espandere la sezione, se necessario, e individuare Chiavi di accesso.
4. Selezionare una chiave di accesso facendo clic sulla casella di controllo a sinistra del nome.
5. Fare clic sul pulsante Elimina.
Creazione di una chiave di accesso mediante un servizio
Per creare una chiave di accesso mediante un servizio, utilizzare l'esempio seguente:
var params = {
clientName: undefined /* STRING */,
name: undefined /* STRING */,
description: undefined /* STRING */,
project: undefined /* STRING */,
whitelist: undefined /* STRING */,
user: undefined /* USERNAME */,
tags: undefined /* TAGS */,
expirationDate: undefined /* DATETIME */
};
// no return
Resources["EntityServices"].CreateApplicationKey(params);
//Get the generated Key's actual appKey value
var KeyID = ApplicationKeys["YOURKEYNAME"].GetKeyID();
* 
Se non è impostata una Data di scadenza, viene calcolato un valore dalla data di creazione dell'entità chiave di accesso più l'impostazione Durata chiave di accesso (sec) nel sottosistema Gestione utenti.
Best practice per l'impostazione iniziale della chiave di accesso e per la prima connessione
Se possibile, i dispositivi dovrebbero essere sempre portati online o simulati in una sandbox di sviluppo. Una volta che un dispositivo è pronto per la produzione, è necessario creare nuove chiavi di accesso per ciascun dispositivo che si trova sulla rete perimetrale dell'applicazione. Dopo avere creato e implementato una chiave di accesso univoca nel dispositivo in questione, il dispositivo deve essere monitorato quando viene inizializzato per verificare che sia connesso alla piattaforma.
Scadenza e rotazione della chiave di accesso
Come best practice, le chiavi di accesso devono avere una data di scadenza limitata che corrisponda al ciclo di vita previsto del dispositivo che utilizzerà le rispettive credenziali. Inoltre non è consigliabile utilizzare la stessa chiave di accesso per più dispositivi, soprattutto se i rispettivi cicli di vita sono diversi. Una volta che una chiave di accesso è scaduta, è necessario installare una nuova chiave di accesso nel dispositivo.
Scadenza della chiave di accesso per applicazioni critiche
Se non è disponibile un sistema per consegnare una nuova chiave di accesso al dispositivo, è possibile aggiornare la scadenza sulla chiave di accesso per consentire un prolungamento della durata. Questa procedura non è una best practice consigliata, ma può essere utilizzata come soluzione temporanea quando potrebbero andare persi dati aziendali critici. È importante notare che l'estensione del ciclo di vita della chiave di accesso oltre il ciclo di vita previsto del dispositivo può introdurre minacce alla protezione per l'infrastruttura delle applicazioni critiche.
Link correlati