Az alaprendszer működése

Hitelesítés
Regisztráció, személyek és felhasználók
Modulok és műveletek
Jogosultság-kezelés
Munkamenetek kezelése
Több nyelvű felület
Események naplózása
Értesítési rendszer
Levél küldése a rendszeren kívülre
Fájlok kezelése
Menürendszer


A BOB szoftver két részből áll: a BOB alapszoftverből és a BOB modulokat tartalmazó egységből, melyek külön telepíthetőek (jelenleg csak .deb csomagból).

Az alapszoftver (vagy alaprendszer) megléte szükséges az alkalmazások telepítéséhez, feladatai a hitelesítés, jogosultságkezelés, be- és kimeneti adatok ellenőrzése, a felület megjelenítése, és még sok más.

A BOB modulok felhasználói felületet biztosítanak az alapadatbázis adatainak kezeléséhez, telepítése és használata nem kötelező. Természetesen önállóan nem telepíthető, futtatásának előfeltétele a működő alaprendszer.

Az alapszoftver az alábbi szolgáltatásokat kínálja:

Hitelesítés

A BOB rendelkezik saját adatbázison alapuló hitelesítési rendszerrel, emellett támogatja a PAM autentikációs rétegen keresztül történő azonosítást. Bár PAM-on keresztül akár LDAP felhasználók is elérhetőek, a közeljövőben tervezzük egy árnyaltabb LDAP hitelesítés bevezetését is.

Regisztráció, személyek és felhasználók

A Bob-ban megkülönböztetünk személyeket és felhasználókat. Minden személy rendelkezik egy személyi adatlappal, ahol nyilván tarthatjuk az adatait (neve, születési adatok, elérhetőségek, stb.). Az adatlapon szereplő tulajdonságok bővíthetőek.

Egy személy nem feltétlenül felhasználója a rendszernek, (lehet egy ügyfél például), de bármely személyhez rendelhető felhasználó, illetve egy személyhez több felhasználó is tartozhat, más-más jogosultságokkal.

BOB felhasználók több módon is létrejöhetnek. A központi adminisztráció által nyilvántartott adatbázis mellett lehetőség van PAM rétegen keresztüli importra, vagy használható nyílt regisztráció is.

Nyílt regisztráció esetén a leendő felhasználó megadhatja a személyi adatait (név, e-mail cím, stb.), ekkor mint személy bekerül a rendszerbe és kap egy generált kódot. Ezt a kódot a megadott e-mail címre kiküldi a rendszer, a levélben kapott linkre kattintva véglegesítheti a regisztrációját (megadva a jelszavát).

Amennyiben nem véglegesíti a regisztrációt (például hibás e-mail címet adott meg), akkor az ily módon létrejött személy egy – a rendszerbeállításokban megadott – időt követően törlődik a rendszerből.

Modulok és műveletek

A BOB alkalmazások modulokból állnak. Minden modul egy fejlesztői egység, az adott alkalmazás fejlesztői döntik el, hogyan tagolják a készülő szoftvert. Ez a tagolás jellemzően a modul által kezelendő adatok alapján történik, de ennél is fontosabb szempont, hogy a felhasználók szempontjából átlátható rendszer álljon elő (még ha a felhasználók nem is találkoznak feltétlenül a modulok fogalmával).

Például egy versenysportban használatos nevezési rendszerben külön modulba kerülhet, a) a versenyadatok kezelése (ahol a versenyzők megtekinthetik a versenyek adatait, a versenyszervezők pedig szerkeszthetik azokat); b) ahol a versenyzők nevezhetnek, és c) ahol a versenyszervezők listázhatják a nevezéseket.

A modulokhoz műveletek rendelhetőek, ezek alapján történik a jogosultságok kiosztása. A felület kialakításakor meghatározhatjuk, hogy az adott felületi elem (menüpont, űrlap-részlet, gomb, stb.) csak akkor jelenjen meg, ha az adott felhasználónak van a hozzárendelt művelet végrehajtására joga. Ha valamilyen módon (pl: egy támadási kísérlet során) mégis érkezik olyan kérés a szerverhez, amihez a felhasználónak nincs joga, akkor automatikusan a beléptető képernyőre kerül a vezérlés.

Jogosultság-kezelés

Az előző bekezdésben leírtaknak megfelelően, a műveletek mindegyikéhez egy-egy jog tartozik, melyeket felhasználókhoz, illetve felhasználói csoportokhoz is rendelhetjük. Amennyiben a felhasználónak vannak saját jogon és csoporttagság révén kiosztott jogai, úgy természetesen ezek egymás mellett élnek. Ezen kívül az egyes felhasználókhoz kivételeket is rendelhetünk, azaz megadhatjuk, hogy a csoporttagságuk alapján származtatott jogaik közük melyeket NE kapják meg. Egy felhasználó több csoporthoz is tartozhat, ám a csoporttagság nem kötelező.

