View previous topic :: View next topic |
Author |
Message |
Obi-Lan Apprentice
Joined: 21 Jan 2005 Posts: 230 Location: Riihimäki
|
Posted: Wed Jan 10, 2007 11:40 am Post subject: apache ja mediawiki yhdistetty autentikointi |
|
|
Olen rakentamassa duuniin pientä mediawiki palvelinta (gentoolla tietty) firman sisäiseen käyttöön ja tulin siihen tulokseen, jotta sivut olisivat varmasti suojattu ulkopuolisilta, pitää käyttää apachen autentikointia. BasicAuth yksinkertaisuuden vuoksi. Tähän ajattelin lisäksi käyttää pwauth lisämodulia, joka sisältäis mm. PAM modulin.
Myös mediawikiin on tehty lisäkoodi pwauth modulin käytölle.
Mutta tällä systeemillä ilmeisesti joutuu kuitenkin syöttämään käyttäjätunnuksen ja salasanan kuitenkin kaksi kertaa? Kellään ehdotuksia, miten tuon voisi tehdä niin, että syöttäessä käyttäjätunnuksen ja salasanan kerran kirjaisi systeemi käyttäjän suoraan mediawikiin omilla tunnuksilla? |
|
Back to top |
|
|
jarski n00b
Joined: 11 Apr 2005 Posts: 3 Location: Oulu, Finland
|
Posted: Sun Apr 29, 2007 1:54 pm Post subject: |
|
|
Ratkaisin samanmoisen ongelman erään toisen ohjelman (PHP) kohdalla seuraavasti.
Apachessa sivut on suojattu BasicAuth:lla eli ohjelman käyttö vaatii tunnuksen ja salasanan syöttämisen.
Itse ohjelma vaati erillisen autentikaation eli käyttäjän piti syöttää tunnus ja salasana toistamiseen ja nämä tunnukset eivät tietenkään olleet samat kuin BasicAuth:ssa käytetyt. Ongelma oli siis sama kuin Obi-Lan:lla; käyttäjä joutui autentikoitumaan kahdesti.
Ratkaisu ongelmaan löytyi siitä, että apachen authin jälkeen HTTP requestissa kulki autentikoituneen käyttäjän tiedot, jotka voitiin lukea PHP:lla (http://fi.php.net/features.http-auth). Eli ohjelman login-sivua voitaisiin muuttaa siten, että se ottaa requestista autentikoituneen käyttäjän tunnuksen ja kirjaa käyttäjän sisään ohjelmaan automaattisesti.
Automaattisen kirjautumisen toteutin luomalla tiedoston, jossa on HTTP BasicAuth tunnuksia vastaavat tunnus/salasana parit itse ohjelmaan (matti -> matti@foobar.com, salasana jne). Tämän jälkeen puukotin login-sivua seuraavasti:
Code: |
when request.method is POST then
doLogin(post_params[user], post_params[password]
...muuttui muotoon...
auth_user = AUTH_USER
login, password = auth_user_to_login_and_password_map[auth_user]
doLogin(login, password)
|
Lisäksi generoin kaikille käyttäjille satunnaiset salasanat ja poistin ohjelmasta mahdollisuuden muuttaa oma salasana. Tein myös toisen login-sivun, joka kysyy pelkästään salasanaa ja koittaa tämän jälkeen kirjautua ylläpitokäyttäjäksi ko. salasanalla. Tämä siksi, että voin itse kirjautua admin-tunnareilla. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|