HELP FILE

De Provisioning-API van LastPass gebruiken

LastPass ondersteunt een openbare API die door LastPass Enterprise-accounts kan worden gebruikt om accounts te maken, accounts te verwijderen en groepen te beheren. Deze geautomatiseerde Provisioning-API is erg krachtig maar vereist integratie van uw kant om dubbele acties te voorkomen. LastPass biedt een aantal verschillende geautomatiseerde opties voor inrichting. U kunt meer lezen over welke optie voor u het best geschikt is.

Onderwerpen in dit artikel:

Een gebruiker toevoegen

RSA-sleutels aanmaken

Een gebruiker toevoegen aan een gedeelde map

Een gebruiker toevoegen

De eerste stap is het toevoegen van de gebruiker. U moet eerst het aantal PBKDF2-iteraties kiezen dat u wilt gebruiken. LastPass gebruikt momenteel standaard 100.100 bewerkingen voor een goede balans tussen beveiliging en prestaties

Zodra u de gebruikersnaam, het wachtwoord en het aantal iteraties heeft, kunt u eerst de encryptiesleutel van de gebruiker berekenen. Deze wordt aangemaakt met PBKDF2-HMAC-SHA256, waarbij de gebruikersnaam als salt wordt gebruikt. Hieronder ziet u een voorbeeld waarbij de functie OpenSSL PKCS5_PBKDF2_HMAC() wordt gebruikt (vergeet niet dat de gebruikersnaam en het wachtwoord utf-8-gecodeerd moeten zijn):

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);

Als deze functie met succes wordt aangeroepen, is de encryptiesleutel van de gebruiker aanwezig in de variabele "key".

Nu u de encryptiesleutel van de gebruiker heeft, kunt u deze gebruiken om de wachtwoord-hash van de gebruiker aan te maken. Dit is de hash die als parameter voor de wachtwoord-hash wordt doorgegeven aan de API adduser. Hier is een voorbeeld, op basis van het bovenstaande:

unsigned char hash[32];

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

Als deze functie met succes wordt aangeroepen, is de wachtwoord-hash van de gebruiker aanwezig in de variabele "hash". De hash moet naar hex worden omgezet voordat u deze aan LastPass doorgeeft. Wachtwoord-hashes moeten dan ook altijd uit 64 hexadecimale tekens bestaan.

RSA-sleutels aanmaken

Als u de gebruiker direct aan gedeelde mappen wilt toevoegen, moet u ook rsapublickey en rsaprivatekeyenc aan de opdracht adduser doorgeven.

  1. Een openbaar/persoonlijk RSA-sleutelpaar aanmaken. Deze sleutel moet 2048 bits zijn.
  2. Versleutel de openbare sleutel in ASN.1 DER-indeling en zet deze vervolgens om naar hex (dit is de waarde voor rsapublickey die aan LastPass wordt doorgegeven). U kunt hier een voorbeeld van een geldige rsapublickey zien.
  3. Versleutel de persoonlijke sleutel in ASN.1 DER-indeling en zet deze vervolgens om naar hex (dit is de waarde voor rsaprivatekey die u moet versleutelen met de encryptiesleutel van de gebruiker voordat deze aan LastPass wordt doorgegeven). U kunt hier een voorbeeld van een geldige rsaprivatekey zien.
  4. Versleutel de rsaprivatekey met gebruikmaking van de encryptiesleutel van de gebruiker:
    1. Voeg vooraan "LastPassPrivateKey<" en achteraan ">LastPassPrivateKey" aan de rsaprivatekey toe.
    2. Versleutel via AES-CBC en gebruik de eerste 16 tekens van de encryptiesleutel als IV. Gebruik PKCS#7-padding. Zet het resultaat om naar hex om rsaprivatekeyenc te maken (deze kan vervolgens aan LastPass worden doorgegeven).
  5. Zodra u de wachtwoord-hash, rsapublickey en rsaprivatekeyenc heeft, moet u API adduser kunnen aaproepen.

Een gebruiker toevoegen aan een gedeelde map

Nu u een gebruiker met geldige RSA-sleutels heeft gemaakt, kunt u de API addusertosharedfolder gebruiken om de gebruiker aan een gedeelde map toe te voegen.

  1. Vraag de ID en encryptiesleutel op voor de gedeelde map waaraan u de gebruiker wilt toevoegen. U kunt deze waarden bekijken voor de gedeelde mappen waaraan u bent toegewezen.
  2. Vervolgens moet u de encryptiesleutel van de gedeelde map versleutelen met de openbare RSA-sleutel van de gebruiker, waarbij u eerst opvult met OAEP-padding. Zet het resultaat om naar hex. Aangezien u een 2048-bits RSA-sleutel gebruikt, moet dit 512 hexadecimale bytes opleveren. Het resultaat geeft u door aan LastPass als sharekey.
  3. Vervolgens moet u de naam van de gedeelde map versleutelen met de encryptiesleutel van de gedeelde map. Zorg dat u de volledige naam versleutelt, inclusief het voorvoegsel "Shared-". Als uw gedeelde map bijvoorbeeld "LP" heet, versleutelt u de tekenreeks "Shared-LP". Gebruik voor deze stap AES-ECB, gebruik PKCS#7-padding en zet het resultaat om naar Base64. Het resultaat geeft u aan LastPass door als sharename.
  4. Zodra u shareid, sharekey en sharename heeft, moet u API addusertosharedfolder kunnen aanroepen.