A felhasználóknak és a felhasználói csoportoknak egyaránt lehet érvényességük, azaz megadhatjuk, hogy mely időpontok között legyen érvényes a hozzáférésük. Például demófelület kialakításakor korlátozhatjuk, hogy a nyílt regisztráción keresztül bekerült felhasználók hozzáférése maximum néhány napig éljen. Az érvényesség vége lehet határozatlan idejű is, ez hasznos lehet például, ha egy szabadságra menő munkatársnak szeretnénk megadni, hogy csak a visszatérése után tudjon belépni a rendszerbe.

Ezeken kívül egy felhasználót (például a szolgáltatásért nem fizető ügyfelet) vagy csoportot jogait határozatlan időre is felfüggeszthetjük.

Munkamenetek kezelése

A leggyakrabban használt funkció, mégis szinte észrevehetetlen "szolgáltatása" a BOB alaprendszernek a munkamenetek (session) ellenőrzése, mely kialakításánál elődleges szempontunk a biztonság volt. A munkamenet-kezelés főbb tulajdonságai akár felhasználónként szabályozhatóak, ezek:

  • lejárati idő (ha a kliens nem próbál kapcsolatot létesíteni a szerverrel, akkor a munkamenet egy idő után megszakad),
  • a lejárati idő számításának módja (azaz, hogy belépéstől vagy kattintástól számít a lejárati idő),
  • illetve, hogy generálon-e a rendszer minden kattintáskor új munkamenet-azonosítót.

A BOB védekezik a munkamenetek beragadása ellen, azaz amennyiben úgy próbál egy felhasználó belépni a rendszerbe, hogy már van érvényes munkamenete, akkor a régi megszűnik. A BOB naplózza a ki és belépéseket, így a felületen megtekinthetjük a korábbi be- illetve kilépések időpontját, valamint a bejelentkezéskor használt IP címet, így e működési elvnek fontos szerepe lehet az egyik leggyakoribb támadási technika, a jelszólopások felderítésében is.

A jelszó egymást követő háromszori elgépelése esetén a BOB egy időre megtagadja a megadott felhasználónak a belépés, majd minden újabb sikertelen belépés esetén megduplázza a kizárás időtartamát. Az időszak hosszát az üzemeltető szabja meg a konfiguráció során, ám a megfelelő jogosultságokkal rendelkező rendszer-adminisztrátor bármikor felfüggesztheti a kizárást.

Több nyelvű felület

Fejlesztéseink egyik alapvetése, hogy mindig több nyelvű felületet tervezzünk, még ha a pillanatnyi igények szerint ezt nem is követelmény. A felület nyelvi elemeit nyelvi szövegfájlok lefordításával egyszerűen lehet átállítani idegen nyelvi környezetre, az adatbázisban tárolt szöveges adatok esetében ez szintén megoldott.

Első látogatáskor a login képernyőn (illetve, ha engedélyezve van, akkor a regisztrációs adatlapon is) a böngésző beállításainak megfelelő nyelven jelenik meg a felület, ahol – több nyelv engedélyezése esetén – lehet a további nyelvek közül választani. A választást megjegyzi a rendszer, így az adott gépen második látogatáskor már a korábban választott nyelven jelennek meg a belépésre vonatkozó szövegrészek.

Belépés után személyenként lehet nyelvet megadni, így mindenkinek a saját nyelvén jelenhetnek meg a szöveges információk, amennyiben az adott nyelvi fordítás rendelkezésre áll.

Események naplózása

Az események (hibák, ki- és belépések, adatok létrehozása az adatbázisban, stb.) naplózása több szempontból is hasznos lehet, gondoljunk csak a hibák felderítésére, esetleges támadások felismerésére, vagy a felhasználók tevékenységének követésével kapcsolatos igényekre. A fent említett ki és belépéseken, elhibázott belépési kísérleteken kívül rengeteg olyan eseményt érdemes log-olni, ami esetenként nagyon hasznos lehet az üzemeltetés során. A rendszer által automatikusan létrehozott bejegyzéseken túl a fejlesztők is megadhatják, hogy mely eseményeket szeretnének megörökíteni későbbi elemzésre, a hibakeresés segítésére.

A BOB lehetővé teszi, hogy akár a syslog-ba, akár adatbázisba naplózzuk a főbb eseményeket (igény szerint akár mindkét helyre is), valamint beállíthatjuk a logolás szintjét. A naplózás kikapcsolásán túl öt szint közül választhat a rendszer üzemeltetője:

  1. végzetes hibák,
  2. hibák,
  3. figyelmeztetések,
  4. információk,
  5. debug információk.

Az log bejegyzésekhez egységes formátumot alakítottunk ki, így log-elemző szoftverek esetén ez megkönnyíti a szabályok kialakítását.

Értesítési rendszer

A BOB lehetőséget kínál arra, hogy a modulok értesítést küldhessenek a felhasználóknak a rájuk tartozó eseményekről.

Az értesítések lehetnek személyre szólóak (pl: egy születésnapi üdvözlet), ezt az adott személyhez tartozó minden felhasználó megkapja, viszont az azon végrehajtott műveleteket (olvasottság jelzése, törlés, csillagozás) másik felhasználónéven bejelentkezve is érzékeli.

Amennyiben egyedi felhasználó a címzett (pl. arról, hogy túl régen változtatta a jelszavát), azt az adott személyhez tartozó többi felhasználó nem látja.

