For å opprette et SSHA-passord må du opprette en SHA1-hash av passordet med saltet lagt til strengen (passord + salt). Ta denne hashen og base 64-kode den med saltet lagt til (SHA1 + salt). Sjekk ut de vedlagte eksemplene eller et eksempelskript i enfellesskapsrepo på Github.
Import av CSV-filer for Canvas-brukere lar deg importere enten brukerpassord i ren tekst eller forhåndshashede brukerpassord. Vi begynner med en rask spørsmålsstiller.
Q: Jeg vet ikke hva en kryptografisk hash er, kan jeg fortsatt bruke dette?
A: Hvis du ikke er kjent med hasher, er denne arbeidsflyten sannsynligvis ikke noe for deg. Det er litt komplisert å generere en riktig formatert streng for Canvas, og dette dokumentet er laget for utviklere/IT-ansatte ved institusjonen din.
Spørsmål: Jeg skjønte aldri at jeg satte brukerne mine i fare. Er dette verdens undergang?
A: Nei. SIS-import skjer over https, slik at dataene fortsatt krypteres. Hashing av passord gir bare et ekstra lag med sikkerhet. Men hvis du kan implementere dette, er det å foretrekke fremfor å sende passord i ren tekst.
Spørsmål: Jeg har CAS (eller SAML eller LDAP). Hvordan påvirker dette meg?
A: Det er mulig at dette påvirker deg og brukerne dine, men det er sannsynlig at det ikke gjør det. Dette gjelder for brukere som autentiserer via Canvas-autentisering.
Spørsmål: Kan jeg bruke dette for brukere som allerede er i Canvas?
A: Nei. Når en bruker har endret passordet sitt i Canvas, kan du ikke oppdatere passordet via SIS-importfiler.
Implementering av SSHA-passord
Du må opprette en SHA1-hash av passordet med saltet lagt til strengen (passord + salt). Ta denne hashen og base 64-kode den med saltet lagt til (SHA1 + salt).
For de visuelle elevene har jeg et par eksempler nedenfor, et PHP-skript og en OS X / Ubuntu-terminal (beklager, Windows-brukere).
OS X / Ubuntu
Først genererer du SHA1-hashen for passordet og saltet. I dette eksemplet er passordet «password» og saltet er «salt».
echo -n passwordsalt | shasum -a 1 | awk '{print $1}'
Du kan gjøre det samme i Ubuntu ved å endre shasum til sha1sum. Jeg vil tro at de fleste andre store Linux-distribusjoner også har dette som standard.
echo -n passwordsalt | sha1sum | awk '{print $1}'
Dette sender ut «c88e9c67041a74e0357befdff93f87dde0904214». Så vi tar hashen og base64-koder den med saltet lagt til strengen igjen.
echo -n 'c88e9c67041a74e0357befdff93f87dde0904214salt' | base64
Resultatet er «Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=". Legg til «{SSHA}» foran denne strengen, så er den klar til å sendes til Canvas. Den skal se slik ut når du sendte den i csv-filen «{SSHA}Yzg4ZTljNjcwNDFhNzRlMDM1N2JlZmRmZjkzZjg3ZGRlMDkwNDIxNHNhbHQ=".
PHP
Tildel passordet ditt og saltvariablene dine.
$pass = 'password'; $salt = 'salt';
Lag SHA1-hashen for passordet ditt og saltet. Passordet bør legges til før saltet.
$sha_hash = sha1($pass . $salt);
Base64 koder SHA1-hashen. Sørg for å legge til saltet på slutten av strengen igjen.
$encoded_pass = base64_encode($sha_hash . $salt);
Sett «{SSHA}» foran den hashede og kodede strengen.
$hashed_password = "{SSHA}" . $encoded_pass;
Du er nå klar til å sende dette til Canvas. Legg til innholdet av $hashed_password i ssha_password-kolonnen i sis-importfilen users.csv.
Jeg har lagt ved en eksempel-CSV-fil som er klar til opplasting til Canvas og en eksempel-PHP-fil for å hjelpe deg i gang. Jeg anbefaler også å sjekke ut et Python-skript i enfellesskapsarkiv på Github.