For at oprette en SSHA-adgangskode skal du oprette en SHA1-hash af adgangskoden med salt tilføjet til strengen (adgangskode + salt). Tag denne hash og base 64-kod den med salt tilføjet (SHA1 + salt). Se de vedhæftede eksempler eller et eksempelscript i enfællesskabsarkiv på Github.
Import af CSV-filer til Canvas-brugere giver dig mulighed for at importere enten almindelige brugeradgangskoder eller foruddefinerede brugeradgangskoder. Vi starter med en hurtig spørgsmålsanalyse.
Q: Jeg ved ikke, hvad en kryptografisk hash er, kan jeg stadig bruge den?
A: Hvis du ikke er bekendt med hashes, er denne arbejdsgang sandsynligvis ikke noget for dig. Det er lidt komplekst at generere en korrekt formateret streng til Canvas, og dette dokument er designet til udviklere/IT-personale på din institution.
Q: Jeg var aldrig klar over, at jeg satte mine brugere i fare. Er dette verdens undergang?
A: Nej. SIS-import sker via https, så dataene er stadig krypterede. Hashing af adgangskoder tilføjer blot et ekstra lag af sikkerhed. Men hvis du kan implementere dette, foretrækkes det frem for at sende adgangskoder i almindelig tekst.
Q: Jeg har CAS (eller SAML eller LDAP). Hvordan påvirker det mig?
A: Det er muligt, at dette påvirker dig og dine brugere, men det er sandsynligt, at det ikke gør. Dette er for brugere, der autentificerer via Canvas-godkendelse.
Q: Kan jeg bruge dette til brugere, der allerede er i Canvas?
A: Nej. Når en bruger har ændret sin adgangskode i Canvas, kan du ikke opdatere adgangskoden via SIS-importfiler.
Implementering af SSHA-adgangskoder
Du skal oprette en SHA1-hash af adgangskoden med salt tilføjet til strengen (adgangskode + salt). Tag denne hash og base 64-kod den med salt tilføjet (SHA1 + salt).
For de visuelle elever har jeg et par eksempler nedenfor, et PHP-script og en OS X / Ubuntu-terminal (undskyld, Windows-brugere).
OS X / Ubuntu
Generer først SHA1-hashen for adgangskoden og saltet. I dette eksempel er adgangskoden "password", og saltet er "salt".
echo -n passwordsalt | shasum -a 1 | awk '{print $1}'
Du kan gøre det samme i Ubuntu ved at ændre shasum til sha1sum. Jeg vil forestille mig, at de fleste andre store Linux-distributioner også har dette som standard.
echo -n passwordsalt | sha1sum | awk '{print $1}'
Dette giver "c88e9c67041a74e0357befdff93f87dde0904214". Så tager vi hashen og base64-koder den med saltet tilføjet til strengen igen.
echo -n 'c88e9c67041a74e0357befdff93f87dde0904214salt' | base64
Resultatet er "Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=". Sæt "{SSHA}" foran denne streng, og den er klar til at blive sendt til Canvas. Den skal se sådan ud, når du sendte den i csv-filen "{SSHA}Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=".
PHP
Tildel din adgangskode og salt-variabler.
$pass = 'password'; $salt = 'salt';
Opret SHA1-hashen for din adgangskode og salt. Adgangskoden skal tilføjes før saltet.
$sha_hash = sha1($pass . $salt);
Base64 koder SHA1-hashen. Sørg for at tilføje salt igen til slutningen af strengen.
$encoded_pass = base64_encode($sha_hash . $salt);
Sæt "{SSHA}" foran begyndelsen af den hashede og kodede streng.
$hashed_password = "{SSHA}" . $encoded_pass;
Du er nu klar til at sende dette til Canvas. Tilføj indholdet af $hashed_password til ssha_password-kolonnen i users.csv sis-importfilen.
Jeg har vedhæftet en eksempel-CSV-fil, der er klar til at blive uploadet til Canvas, og en eksempel-PHP-fil, der kan hjælpe dig med at komme i gang. Jeg vil også anbefale at tjekke et Python-script ud i enfællesskabsarkiv på Github.