a Moodle autentikációjához a PTE FEEK-en Az ETR felhasználása a Moodle autentikációjához a PTE FEEK-en Lukács Péter
Probléma: hitelesítés mindenhol MOODLE WEBES LEVELEZÉS Nyomás erősödött – a PTE-n a wifi-hálózat kiépítéséhez az EISZK nekiáll valaminek… WIFI TANULMÁNYI RENDSZER Cél: a szolgáltatásokhoz való hozzáférés megkönnyítése
Pécsett: Webes alkalmazások ETR hitelesítése (Nagy Ders) Lehetőségek: LDAP ? – A szerver oldali program kapcsolódni próbál a központi Active Directory szerverhez, és ha ez sikerül: a felhasználónév/jelszó páros helyesnek tekinthető. Hátránya a titkosítatlan kapcsolat (lehallgatható). LDAPS ? – titkosított a kapcsolat, de nehézkes a tanúsítványok kiadása és telepítése miatt.
A következő megoldás lett végül választva: Az alkalmazás fejlesztője regisztráltatja alkalmazását az ETR szerveren levő adatbázisba. Ehhez elküldi azt a webcímet, ahonnan a felhasználó adatai érkeznek*, és ahová az autentikáció után a felhasználót küldeni kell**. Ezek után kap egy egyedi alkalmazás-azonosítót. Ezzel hivatkozhat mindig saját adataira. A szerver, amelyik a Moodle-t futtatja, elindít egy munkamenetet, majd a belépési oldal űrlapján keresztül bekéri a felhasználó adatait. Ezek titkosított csatornán (HTTPS) a munkamenet azonosítójával együtt az ETR szerverre kerülnek, ahol lefut az autentikáció, és a felhasználó adatai, az eredeti munkamenet-azonosító valamint a végeredmény visszaküldésre kerül. *, ** Moodle belépési oldal
Biztonságosabb, mint LDAP-on keresztül, ugyanis : Az alkalmazást futtató szerver oldalán csak észrevehető módon tárolhatóak a felhasználó adatai Az adatok a hálózaton titkosítva haladnak Csak előre regisztrált alkalmazások használhatóak Bármelyik oldalról nem lehet az autentikációt végző központi oldalt meghívni A folyamatban levő autentikációt nem lehet megszakítani vagy egy újat a felénél elkezdeni (azt hazudni az alkalmazást kiszolgáló szervernek, hogy már megtörtént az autentikáció) a munkamenetek használata miatt. 5. Ez utóbbi természetesen csak akkor áll fent, ha a fejlesztő is helyesen írta meg saját alkalmazását, és valóban használja a session-ök adta lehetőséget.
Bemenetként a következő változókat várja: ALK_ID : Alkalmazás azonosítója (regisztrációkor kapjuk) SESSION_ID: az adott munkamenet azonosítója LOGINNAME: felhasználói név PWD: jelszó HTTPS MOODLE ETR AUTH SZERVER
Kimenetként az alábbi értékeket adja vissza: SESSION_ID: az adott munkamenet azonosítója LOGINNAME: felhasználói név SZEM_ID: EHA kód UID: felhasználói azonosító az ETR adatbázisban TIP: a felhasználó típusa TNEV: teljes név SZAKOK: Azon szakok megnevezése amelyen a felhasználó aktív RESULT: az autentikáció végeredménye TIP: D: dolgozó, H: hallgató Szakok: pontosvesszővel tagolt string, Szaknév—KAR formában RESULT: BADPWD: rossz felhasználónév vagy jelszó OK: jelszó elfogadva BADREF: rossz oldalról érkezett az azonosítási kérelem. HTTPS MOODLE ETR AUTH SZERVER
Az autentikációs modulokról: 2 állomány szükséges saját hitelesítő modulok működéséhez: config.html lib.php Az adminisztrátori oldalon az autentikációs modul konfigurációs felülete (űrlapokkal) A hitelesítési folyamat programkódja (a visszaadott érték a lényeg: igaz/hamis) + Szövegcimkék adott nyelvekre (lang/hu_utf8/auth.php-ben)
A CONFIG.HTML leegyszerűsítve: <input name="auth_etraddress” … > <input name="auth_etralkid” … > Az űrlapok adatait a config osztály tárolja, és ezek az adatok automatikusan eltárolódnak adatbázisban. $config->auth_etraddress $config->auth_etralkid
A LIB.PHP leegyszerűsítve: <?php .... function auth_user_login (….) { if (…feltétel….) { return true; // beléphet } return false; // nem léphet be } ?> A php sockets függvényeinek segítségével a háttérben kapcsolodik a hitelesitőszerverre.
Hol tartunk jelenleg? Az autentikáció működik Első belépéskor a személyes profil megkapja a felhasználó család és keresztnevét
Mit szeretnénk még megoldani: Örülnénk több/jobb adatnak (név legyen tagolva, e-mail cím, lakhely, stb.) Ha le tudnánk kérdezni hasonló módon a kurzusokat és a résztvevőiket is, össze lehetne házasítani egy már meglévő kurzusgenerátorral (kurzusok létrehozása ETR alapján). Webes levelezés illesztése (php-alapú, pl: Telaen)
Köszönöm a figyelmet!