Skift af glemt kodeord i Kerberos
Hejsa alleFørst en beklagelse: Ved ikke hvor jeg skulle oprette spørgsmålet, så nu kommer det her :)
I et web interface, vil jeg gerne gøre det muligt for brugere at indtaste deres brugernavn, for at få tilsendt et nyt kodeord. Ideen er at automatisere processen, hvis en bruger har glemt sit kodeord.
Skidtet kører på en Apache på noget Linux enterprice, og har adgang til Perl mm. Jeg har dog valgt at bruge et C sript, da det giver mulighed for at snakke med kerberos uden brug af klar tekst afsendelse af kodeord mm.
Der bruges følgende funktioner i rækkefølge:
krb5_get_init_creds_opt_init( &kopts );
krb5_get_init_creds_opt_set_tkt_life( &kopts, 5*60 );
krb5_get_init_creds_opt_set_renew_life( &kopts, 0 );
krb5_get_init_creds_opt_set_forwardable( &kopts, 0 );
krb5_get_init_creds_opt_set_proxiable( &kopts, 0 );
Hvis ideen er at man skal SKIFTE kodeord, og at man altså KENDER det gamle kodeord, kaldes funktionen:
krb5_get_init_creds_password( kcontext, &kcreds, kprinc, cl[CL_OLDPW].cl_data, krb5_prompter_posix, NULL, 0, "kadmin/changepw", &kopts );
Hvis den lykkes, så er den gamle kodeord ok.
Herefter kaldes funktionen:
krb5_change_password( kcontext, &kcreds, cl[ CL_NEWPW ].cl_data, &error_code, &kd_rcs, &kd_rs )
Som skal skrive det nye kodeord.
Det jeg så gerne vil, er faktisk at springe over funktionskaldet krb5_get_init_creds_password, da brugeren jo har glemt sit kodeord.
Indtil videre har dette ikke været muligt, så mit spørgsmål er rent faktisk:
Kan det lade sig gøre?
Findes der en metode at skifte en brugers kodeord på, ved brug af header filen krb5.h fra MIT Kerberos 5?
Håber I kan hjælpe!
På forhånd tak!
/Mig
