HELP FILE

Uso de la API de aprovisionamiento de LastPass

LastPass es compatible con una API pública que pueden usar las cuentas de LastPass Enterprise para crear usuarios, desaprovisionar usuarios y gestionar grupos. Esta API de aprovisionamiento automatizado es muy potente, pero requiere integración por su parte para evitar que se produzcan acciones duplicadas. LastPass ofrece varias opciones distintas de aprovisionamiento automatizado, por lo que le recomendamos obtener más información para saber qué opción es la más adecuada para usted.

Temas en este artículo:

Adición de un usuario

Generación de claves RSA

Adición de un usuario a una carpeta compartida

Adición de un usuario

El primer paso es añadir el usuario. En primer lugar, debe elegir el número de iteraciones PBKDF2 que tiene pensado usar. LastPass usa iteraciones 100.100 de forma predeterminada para equilibrar la seguridad y el rendimiento.

Una vez que tenga el nombre de usuario, la contraseña y las iteraciones que tiene pensado usar, podrá calcular primero la clave de cifrado del usuario. Se genera usando PBKDF2-HMAC-SHA256 con el nombre de usuario como sal. Aquí tiene un ejemplo del uso de la función PKCS5_PBKDF2_HMAC() de OpenSSL (tenga en cuenta que el nombre de usuario y la contraseña deben tener cifrado 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 la función es correcta, la clave de cifrado del usuario estará presente en la clave variable.

Ahora que tiene la clave de cifrado del usuario, puede usarla para generar el hash de contraseña del usuario. Este es el hash que se traslada a la API AddUser como hash de contraseña del parámetro. Aquí tiene un ejemplo que sigue al anterior:

unsigned char hash[32];

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

Si la función es correcta, el hash de contraseña del usuario estará presente en el "hash" variable. Tenga en cuenta que tiene que codificar el hash en formato hexadecimal antes de trasladarlo a LastPass. Por lo tanto, el hash de contraseña debe contener siempre 64 caracteres hexadecimales.

Generación de claves RSA

Para añadir un usuario a carpetas compartidas de forma inmediata, también tendrá que trasladar los valores de RSAPublicKey y RSAPublicKeyEnc al comando AddUser.

  1. Genere un par de claves RSA pública y privada. Estas claves deben ser de 2048 bits.
  2. Codifique la clave pública en formato ASN.1 DER y, a continuación codifíquela en formato hexadecimal (ese será el valor de RSAPublicKey que se trasladará a LastPass). Le mostramos un ejemplo de un valor de RSAPublicKey válido en este enlace.
  3. Codifique la clave privada en formato ASN.1 DER y, a continuación, codifíquela en formato hexadecimal (ese será el valor de RSAPrivateKey que tendrá que cifrar con la clave de cifrado del usuario antes de trasladarla a LastPass). Le mostramos un ejemplo de un valor de RSAPrivateKey válido en este enlace.
  4. Cifre RSAPrivateKey con la clave de cifrado del usuario:
    1. Anteponga "LastPassPrivateKey<" y anexe ">LastPassPrivateKey" al valor de RSAPrivateKey.
    2. Cifre la clave con el modo AES-CBC usando los primeros 16 caracteres de la clave de cifrado del usuario como vector de inicialización. Rellénela con PKCS#7. Codifique en formato hexadecimal el resultado para crear un valor de RSAPrivateKeyEnc (que pueda trasladarse más tarde a LastPass).
  5. Cuando tenga los valores de passwordHash, RSAPublicKey y RSAPrivateKeyEnc, podrá ejecutar una llamada API de AddUser (añadir usuario).

Adición de un usuario a una carpeta compartida

Ahora que ya ha creado un usuario con claves RSA válidas, podrá usar la API addusertosharedfolder (añadir usuario a carpeta compartida) para añadirlo a una carpeta compartida.

  1. Recupere el ID y la clave de cifrado de la carpeta compartida a la que desea añadir el usuario. Puede consultar estos valores de las carpetas compartidas a las que está asignado.
  2. A continuación, debe cifrar la clave de cifrado de la carpeta compartida con la clave RSA pública del usuario, rellenando primero con el método de relleno óptimo de cifrado asimétrico. Codifique el resultado en formato hexadecimal; debe constar de 512 bytes hexadecimales, ya que está usando una clave RSA de 2048 bits. El resultado será lo que deba trasladar a LastPass como valor de ShareKey.
  3. A continuación, debe cifrar el nombre de la carpeta compartida con la clave de cifrado de la carpeta compartida. Asegúrese de cifrar el nombre completo, incluido el prefijo "Shared-". Por ejemplo, si el nombre de su carpeta compartida es "LP", cifre la cadena "Shared-LP". Use el modo AES-ECB para este paso, rellene con PKCS#7 y codifique como Base64 el resultado. El resultado será lo que deba trasladar a LastPass como valor de ShareName.
  4. Si tiene los valores de ShareId, ShareKey y ShareName, debería poder ejecutar una llamada API de addusertosharedfolder.