A BOB többféle értesítéstípust is támogat, ezeket a felületen eltérő színekkel vagy ikonokkal jelöli. Jelenleg az alábbi értesítéstípusok használata lehetséges:

  • information: általános információ
  • message: üzenete érkezett a belső levelező rendszerbe
  • tip: javaslat, jótanács (pl. egy modul első indításakor)
  • success: folyamat sikeresen lezárult (pl: egy hosszú futási idővel rendelkező lista lefutott)
  • todo: tennivaló érkezett (pl: egy ügyfél visszahívást kért az adott időpontban)
  • calendar: évforduló, születésnap, névnap, ünnepek jelzése
  • memo: emlékeztető (pl: tárgyalási emlékeztető egy esetleges naptár-alkalmazásból)
  • warning: figyelmeztetés (pl.: régen változtatta a jelszavát)
  • alert: riasztás (pl.: ha hamarosan nem változtatja a jelszavát, kizárja a rendszer)
  • failure: hibajelzés, a hivatkozott folyamat folytatható
  • error: hibajelzés, a hivatkozott folyamat megszakadt
  • fatal: végzetes hiba vagy ellentmondás történt a rendszer működésében (erre reméljük nem kerül sor soha ;-)

Az értesítésekhez opcionálisan műveletek is rendelhetőek, így egy értesítésre kattintva a megfelelő modul megfelelő felületére irányíthat át a rendszer. Például egy tartalomkezelő rendszerben van olyan felhasználó, aki szerkesztheti a tartalmat, és van, aki engedélyezni tudja a honlapon vagy portálon való megjelenést. Ha egy tartalom elkészült, a rendszer küld egy értesítést a publikálási joggal rendelkező felhasználónak, aki az értesítésre kattintva azonnal a tartalomkezelő alkalmazás megfelelő moduljára kerül, ahol a tartalom elolvasását követően egy mozdulattal engedélyezheti annak megjelenését, vagy visszadobhatja a szerzőnek, aki erről egy értesítést kap...

Az alkalmazásoknak ezenkívül lehetőségük van az általuk korábban kiküldött értesítéseknek jelezni, ha a hozzájuk tartozó művelet már végre lett hajtva. Így ha az előző példában több publikálási joggal rendelkező felhasználó is megkapta az üzenetet, és valamelyikük publikált, akkor ezt követően a többieknek az értesítés megtekintésekor láthatják a jelzést, hogy ezt már más lerendezte.

Levél küldése a rendszeren kívülre

A rendszerből egyszerűen küldhető e-mail akár a belső felhasználók e-mail címeire, akár konkrét e-mail címre. Ennek felhasználási területe igen széles lehet: a regisztráló felhasználók ezen keresztül kapják meg a folyamat véglegesítéséhez szükséges levelet; egyes modulok a belső értesítések mellett e-mail értesítést is küldhetnek; de akár lehetőséget biztosít hírlevélküldő modul fejlesztésére is.

A kimenő levelek szabványosak, plain-text és HTML törzset egyaránt tartalmazhatnak, lehetőség van fájlok csatolására is. A levélküldés sikertelensége estére konfigurálható, hogy a rendszer hányszor próbálja megismételni a levél kiküldését.

Több címzett esetén a címzettek nem értesülnek a többi címzettről.

Fájlok kezelése

Fájlok feltöltése estén a BOB automatikusan vírusvizsgálatnak veti alá a feltöltött fájlokat, a vírusmentes fájlok automatikusan szeparált könyvtárakba kerülnek.

Feltöltéskor megadható, hogy az adott fájl elérhető legyen-e hitelesítés nélkül is, vagy csak a felületre való belépést követően. A fájlok sohasem direkt linken keresztül érhetőek el, hanem a BOB letöltő rendszerén keresztül, a fájl egyedi kódjának ismeretében. A letöltési név eltérhet a fájl eredeti nevétől, az feltöltéskor vagy akár később is megadható.

A feltöltő rendszer információkat szolgáltat a fájlról (fáljméret, karakterkódolás, EXIM információ, stb.), azokat az alkalmazás felhasználhatja működése során.

Menürendszer

A BOB hierarchikus felépítésű menürendszerét az alkalmazások szabadon bővíthetik, sem a szintek, sem a menüpontok száma nincs korlátozva. A menüpontok természetesen korlátlan számú nyelvre lefordíthatóak.

Az eredeti menüpontok között találhatóak kitüntetett jelzésű konténerek, így egymástól független alkalmazások logikailag összeillő menüpontjai egy helyre kerülhetnek. Ilyen tipikus konténer menü lehet a „törzsadatkezelés” vagy „felhasználó adatainak kezelése”, ezek almenüinek számát gyarapíthatják az egyes alkalmazások (üres konténer menü nem jelenik meg a felületen).

Az elsődleges menürendszer mellé saját, alternatív menüstruktúrát is létrehozhatnak az alkalmazások, ha azt a működésük indokolja (ezek megjelenítéséről persze az adott fejlesztőnek kell gondoskodnia).

A listát hamarosan folytatjuk...