Para crear una contraseña SSHA, deberá crear un hash SHA1 de la contraseña con la sal añadida a la cadena (contraseña + sal). Codifique este hash en base 64 con la sal añadida (SHA1 + sal). Consulte los ejemplos adjuntos o un script de ejemplo en un...repositorio de la comunidad en Github.
Las importaciones de archivos CSV de usuarios de Canvas permiten importar contraseñas de usuario en texto plano o con hash predefinido. Comenzaremos con un breve análisis de calidad.
P: No sé qué es un hash criptográfico, ¿puedo usarlo igualmente?
R: Si no está familiarizado con los hashes, este flujo de trabajo probablemente no sea para usted. Generar una cadena con el formato correcto para Canvas es un poco complejo, y este documento está diseñado para desarrolladores y personal de TI de su institución.
P: Nunca me di cuenta de que estaba poniendo en peligro a mis usuarios. ¿Es el fin del mundo?
R: No. La importación de SIS se realiza mediante HTTPS, por lo que los datos siguen cifrados. El hash de contraseñas simplemente añade una capa adicional de seguridad. Pero si se puede implementar, es preferible al envío de contraseñas en texto plano.
P: Tengo CAS (o SAML o LDAP) ¿cómo me afecta esto?
R: Es posible que esto les afecte a usted y a sus usuarios, pero lo más probable es que no. Esto aplica a los usuarios que se autentican mediante Canvas.
P: ¿Puedo usar esto para usuarios que ya están en Canvas?
R: No. Una vez que un usuario haya cambiado su contraseña en Canvas, no podrá actualizarla a través de archivos de importación SIS.
Implementación de contraseñas SSHA
Necesitarás crear un hash SHA1 de la contraseña con la sal añadida a la cadena (contraseña + sal). Toma este hash y codifícalo en base 64 con la sal añadida (SHA1 + sal).
Para los estudiantes visuales, tengo un par de ejemplos a continuación, un script PHP y una terminal OS X / Ubuntu (lo siento, usuarios de Windows).
Sistema operativo X/Ubuntu
Primero, genere el hash SHA1 de la contraseña y la sal. En este ejemplo, la contraseña es "password" y la sal es "salt".
echo -n passwordsalt | shasum -a 1 | awk '{print $1}'
Puedes hacer lo mismo en Ubuntu cambiando shasum a sha1sum. Supongo que la mayoría de las demás distribuciones grandes de Linux también lo tienen por defecto.
echo -n passwordsalt | sha1sum | awk '{print $1}'
Esto genera "c88e9c67041a74e0357befdff93f87dde0904214". Por lo tanto, tomaremos el hash y lo codificaremos en base64 con la sal añadida a la cadena.
echo -n 'c88e9c67041a74e0357befdff93f87dde0904214salt' | base64
El resultado es "Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=". Añade "{SSHA}" a esta cadena y estará listo para enviarse a Canvas. Debería verse así al enviarlo en el archivo CSV "{SSHA}Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=".
PHP
Asigna tu contraseña y variables de sal.
$pass = 'password'; $salt = 'salt';
Crea el hash SHA1 de tu contraseña y sal. La contraseña debe añadirse antes de la sal.
$sha_hash = sha1($pass . $salt);
Codifique el hash SHA1 en Base64. Asegúrese de volver a añadir la sal al final de la cadena.
$encoded_pass = base64_encode($sha_hash . $salt);
Anteponga "{SSHA}" al comienzo de la cadena codificada y con algoritmo hash.
$hashed_password = "{SSHA}" . $encoded_pass;
Ya está listo para enviar esto a Canvas. Agregue el contenido de $hashed_password a la columna ssha_password del archivo de importación users.csv.
Adjunto un archivo CSV de muestra listo para subir a Canvas y un archivo PHP de muestra para ayudarte a empezar. También te recomiendo consultar un script de Python en unrepositorio comunitario en Github.