HELP FILE

Usa la API di Provisioning LastPass

LastPass supporta un'API pubblica che può essere usata dagli account LastPass Enterprise per creare utenti, effettuare il deprovisioning di utenti e gestire gruppi. Questo provisioning automatico API è molto efficace, ma richiede l'integrazione da parte tua per evitare azioni duplicate. Poiché LastPass offre alcune opzioni di provisioning automatizzato, scopri di più su quale opzione sia quella giusta per te.

Argomenti in questo articolo:

Aggiungi un utente

Genera chiavi RSA

Aggiungi un utente a una cartella condivisa

Aggiungi un utente

Il primo passaggio consiste nell'aggiungere un utente. Devi prima scegliere il numero di iterazioni PBKDF2 che intendi utilizzare. LastPass utilizza attualmente 100.100 iterazioni, come impostazione predefinita, come giusto compromesso fra sicurezza e prestazioni.

Una volta che disponi del nome utente, della password e del numero di iterazioni che intendi utilizzare, puoi calcolare inizialmente la chiave di crittografia dell'utente. Viene generata utilizzando PBKDF2-HMAC-SHA256, utilizzando il nome utente per il salting. Ecco un esempio utilizzando la funzione OpenSSL PKCS5_PBKDF2_HMAC() (tieni presente che nome utente e password dovrebbero essere crittografate UTF-8):

const unsigned char *username = “user@lastpass.com”;

const char *password = “T5O89kkUMGYT”;

int iterations = 5000;

unsigned char key[32];

PKCS5_PBKDF2_HMAC(password, strlen(password), username, strlen(username), iterations, EVP_sha256(), 32, key);

Se questa chiamata di funzione ha successo, la chiave di crittografia dell'utente sarà presente nella variabile “chiave”.

Ora che hai la chiave di crittografia dell'utente, puoi usarla per generare l'hash della password utente. Questo è l'hash che viene passato all'API AddUser come parametro di passwordhash. Ecco un esempio, continuando da quello qui soipra:

unsigned char hash[32];

PKCS5_PBKDF2_HMAC(key, 32, password, strlen(password), 1, EVP_sha256(), 32, hash);

Se questa chiamata di funzione ha successo, l'hash della password dell'utente sarà presente nella variabile “hash”. Tieni presente che dovresti convertire l'hash in codice esadecimale prima di passarla a LastPass. Perciò, il valore di passwordhash dovrebbe essere sempre di 64 caratteri esadecimali.

Genera chiavi RSA

Per aggiungere immediatamente un utente alle cartelle condivise devi anche passare rsapublickey e rsaprivatekeyenc nel comando AddUser.

  1. Genera un paio di chiavi RSA pubblica/privata. Questo deve essere 2048 bit.
  2. Codifica la chiave pubblica in formato ASN.1 DER, poi convertila in codice esadecimale (questo è il valore per rsapublickey che sarà passato a LastPass). Puoi vedere un esempio di rsapublickey valida qui.
  3. Codifica la chiave pubblica in formato ASN.1 DER, poi convertila in codice esadecimale (questo è il valore per rsaprivatekey che dovrai crittografare con la chiave di crittografia dell'utente, prima di passarlo a LastPass). Puoi vedere un esempio di rsaprivatekey valida qui.
  4. Crittografa la rsaprivatekey utilizzando la chiave di crittografia dell'utente:
    1. Anteponi “LastPassPrivateKey<” e aggiungi “>LastPassPrivateKey” a rsaprivatekey.
    2. Crittografa tramite AES-CBC, utilizzando i primi 16 caratteri della chiave di crittografia dell'utente, come IV. Pad tramite PKCS#7. Converti in codice esadecimale il risultato, per creare rsaprivatekeyenc (che poi va passata a LastPass).
  5. Una volta che hai passwordhash, rsapublickey e rsaprivatekeyenc, dovresti essere in grado di effettuare una chiamata API AddUser.

Aggiungi un utente a una cartella condivisa

Ora che hai creato un utente con una chiave RSA valida, sarai in grado di utilizzare l'API addusertosharedfolder per aggiungerlo a una cartella condivisa.

  1. Recupera l'ID e la chiave di crittografia della cartella condivisa alla quale vuoi aggiungere l'utente. Puoi visualizzare questi valori per le cartelle condivise alle quali sei assegnato.
  2. Poi, devi crittografare la chiave di crittografia della cartella condivisa con la chiave pubblica RSA dell'utente, prima spaziatura interna con OAEP. Converti in codice esadecimale il risultato, che dovrebbe alla fine essere composto da 512 byte esadecimali, poiché stai usando una chiave RSA a 2048 bit. Il risultato è ciò che dovresti passare a LastPass come chiave condivisa.
  3. Poi, devi crittografare la chiave di crittografia del nome della cartella condivisa utilizzando la chiave di crittografia della cartella condivisa. Accertati di crittografare l'intero nome, compreso il prefisso “Condivisa-”. Ad esempio, se la tua cartella condivisa è denominata “LP”, dovrai crittografare la stringa “Condivisa-LP”. Utilizza AES-ECB per questo passaggio, pad tramite PKCS#7 e codifica il risultato a base 64. Il risultato è ciò che dovresti passare a LastPass come nome condiviso.
  4. Una volta che hai ID, chiave e nome condivisi, dovresti essere in grado di effettuare una chiamata API addusertosharedfolder.