„WebmailShibboleth” változatai közötti eltérés
(→Koncepció) |
(→Adatbázis struktúra) |
||
16. sor: | 16. sor: | ||
== Adatbázis struktúra == | == Adatbázis struktúra == | ||
+ | MySQL használata esetén a következő adatbázisstruktúra használható: | ||
+ | |||
+ | <source lang="sql"> | ||
+ | CREATE TABLE `otp` ( | ||
+ | `uid` varchar(255) NOT NULL, | ||
+ | `password` varchar(255) NOT NULL, | ||
+ | `expiration` datetime NOT NULL, | ||
+ | PRIMARY KEY (`uid`) | ||
+ | ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | ||
+ | </source> | ||
+ | |||
== IdP plugin == | == IdP plugin == | ||
== IMAP konfiguráció (Cyrus imapd) == | == IMAP konfiguráció (Cyrus imapd) == |
A lap 2009. április 2., 15:09-kori változata
Tartalomjegyzék
Webmail szoftverek illesztése Shibboleth-hez
Koncepció
A webmail és a levelezőszerver (IMAP/POP3) együttes működését szeretnénk Shibbolizálni. A fő probléma abból áll, hogy a webmail az IMAP szerver felé felhasználónévvel és jelszóval autentikál. Az címtárban tárolt jelszót azonban nem adhatjuk ki az alkalmazásoknak, ráadásul legtöbb esetben ez egy hashelt jelszó.
A következő kritériumoknak kell teljesülniük:
- a webmail nem fér hozzá a felhasználó SSO jelszavához (még hashelt formátumban sem)
- az IMAP szerver jelszavas autentikációt használ, minden felhasználónak egyedi jelszava van
- a webmail feltörése esetén nem férhetnek hozzá az összes felhasználó levelezéséhez
A fenti kritériumokat az 'egyszer használatos', rövid lejárató jelszó használata kielégíti. Ebben az esetben az IdP minden egyes webmail bejelentkezéshez generál egy véletlen jelszót, és ezt elmenti egy adatbázisban, (beállítva a jelszóhoz egy rövid lejárati időt) valamint elküldi a webmail SP-nek. A webmail ezen rövid lejáratú jelszó használatával autentikál az IMAP szerver felé.
A leírt gondolatmenet megvalósításához három komponens együttműködése szükséges:
- az IdP jelszót kell generáljon egy adatbázisba
- a webmailnek el kell érnie ezt a jelszót
- az IMAP szervernek a jelszóadatbázist kell használnia az autentikációra
Adatbázis struktúra
MySQL használata esetén a következő adatbázisstruktúra használható:
CREATE TABLE `otp` (
`uid` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`expiration` datetime NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1