Inleiding
In dit artikel staan we stil bij security binnen OBIEE.
OBI Security (authenticatie en autorisatie)
Met de komst van OBI 11g is het nodige veranderd ten opzichte van de vorige versie. een van de meest in het oog springende zaken is security. In dit artikel staat dit onderwerp centraal. We starten met authenticatie (ben ik gemachtigd om in OBI EE in te loggen?) en daarna komt autorisatie aan bod (als ik eenmaal ben ingelogd, welke rechten heb ik dan?).
Qua volgorde komen de volgende onderwerpen aan bod in dit artikel:
- Authenticatie,
- Row-level security (horizontale data autorisatie),
- Catalog Object security (functie autorisatie).
Authenticatie. Het proces waarin een gebruiker zich bekend dient te maken met behulp van een gebruikersnaam en wachtwoord. Op het moment dat dit succesvol is uitgevoerd, krijgt de gebruiker toegang tot de gewenste applicatie, in dit geval OBI.
Authenticatie gebeurt door een webserver, voor OBI is dit WebLogic. Binnen elke OBI installatie is er een WebLogic server domain. Binnen dit domain vindt authenticatie plaats.
WebLogic maakt intern gebruik van gegevens uit een LDAP server. Op basis van deze gegevens worden de gebruikersnaam en wachtwoord gecontroleerd, en wordt tevens vastgesteld bij welke groepen / rollen een gebruiker is ingedeeld.
Overigens is het niet verplicht om gebruik te maken van de LDAP server binnen WebLogic. WebLogic ondersteunt de volgende opties voor authenticatie:
- De al genoemde intern ingebouwde WL LDAP server.
- Externe LDAPs, bijvoorbeeld Open LDAP, Sun iPlanet, Microsoft AD en Novell NDS LDAP.
- Database authenticatie.
- Windows authenticatie.
- Overige vormen: X.509 en IIOP-CSIv2 tokens, SAML, SPNEGO tokens, Kerberos.
Autorisatie. Beheren van gebruikers en gebruikersgroepen
Het beheren van users en user groups is binnen de WebLogic/OBI opzet niet op 1 plaats geregeld. In totaal zijn er vier plekken waar u bepaalde informatie kunt vastleggen.
En elk van deze plaatsen is bedoeld om gegevens voor specifieke doeleinden vast te leggen. De volgende onderdelen houden gegevens over gebruikers en gebruikersgroepen (Application Roles) vast:
- WebLogic Administration Console,
- Enterprise Manager van Oracle Fusion,
- BI Administration Tool (RPD) en
- BI Presentation Services (Administration Page)
In de WLS Administration Console beheert u de users en user groups voor de LDAP die binnen WebLogic is ingebouwd. Deze gegevens worden gebruikt ten behoeve van het al eerder toegelichte authenticatiemechanisme.
U koppelt users aan groups. Deze groups gebruikt u later in het traject om gebruikers toegang te geven tot BI content (dashboards, rapporten, maar ook data).
De gegevens die u hier invult zij vrij algemeen van aard.
Oracle Fusion Middleware Control (enterprise manager)
In de Oracle Fusion Middleware Control beheert u zogenaamde Application Roles die de toegang tot OBI modules regelen. Application Roles noemen wij telkens user groups.
Na een standaardinstallatie zijn er drie Application Roles beschikbaar, namelijk BIAdministrator, BIAuthor en BIConsumer. U kunt natuurlijk ook andere rollen toevoegen. De gegevens die u hier invult zijn rollen die u binnen de applicatie gaat gebruiken, voornamelijk voor functie autorisatie.
Vervolgens koppelt u de groups 1:1 aan de applicatierollen.
BI Administration Tool (RPD)
De Security Manager binnen de BI Admin Tool wordt gebruikt om privileges toe te kennen aan objecten in de metadata repository (RPD). Zo kunt u bijvoorbeeld het log level instellen voor individuele gebruikers, maar ook kunt u data filters op tabellen specificeren voor gebruikers of gebruikersgroepen (Application Roles).
Administration Page in Oracle BI Presentation Catalog
Binnen de BI Presentation Services kunt u systeemprivileges vastleggen voor gebruikers of gebruikersgroepen (Application Roles).
U gebruikt in dit gedeelte dus de reeds ingevuld Application Roles, en kent daar rechten aan toe die specifiek gelden voor OBI EE, zoals toegangsrechten op dashboard pagina’s en analyses, maar ook rechten voor het gebruik van features van OBI EE.
Single sign-on (SSO)
Wanneer u ervoor kiest om single sign-on (SSO) te implementeren, dan is het de doelstelling dat een gebruiker zich eenmalig aanmeldt (authenticeert) en vervolgens met dezelfde gebruikersnaam en wachtwoord combinatie verschillende applicaties kan gebruiken, zonder zich opnieuw te moeten aanmelden.
Authenticatie binnen OBI gebeurt binnen weblogic. Eenmaal aangemeld betekent dat u als gebruiker toegang krijgt tot onderdelen van OBI. De exacte onderdelen en de rechten die krijgt, zijn afhankelijk van functie autorisatie en RLS.
OBI kan op een dusdanige manier worden ingesteld dat alle binnenkomende HTTP verzoeken worden toegelaten, mits deze verzoeken zijn gedaan door een sessie waarvoor authenticatie succesvol is uitgevoerd.
De SSO oplossing stuurt de credentials van een eenmaal geauthenticeerde user door aan BI Presentation Services, die vervolgens een verbinding opzet met de BI Server. De BI Server maakt dan gebruik van een zogenaamde “impersonation feature”, waarmee SSO binnen de OBI wordt geregeld.
Data autorisatie
Data autorisatie wordt opgelost binnen OBI in de repository, door het aanmaken van data filters. Deze vorm van data autorisatie noemen we met een ander woord ook wel Row Level Security (RLS).
RLS binnen OBI wordt geïmplementeerd met behulp van data filters. Daarbij is het verstandig om de data filters op te zetten per gebruikersgroep in plaats van individuele gebruikers. Het idee achter de data filters is dat binnen de BI Server een filter (in SQL termen een WHERE clausule) wordt toegevoegd, voordat de query naar de achterliggende bron wordt gestuurd. Het volgende plaatje laat zien hoe dit werkt.
Functie autorisatie
Met behulp van functie autorisatie regelt u welke functionaliteit gebruikers ter beschikking krijgen. Dit kan productfunctionaliteit zijn (privileges), maar ook functionaliteit van de BI oplossing (access rights).
De rechten beheert u meestal per gebruikersgroep, omdat u op deze manier het overzicht beter behoudt.
U regelt de functie autorisatie binnen de BI Presentation Catalog.