pátek 27. dubna 2007

OBI EE - Autentifikace uživatelů

Jetliže už implementujete nebo začínáte implementovat OBI EE, tak dřív nebo později budete řešit bezpečnost v analytickém systému s čímž souvisí i autentifikace uživatelů.

Oracle Business Intelligence Suite Enterprise Edition nabízí tyto možnosti autentifikace:

I. Autentifikace oproti BI Serveru - uživatelé a hesla jsou uložena v metadata repository
Vhodné řešení v případě, že máte málo uživatelů analytického systému nebo nevlastníte corporátní Identity Management.

II. Autentifikace oproti LDAP serveru - uživatelé a hesla jsou uložena v LDAPu
Jakmile máte corporátní Identity Management, určitě jej budete chtít využít pro správu uživatelů analytického systému. OBI EE je v současnosti certifikován s těmito Identity Managementy:
- Oracle Identity Management 10g 10.1.4.x, 10.1.2.0.2
- IBM LDAP Server 5.x
- Windows ADSI 2000, 2003
- Windows Native Authentication (Kerberos)
- Novell Identity Manager 3.0.1
- IBM Tivoli Identity Management 6.0
- Sun Java System Identity Server 5.x

III. Autentifikace oproti Externí tabulce - uživatelé a hesla jsou uložena v DB tabulce
Vhodné řešení pro ty z Vás, kteří využívají vlastní Identity Management v podobě DB tabulky uložené v databázi.

IV. Autentifikace oproti databázi - uživatelé jsou uloženy v metadata repository
Vhodné řešení pro ty z Vás, kteří pro autentifikaci využívají databázové uživatele. Toto řešení má jednu velkou nevýhodu a to ruční zakládání uživatelů do metadata repository. Proto je mnohem lepší použít kombinaci trojky a čtyřky.

V. Autentifikace oproti databázi v kombinaci s externí tabulkou pro autorizaci - uživatelé a skupiny pro autorizaci jsou uloženy v DB tabulce
V případě, že nevlastníte corporátní Identity Management řešení a máte 100ky uživatelů analytického systému, je dané řešení to nejlepší.

Návod jak implementovat řešení I. - IV. najdete v dokumentaci v kapitole 15 - Security in Oracle BI.

Návod jak implementovat V. řešení s rozšířením o autorizaci na objekty metadata repository najdete níže:

1. Určete databázi dle které budete provádět autentifikaci. Může to být databáze ve které jsou uložena zdrojová data, a nebo to může být dedikovaná databáze pouze pro ověřování.

2. V databázi založte db uživatele

3. V databázi založte db tabulku (nutná pro autorizaci ne pro autentifikaci), která bude mít dva sloupce (jméno db uživatele a jméno skupiny pro autorizaci na objekty v metadata repository). Do tabulky vložte jména db uživatelů (případně i názvy skupin), kteří budou pracovat s analytickým systémem.



4. V metadata repository založte fyzickou vrstvu ukazující na autentifikační databázi a naimportujte informace o vytvořené tabulce.



5. Upravte ConnectionPool, použijte "Shared logon", ale místo konstant použijte proměnné.
User name :USER
Password :PASSWORD



6. Vytvořte "session" inicializační blok "Authentification" a proměnnou USER. Jako Data Source použijte Váš upravený ConnectionPool. Init blok naplňuje proměnnou USER a používá se pro autentifikaci uživatele analytického systému oproti databázi.
Jestliže chcete řešit pouze autentifikaci a ne i autorizaci, tak lze použít "fake select", který může vypadat takto: select ':USER' from dual where 1=1



7. Jestliže chcete řešit i autorizaci na objekty, tak v metadata repository založte skupiny. V db tabulce přiřaďte skupiny uživatelům, vytvořte "session" inicializační blok "Authorization" a proměnnou GROUP. Jako Data Source použijte Váš upravený ConnectionPool. Init blok volá blok "Authentification" a naplňuje proměnnou GROUP.



8. V případech kdy jeden uživatel je zařazen do více skupin, musí být použita volba row-wise (inicializační select je trochu pozměněn).


eec.

5 komentářů:

Anonymní řekl(a)...

Pri cteni prispevku, tykajicich se OBI EE nezbyva nez kolegy - presale konzultanty pochvalit za velice kvalitni, obsahove hodnotne a hlavne uzitecne tipy/rady, tykajici se tohoto noveho BI "kone" v Oracle staji.

Unknown řekl(a)...

Článek je i pro mě velice přínosný. Mám k této problematice jeden dotaz. Lze standardními nástroji Oracle BI (např v rámci Dashboardu) umožnit uživateli autentizovanému dejme tomu proti externí tabulce, aby si změnil heslo? Snažím se to zatím marně najít v dostupné dokumentaci.

BI.DW.CZ řekl(a)...

V případě, že uživatelé jsou uloženy v BI Metadata repository, pak jim lze v rámci BI Dashboardu zpřístupnit link pro změnu hesla (standardně link není zobrazován).

V případě, že uživatelé jsou drženy mimo BI Metadata repository (např. LDAP, DB, External. table), pak by měla být i jejich správa řešena v jiné aplikaci.
Link na aplikaci pro správu těchto účtů lze pak integrovat do BI Dashboardu. Popis najdete zde.

Anonymní řekl(a)...

Změnit uživatelské heslo přímo z dashboardu v externí tabulce je možné pomocí funkcionality writeback (viz zde). Souhlasím ale s tím, že i když to jde, není to nejlepší možnost.

Anonymní řekl(a)...

Zajímavý a přínosný článek. Rád bych se ještě dozvěděl, zda-je možnost použít pro přihlašování čipovou kartu (Smart Card) s uživatelským certifikátem. Pokud tato možnost existuje, kde bych našel nějaký podrobný popis? S vyhledáváním na OTN a Google jsem neuspěl.