A high level flow is outlined below:
In OBIEE 11g, security authentication is enforced in the Weblogic Admin Server, and a user's security privileges are tied to their corresponding Application Roles in Fusion Middleware as shown in the diagram below:
The key take away is that object level security is applied to application roles and not groups. Why application roles? In Weblogic and Fusion Middleware, we can actually assign certain privileges to an application roles - we call these 'Application Policies'. For example, we can grant a certain application role the ability to 'edit the repository', or 'act as another user'. This feature, not possible in OBIEE 10g, now allows us to not only control what objects are being viewed, but also gives us the capability to control who can execute certain actions within the BI environment. This topic will be discussed in much greater detail in another guide.
Now let's go over the basic rules of Object Level Security for Application Roles in OBIEE 11g:
- If a user is a direct member of an application role, they will have access to the reports allowed by that application role.
- If a user is not a member of an application role, they will not have access to the reports allowed by that application role.
- If a user is a direct member of two or more application roles with different security privileges for the same reports, the less restrictive security privilege is applied.
- unless the user is explicitly denied. Explicit denial supersedes all security privileges.
- If a user is a member of Application Role X, and Application Role X is a member of Application Role Y, the privileges in Application Role X supersede the privileges of Application Role Y
Let's cover each scenario in detail:
- If a user is a direct member of an application role, they will have access to the reports allowed by that application role.
In this example, I granted Application Role 'Test Role 1' full control to folder 'Folder 1'. I then logged in as 'testuser1' who is a member of Application Role 'Test Role 1'. And as expected, testuser1 can read/write/edit/delete the folder.
- If a user is not a member of an application role, they will not have access to the reports allowed by that application role.
In this example, I created 'Folder 2', only accessible by members of the 'BIAdministrator Application Role'. I then log in as a 'testuser1', which is not a member of the 'BIAdministrator Application Role'
As BIAdministrator:
As testuser1:
Note that in the above scenario, 'denying' the application role access accomplishes the same thing as taking no action onto the application role role (i.e. ignoring it completely)
- If a user is a direct member of two or more application roles with different security privileges for the same reports, the less restrictive security privilege is applied.
In this example, I created Folder 3, which grants 'read' access to Test Role 1 and 'modify' access to 'Test Role 2'. 'Testuser1' is a member of both 'Test Role 1' and 'Test Role 2'.
As expected, Testuser1 has modify rights to Folder 3 (noted by 'X', ability to delete), despite being a member of Test Role 1 which only grants the user read access
- If a user is a direct member of two or more application roles with different security privileges for the same reports, the less restrictive security privilege is applied.
- unless the role is explicitly denied
In this example, TestUser1 is a member of Test Role 1 and Test Role 2 and Test Role 3. Test Role 1 grants testuser1 open rights, Test Role 2 grants testuser1 modify rights and Test Role 3 is explicitly denied.
As expected, testuser1 does not have access to Folder 4 because of Test Role 3
- If a user is a member of Application Role X, and Application Role X is a member of Application Role Y, the privileges in Application Role X supersede the privileges of Application Role Y
In this example, testuser1 is a member of application role 'Test Role 4'. Application role 'Test Role 5' is a member of application Role 'Test Role 4'. Test Role 4 grants 'open' privileges to Folder 5 and Test Role 5 grants 'full control' to Folder 5.
As expected, testuser1 only has read/open access to Folder 5 even though Application Role 'Test Role 5' grants full control. This is because direct inheritance overrides indirect inheritance
Even if the inherited role explicitly denies access to folder 5, the user will still be able to access folder 5 because the direct role grants read/open access:
Note how testuser1 has modify access to Folder 5 (noted by the 'X') , despite inheriting a role that is denied access to the same folder.
These basic rules can be applied to any hierarchy, no matter how complex. Think you've mastered these 4 basic rules? Identify the final privileges for User 1 in the scenario below:
* example courtesy of Oracle - found in Oracle Business Intelligence Fusion Middleware Security Guide
Result:
- User is a direct member of Role 1 and 2 and indirect member of Role 3, Role 4 and Role 5
- User has no access to Dashboard A
- User has open access to Dashboard B
- User has full control of Dashboard C
- User has no access to Dashboard E
- User has open access to Dashboard D
keywords : object level security, obiee security, obiee application roles, obiee 11g security, weblogic application roles, obiee inheritance
Very nice post!
ReplyDeleteperfect post.
ReplyDeletevery good post on user groups and security.
ReplyDeleteVery clear explanation! Thank you!
ReplyDeletethank you for this nice article.
ReplyDeleteJohn,
ReplyDeleteAs usual, an excellent job. Oracle documentation is misleading and plain wrong on this subject.
Interesting Article
ReplyDeleteOnline Java Training | Online Java Training for beginners
Java Online Training | Online JavaEE Training
Every points regarding object level security was clear to understand.
ReplyDeleteRegards,
JAVA Training in Chennai|Best JAVA Training institute in Chennai
There are lots of information about hadoop have spread around the web, but this is a unique one according to me. The strategy you have updated here will make me to get to the next level in big data. Thanks for sharing this.<
ReplyDeleteRegards,
Hadoop Training in Chennai|Big Data Training in Chennai|Big Data Training
Excellent post!!! The strategy you have posted on this technology helped me to get into the next level and had lot of information in it.
ReplyDeletePython training in chennai
Thank You for sharing your wonderful article...
ReplyDeleteHP UFT Training Institute in Chennai | Best HP UFT Training in Chennai | HP UFT Training in Chennai | HP UFT Course in Chennai
Your blog is awesome.You have clearly explained about it.It's very useful for me to know about new things..Keep on blogging. Selenium Training in Chennai | Selenium Course in Chennai
ReplyDeleteGood post..Keep Sharing.! I'm working in brave technologies private limited. We are the leading low cost ERP software development company in chennai.
ReplyDeleteThanks for the sharing this post.
ReplyDeleteSAP PS training in Gurgaon | SAP HR Training in Gurgaon
It is Very nice and Informative website.Excellent Work
ReplyDeleteSelenium Training in chennai | Selenium Training in annanagar | Selenium Training in omr | Selenium Training in porur | Selenium Training in tambaram | Selenium Training in velachery
Such an excellent and interesting information in your blog, it is awesome to read and do post like this with more informations. Salesforce Classes Singapore
ReplyDeleteGreat post! I am actually getting ready to across this information, It’s very helpful for this blog. Also great with all of the valuable information you have Keep up the good work you are doing well.
ReplyDeleteCRS Info Solutions Salesforce training for beginners
Myself so glad to establish your blog entry since it's actually quite instructive. If it's not too much trouble continue composing this sort of web journals and I normally visit this blog. Examine my administrations.
ReplyDeleteGo through these Salesforce Lightning Features course. Found this Salesforce CRM Using Apex And Visualforce Training worth joining. Enroll for SalesForce CRM Integration Training Program and practice well.
Excellent blog.Keep blogging.
ReplyDeleteJava training in Chennai
Java training in Bangalore
Java training in Hyderabad
Java Training in Coimbatore
Java Online Training
I must thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade content by you later on as well. In truth, your creative writing abilities has inspired me to get my own, personal blog now.
ReplyDeleteweb designing training in chennai
web designing training in tambaram
digital marketing training in chennai
digital marketing training in tambaram
rpa training in chennai
rpa training in tambaram
tally training in chennai
tally training in tambaram
I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
ReplyDeletedata science training in chennai
data science training in annanagar
android training in chennai
android training in annanagar
devops training in chennai
devops training in annanagar
artificial intelligence training in chennai
artificial intelligence training in annanagar
Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
ReplyDeletedata science training in chennai
data science training in velachery
android training in chennai
android training in velachery
devops training in chennai
devops training in velachery
artificial intelligence training in chennai
artificial intelligence training in velachery
There are lots of information about hadoop have spread around the web, but this is a unique one according to me.
ReplyDeleteangular js training in chennai
angular js training in omr
full stack training in chennai
full stack training in omr
php training in chennai
php training in omr
photoshop training in chennai
photoshop training in omr
How to use React DevTools and Chrome DevTools to measure and improve your React app's performance
ReplyDelete