Centrální autentizační webový informační systém
Vypracoval : Jaromír Koníček Datum vypracování: 24.11.2006 Case nástroj: Enterprise Architekt v. 4.50
Obsah 1.
Úvod .............................................................................................................................................................. 3 1.1. Použité terminologie ............................................................................................................................ 3 2. Popis systému ................................................................................................................................................ 4 2.1. 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 ........................................................................................................................................................ 10 3.1. Registrace........................................................................................................................................... 10 3.2. Přihlášení ........................................................................................................................................... 10 3.3. Registrace do aplikace ....................................................................................................................... 10
1. Ú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. 1.1.
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.1.
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živ atele s CAWIS Webov á služba
Centrální datov é úložiště
Logov ací w ebov á služba
Uživatel Požadavek uži vatele apli kace Ověření práv aplikace, kl íč e nebo uživatelského jm éna a hesla Generovaný autentizač ní kl íč uživatele
Navrácená data Data popřípadě taky Autentizač ní klíč
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 M odel CAWIS UC 17 Zaregistrov at se do aplikace
UC 01 Zaregistrov at sv ůj uživ atelský profil
UC 02 - Změnit sv ůj uživ atelský profil Uživ atel UC 16 - Zmena hesla
UC 15 Odregistrov at se z aplikace
UC 16 - Odhlásit se UC 20 - Přihlásit se
Pouziva UC 12 - Odstranit skupinu z aplikace
Odstranit
UC 11 - Přiřadit skupinu aplikaci
Odstranit Vložit
UC 10 - Odstranit uživ atele ze skupiny
UC 09 - Přidat uživ atele do skupiny
Vložit
Sprav ov at skupiny
Vložit UC 07 - Přidat skupinu
Odstranit UC 08 - Odstranit skupinu Správ ce systému Sprav ov at aplikace
Odstranit Vložit
Aplikace třetí strany
Popis: viz Procesy
UC 21 - Zažádat data CAWIS
UC 13 - Přidat aplikaci
UC 14 - Odstranit aplikaci
2.4.
Logický datový model
cd Logical M odel
+ + + + + + + + + + + + +
Predstavuje form ular prezentacni vrstvy system u. Odtud m uze uzivatel provadet ruzne operace napr. registrovat svuj profil atd.
Rozhraní webové služby. Všechna volání jdou sem z form ulare tohoto system u nebo od externich aplikaci. T a následně volá funkč nost objektů definovaných níže.
CAWIS VytvoritUzivatele(int, string) : bool VytvoritSkupinu(int, string) : bool VytvoritAplikaci(int, int, string) : bool OdstranitUzivatele(int) : bool OdstranitSkupinu(int) : bool OdstranitAplikaci(int) : bool Zm enitHeslo(int, string) : bool PridatUzivateleDoSkupiny(Uzivatel, Skupina) : bool OdstranitUzivateleZeSkupiny(Uzivatel, Skupina) : bool RegistrovatUzivateleDoAplikace(Uzivatel, Aplikace) : bool OdRegistrovatUzivateleZAplikace(Uzivatel, Aplikace) : bool Prihlasit(string, string) : string ZiskejData(int, Generic T ype T ) : Generic T ype T
Formular + +
Form ular kom unikuje s rozhranim
OdesliData(array) : bool Prijm iData(array) : bool
«interface» IData +
ZiskejData(int) : GenericType T T řída nějaké externí webové aplikace
Aplikace -
ID: int Klic: string Nazev: string
+ + + +
PridatSkupinu(Skupina) : bool OdstranitSkupinu (Skupina) : bool Odstranit(Aplikace) : bool Vytvorit(int, int, string) : Aplikace
Skupina, která je přiřazena třídě a také uživatelovi
Skupina Aplikace obsahuje skupiny 1
1..*
-
ID: int Nazev: string
+ +
Odstranit(Skupina) : bool Vytvorit(int, string) : Skupina
1
Uživatel, který je přiřazen skupině
1
1..* Uziv atelSkupina
Uziv atel
-
ID: int Datum Vytvoreni: string
+ +
PridatUzivatele(Skupina, Uzivatel) : bool OdstranitUzivatele(Skupina, Uzivatel) : bool
-
ID: int AutentizacniKlic: string Jm eno: string
1
+ +
Vytvorit(int, string, string) : Uzivatel Odstranit(Uzivatel) : bool
Uživatel m á registrováno právě jedno heslo
1..*
1 1 Heslo 1
0..*
0..*
-
ID: int Hodnota: string
+ + +
Zakryptovat(string) : string Vytvorit(int, string) : Heslo Zm enit(int, string) : bool
Uzivatel m uze byt ve vice skupinach. Skupina m uze obsahovat vice uzivatelu.
Uziv atelAplikace -
ID: int 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 M odel User2Application
User2Group *pfK «Colum n» *pfK «Colum n» «Colum n» «Colum n»
*pfK «Colum n» User_guid: uniqueidentifier *pfK «Colum n» Group_guid: uniqueidentifier «Colum n» Created: datetim e = (getdate()) + + +
«PK» PK_User2Group(uniqueidentifier, uniqueidentifier) «FK» FK_User2Group_Group(uniqueidentifier) «FK» FK_User2Group_User(uniqueidentifier)
+FK_User2Group_Group
0..*
+ + +
User_guid: uniqueidentifier = (newid()) Appl_guid: uniqueidentifier = (newid()) Setings: ntext Description: nvarchar(255)
«PK» PK_User2Application(uniqueidentifier, uniqueidentifier) «FK» FK_User2Application_Application(uniqueidentifier) «FK» FK_User2Application_User(uniqueidentifier)
0..* +FK_User2Group_User
+FK_User2Application_User
0..*
(User_guid = User_guid) (User_guid = User_guid)
+PK_User
1
+PK_User
0..* +FK_User2Application_Application
1
User
(Group_guid = Group_guid)
*PK «Colum n» User_guid: uniqueidentifier = (newid()) «Colum n» T oken_guid: uniqueidentifier * «Colum n» Usernam e: nvarchar(50) * «Colum n» Password: varbinary(255) * «Colum n» Created: datetim e = (getdate()) «Colum n» Rem oved: datetim e * «Colum n» Em ail: nvarchar(200) = ('') * «colum n» Active: bit = 0 * «colum n» Blocked: bit = 0 «colum n» FirstNam e: nvarchar(50) «colum n» LastNam e: nvarchar(50) +
+PK_Group
«PK» PK_User(uniqueidentifier)
1
+PK_Application
Group *PK «Colum n» Group_guid: uniqueidentifier = (newid()) *FK «Colum n» Appl_guid: uniqueidentifier = (newid()) * «Colum n» Nam e: nvarchar(50) «Colum n» Description: nvarchar(255) + +
(Appl_guid = Appl_guid)
«PK» PK_Group(uniqueidentifier) «FK» FK_Group_Application(uniqueidentifier)
1
Application *PK «Colum n» Appl_guid: uniqueidentifier +PK_Application * «Colum n» Nam e: nvarchar(50) = ('') * «Colum n» Key: uniqueidentifier = (newid()) 1 (Appl_guid = Appl_guid) + «PK» PK_Application(uniqueidentifier)
+FK_Group_Application 0..*
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.1.
Registrace
3.2.
Přihlášení
3.3.
Registrace do aplikace