HELP FILE

Utiliser l'API d'approvisionnement LastPass

LastPass prend en charge une API publique pouvant être utilisée par les comptes LastPass Enterprise pour créer des utilisateurs, les déprovisionner et gérer des groupes. Cette API d'approvisionnement automatisé est très puissante, mais exige une intégration de votre part pour éviter la duplication d'actions. Du fait que LastPass propose quelques options différentes d'approvisionnement automatisé, vous pouvez en savoir plus sur l'option qui vous convient.

Rubriques de cet article :

Ajouter un utilisateur

Générer des clés RSA

Ajouter un utilisateur à un dossier partagé

Ajouter un utilisateur

La première étape consiste à ajouter l'utilisateur. Vous devez d'abord choisir le nombre d'itérations PBKDF2 que vous prévoyez d'utiliser. LastPass utilise actuellement par défaut 100 100 tours comme compromis entre sécurité et performances.

Une fois que vous avez le nom d'utilisateur, le mot de passe et le nombre d'itérations que vous prévoyez d'utiliser, vous pouvez commencer par calculer la clé de chiffrement de l'utilisateur. Elle est générée par PBKDF2-HMAC-SHA256, à partir du nom d'utilisateur comme valeur salt. Voici un exemple utilisant la fonction OpenSSL PKCS5_PBKDF2_HMAC() (veuillez noter que le nom d'utilisateur et le mot de passe doivent être codés en 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);

Si cet appel de fonction réussit, la clé de chiffrement de l'utilisateur est présente dans la variable « key ».

Maintenant que vous avez la clé de chiffrement de l'utilisateur, vous pouvez l'utiliser pour générer le hachage de mot de passe de l'utilisateur. C'est le hachage qui est passé à l'API adduser comme paramètre passwordhash. Voici un exemple, suite du précédent :

unsigned char hash[32];

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

Si cet appel de fonction réussit, le hachage de mot de passe de l'utilisateur est dans la variable « hash ». Veuillez remarquer que vous devriez hex-encoder le hachage avant de le transmettre à LastPass. Donc, passwordhash devrait toujours être sous forme de 64 caractères hexadécimaux.

Générer des clés RSA

Pour ajouter immédiatement l'utilisateur aux dossiers partagés, vous devrez passer rsapublickey et rsaprivatekeyenc à la commande adduser.

  1. Générer une paire de clés publique/privée RSA. Cette clé doit être sur 2048 bits.
  2. Codez la clé publique au format ASN.1 DER, puis hex-encodez-la (c'est la valeur de rsapublickey qui doit être passée à LastPass). Vous pouvez afficher un exemple de valeur rsapublickey valable ici.
  3. Codez la clé privée au format ASN.1 DER, puis hex-encodez-la (c'est la valeur de rsaprivatekey que vous devrez chiffrer avec la clé de chiffrement d'utilisateur avant de la passer à LastPass). Vous pouvez afficher un exemple de valeur rsaprivatekey valable ici.
  4. Chiffrez la valeur rsaprivatekey à l'aide de la clé de chiffrement de l'utilisateur :
    1. Préfixez avec « LastPassPrivateKey< » et suffixez avec « >LastPassPrivateKey » la valeur rsaprivatekey.
    2. Chiffrez par AES-CBC, en prenant les 16 premiers caractères de la clé de chiffrement de l'utilisateur comme IV. Pad par PKCS#7. Hex-encodez le résultat pour créer rsaprivatekeyenc (qui peut ensuite être passé à LastPass).
  5. Une fois que vous avez les valeurs de passwordhash, rsapublickey et rsaprivatekeyenc, vous devriez pouvoir effectuer un appel d'API adduser.

Ajouter un utilisateur à un dossier partagé

Maintenant que vous avez créé un utilisateur avec des clés RSA valables, vous pourrez utiliser l'API addusertosharedfolder pour l'ajouter à un dossier partagé.

  1. Récupérez l'identifiant et la clé de chiffrement du dossier partagé auquel vous souhaitez ajouter l'utilisateur. Vous pouvez afficher ces valeurs pour les dossiers partagés auxquels vous être affectés.
  2. Ensuite, vous devez chiffrer la clé de chiffrement du dossier partagé avec la clé publique RSA de l'utilisateur, en commençant par la compléter avec OAEP. Hex-encodez le résultat, ce qui devrait finalement donner 512 octets hexadécimaux du fait que vous utilisez une clé RSA à 2048 bits. Le résultat est ce que vous devriez passer à LastPass comme valeur sharekey.
  3. Vous devez ensuite chiffrer le nom du dossier partagé à l'aide de la clé de chiffrement de ce dossier partagé. Assurez-vous de chiffrer le nom complet, y compris le préfixe « Shared- ». Si par exemple votre dossier partagé s'appelle « LP », chiffrez la chaîne « Shared-LP ». Utilisez AES-ECB pour cette étape, complétez par PKCS#7 et codez en base64 le résultat. Le résultat est ce que vous devriez passer à LastPass comme valeur sharename.
  4. Une fois que vous avez les valeurs de shareid, sharekey et sharename, vous devriez pouvoir effectuer un appel d'API addusertosharedfolder.