Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dynamic AD Security for Sheet Access

Hello, I am very new to Qlikview and am trying to research how to dynamically use the AD Security users and groups to determine Sheet Access with the condition defined based on the AD Security Group. I have read through many of the posts that were related to this but am still unclear how this can be implemented dynamically. Can someone help clarify the details of how I could implement this? Thank you.

4 Replies
Not applicable
Author

I don't get it, what is the AD Security? Did you mean Dynamic Data Reduction?

Not applicable
Author

I'll try and explain what I mean by Dynamic Active Directory Security...I'd like to retrieve the Active Directory Users and Groups from the source Active Directory database (using the OLE DB Provider for Microsoft Directory Services driver (not having to load these from a different source being in an excel file or some other source). That's what I mean by dynamic, not having to hardcode these users in some other file or script. So upon retrievig the users and groups from Active Directory, then I could add a condition into a Sheet to only show the sheet for certain Active Directory Groups. Hopefully that helps clarify what I'm trying to do.

Not applicable
Author

Hi Jennifer,

I apologize, but I'm not especially familiar with AD, do coming at it from a purely QlikView perspective…

I'm going to assume that using the OLEDB Provider for AD gives you access to some table. Let's call it the User table, for sake of argument. There are a couple of approaches you could take.

1) section access

Section access is QlikView's field and row level security method. It lets you restrict people from seeing things. It's overkill for your stated requirement.

2) Sheet visibility

Each sheet in your application can be shown or hidden based on a formula.

Section access is a whole other topic onto itself, so I'm going to skip over it. There are lots of resources that can get you started down that route.

As for the sheet visibility, if you can load username, and group into this 'user' table we just created, then you can show/hide sheets by going into the sheet properties window, and set 'Show Sheet' to conditional, and write your condition there. (it must evaluate to true or false) You can use the OSUSER() function to get the OS username of the currently signed in user… and I'm drawing a blank, but I know it's possible to get the group from that user (ie: get another piece of data from a record when you know how to uniquely identify the record), and then compare it to the name of your expected group.

Eg: (in semi-pseudo code) getGroup(OSUSER()) = 'Administrators'

Obviously, 'getGroup' isn't actually a function, I'm just using it as a stand-in to demonstrate the general idea.

On a related note, your 'users' table is only ever going to be as good as your latest refresh data. So, if you make an AD change, and don't reload your document, you won't see the change in QV.

Not applicable
Author

Hi,

I've attached a small example soloution. I'm not sure it'll solve all your problems, but maybe some of them. I compare the logged in user with an inline-table to se if the user should have access to the sheet. You must replace the users in the table with your own.

Regards,

Christina