Centrální autentizační webový informační systém Vypracoval : Jaromír Koníček Datum vypracování: 24..2006 Case nástroj: Enterprise Architekt v. 4.50
Obsah. Úvod... 3.. Použité terminologie... 3 2. Popis systému... 4 2.. Kontextový diagram... 4 2.2. Komunikace s CAWIS... 5 2.3. Případ užití CAWIS... 6 2.4. Logický datový model... 7 2.5. Fyzický datový model... 9 3. Procesy... 0 3.. Registrace... 0 3.2. Přihlášení... 0 3.3. Registrace do aplikace... 0
. Úvod Tento dokument popisuje centrální autentizační informační systém. Umožňuje spravovat uživatelské účty jednotlivými majitely účtů(ne administrátory) a rozšiřuje možnost sdílení uživatelských informací aplikacemi. Mohl by být použitelný v různých podnicích, které používají různé aplikace a potřebují centrální správu uživatelských účtů(např. registrace uživatele, registrace uživatele do aplikace, změna hesla, tvorba uživatelských skupin, přidání uživatelů do skupin, nastavení profilu uživatele k aplikaci atd.). Je tvořen 3-vrstvou architekturou v podobě uživatelského rozhraní, webové služby a úložištěm dat... Použité terminologie CAWIS Centrální autentizační webový informační systém SWU Standardní webový uživatel SWA Správce webové aplikace
2. Popis systému 2.. Kontextový diagram cd Context diagram Webová služba pro logování událostí (chyby, varování, info) Aplikace třetích stran Data Zápis do logu CAWIS Akce SWU,SWA Uživatelé Popis externích entit Externí entita Aplikace třetích stran Uživatelé Webová služba pro logování informací Popis Webové aplikace třetích stran, které vyžadují centrální správu uživatelů a aplikací Uživatelé aplikací, jejichž aplikace vyžadují centrální správu uživatelů. Webová služba, která zaznamenává informaci, které obdrží z CAWIS. Může jít o chybové hlášení, varování nebo jen informaci.
2.2. Komunikace s CAWIS sd Komunikace uživatele s CAWIS Uživatel Webov á služba Centrální datov é úložiště Logov ací w ebov á služba Požadavek uživatele aplikace Ověření práv aplikace, klíč e nebo uživatelského jména a hesla Generovaný autentizač ní klíč uživatele Data popřípadě taky Autentizač ní klíč Navrácená data Nedostateč ná práva nebo chyba Zápis do logu Autentizač nní klíč uživatele se negeneruje pokud uživatel poskytnul platný klíč Popis: Komunikace uživatele aplikace z CAWIS je možná jen na základě práv aplikace a autentizačního klíče uživatele.
2.3. Případ užití CAWIS ud Use Case Model CAWIS UC 0 - Zaregistrov at sv ůj uživatelský profil UC 7 - Zaregistrov at se do aplikace UC 02 - Změnit svůj uživatelský profil Uživ atel UC 20 - Přihlásit se UC 6 - Odhlásit se UC 5 - Odregistrov at se z aplikace Pouziva UC 6 - Zmena hesla UC 2 - Odstranit skupinu z aplikace UC - Přiřadit skupinu aplikaci UC 0 - Odstranit uživatele ze skupiny Odstranit Vložit Odstranit Vložit UC 09 - Přidat uživatele do skupiny Spravovat skupiny Vložit Odstranit UC 07 - Přidat skupinu Správce systému UC 08 - Odstranit skupinu Spravovat aplikace Odstranit UC 4 - Odstranit aplikaci Vložit Aplikace třetí strany UC 2 - Zažádat data CAWIS UC 3 - Přidat aplikaci Popis: viz Procesy
2.4. Logický datový model cd Logical Model CAWIS + VytvoritUzivatele(int, string) : bool + VytvoritSkupinu(int, string) : bool + VytvoritAplikaci(int, int, string) : bool + OdstranitUzivatele(int) : bool + OdstranitSkupinu(int) : bool + OdstranitAplikaci(int) : bool + ZmenitHeslo(int, string) : bool + PridatUzivateleDoSkupiny(Uzivatel, Skupina) : bool + OdstranitUzivateleZeSkupiny(Uzivatel, Skupina) : bool + RegistrovatUzivateleDoAplikace(Uzivatel, Aplikace) : bool + OdRegistrovatUzivateleZAplikace(Uzivatel, Aplikace) : bool + Pri hl asi t(stri n g, stri ng) : stri ng + ZiskejData(int, Generic Type T) : Generic Type T Rozhraní webové služby. Všechna volání jdou sem z formulare tohoto systemu nebo od externich aplikaci. Ta následně volá funkč nost objektů definovaných níže. Formular komunikuje s rozhranim Predstavuje formular prezentacni vrstvy systemu. Odtud muze uzivatel provadet ruzne operace napr. registrovat svuj profil atd. Formular + OdesliData(array) : bool + PrijmiData(array) : bool «interface» IData + ZiskejData(int) : GenericType T Aplikace T řída nějaké externí webové aplikace Skupina, která je přiřazena třídě a také uživatelovi - Klic: string - Nazev: string + PridatSkupinu(Skupina) : bool + OdstranitSkupinu (Skupina) : bool + Odstranit(Aplikace) : bool + Vytvorit(int, int, string) : Aplikace Aplikace obsahuje skupiny..* - Nazev: string Skupina + Odstranit(Skupina) : bool + Vytvorit(int, string) : Skupina Uživatel, který je přiřazen skupině..* UzivatelSkupina Uziv atel - AutentizacniKlic: string - Jmeno: string..* - DatumVytvoreni: string + PridatUzivatele(Skupina, Uzivatel) : bool + OdstranitUzivatele(Skupina, Uzivatel) : bool + Vytvorit(int, string, string) : Uzivatel + Odstranit(Uzivatel) : bool Uživatel má registrováno právě jedno heslo Heslo - Hodnota: string Uzivatel muze byt ve vice skupinach. Skupina muze obsahovat vice uzivatelu. + Zakryptovat(stri ng) : stri n g + Vytvorit(int, string) : Heslo + Zmenit(int, string) : bool UzivatelAplikace - Nastaveni: string + RegistraceUzivateleDoAplikace(Uzivatel, Aplikace) : bool + OdRegistraceUzivateleZAplikace(Uzivatel, Aplikace) : void Uživatel, který má nastavení pro aplikaci Heslo uživatele
Popis tříd logického modelu: Třída CAWIS Aplikace Skupina Uzivatel UzivatelSkupina UzivatelAplikace Heslo IData Popis Třída rozhraní webové služby, která komunikuje přímo z aplikacemi a uživateli Třída zastupující uživatelskou aplikací. Obsahuje skupiny. Statické metody Odstranit,Vytvořit slouzi k vytvoreni a odstraneni aplikace. Implementuje rozhranní IData pro získání dat o aplikaci. Třída zastupující uživatelskou skupinu, obsahuje uživatele. Statické metody Odstranit,Vytvořit slouzi k vytvoreni a odstraneni skupiny. Implementuje rozhranní IData pro získání dat o skupine. Třída zastupující uživatele systému. Obsahuje informace o uživatelovi, ale také i Autentizační klíč, který je důležitý pro komunikaci s CAWIS. Třída obsahující informace o uživatelých ve skupině např. kdy byl uživatel zařazen do skupiny. Třída obsahující informace o nastavení uživatele pro danou aplikaci. Dále umožňuje registrovat / uživatele do / z aplikace. Třída hesla uživatele, umožňující např. kryptofyt heslo Rozhranní, které impelementují třídy, které poskytují data jednotlivých objektů těchto tříd.
2.5. Fyzický datový model cd Data Model User2Group *pfk «Column» User_guid: uniqueidentifier *pfk «Column» Group_guid: uniqueidentifier «Column» Created: datetime = (getdate()) + «PK» PK_User2Group(uniqueidentifier, uniqueidentifier) + «FK» FK_User2Group_Group(uniqueidentifier) + «FK» FK_User2Group_User(uniqueidentifier) User2Application *pfk «Column» User_guid: uniqueidentifier = (newid()) *pfk «Column» Appl_guid: uniqueidentifier = (newid()) «Column» Setings: ntext «Column» Description: nvarchar(255) + «PK» PK_User2Application(uniqueidentifier, uniqueidentifier) + «FK» FK_User2Application_Application(uniqueidentifier) + «FK» FK_User2Application_User(uniqueidentifier) +FK_User2Group_Group +FK_User2Group_User +FK_User2Application_User (User_guid = User_guid) (User_guid = User_guid) +FK_User2Application_Application +PK_User +PK_User User (Group_guid = Group_guid) *PK «Column» User_guid: uniqueidentifier = (newid()) «Column» Token_guid: uniqueidentifier * «Column» Username: nvarchar(50) * «Column» Password: varbinary(255) * «Column» Created: datetime = (getdate()) «Column» Removed: datetime * «Column» Email: nvarchar(200) = ('') * «column» Active: bit = 0 * «column» Blocked: bit = 0 «column» FirstName: nvarchar(50) «column» LastName: nvarchar(50) (Appl_guid = Appl_guid) + «PK» PK_User(uniqueidentifier) +PK_Group Group *PK «Column» Group_guid: uniqueidentifier = (newid()) *FK «Column» Appl_guid: uniqueidentifier = (newid()) * «Column» Name: nvarchar(50) «Column» Description: nvarchar(255) + «PK» PK_Group(uniqueidentifier) + «FK» FK_Group_Application(uniqueidentifier) +FK_Group_Application (Appl_guid = Appl_guid) +PK_Application +PK_Application Application *PK «Column» Appl_guid: uniqueidentifier * «Column» Name: nvarchar(50) = ('') * «Column» Key: uniqueidentifier = (newid()) + «PK» PK_Application(uniqueidentifier) Popis tabulek fyzického modelu: Tabulka User Application Group User2Group User2Application Popis Tabulka uživatelů CAWIS. Tabulka všech externích aplikací, které chtějí spravovat účty centrálně. Tabulka skupin uživatelů. Tabulka uživatelů ve skupině. Tabulka nastavení aplikace konkrétního uživatele.
3. Procesy Pozn. zatím neimplementuji 3.. Registrace 3.2. Přihlášení 3.3. Registrace do aplikace