Hi all.
My problem is as follows: I want to deploy a system on IBM WAS where the
"standard" role-based security (based on EJB methods) is not sufficient.
Actually what I need is a "two-phase" authorization, based on
"assignments", according to the following rules:
* The role of the user defines which types of assignments s/he may carry
out. E.g. Manager can perform assignments of types A, B & C, Employee can
perform assignments of types C & D etc.
* The user logs in and (according to his/her role) selects an assignment
and starts to run it. The methods that I want to make available depend on
the type of the assignment, e.g. for assignment type A methods 1, 2 & 3
are available, for assignment type B methods 3 & 4 etc.
I tried to see if I can use (or abuse) JAAS roles and EJB methods (then I
don't have to implement the authorization myself). The problems that I
can forsee are:
+ Mapping of roles to users is quite "static", i.e. holds for the whole
HTTP session and not for just a part of it. I haven't found a neat way to
deprive a user of a role s/he already has as soon as the relevant
assignment is completed.
+ Another problem is that I want to avoid interaction between two
concurrent assignments: the role-based authorization holds for a session,
whereas I want the authorization to hold only for a specific assignment.
In other words, if the user is carrying out 2 assignments at the same
time of different types (in two different browser windows), then the
methods for assignment type A should only be available for that
assignment and not for the assignment of type B (and vice versa).
In the worse case we would have to implement the assignment-based
authorization ourselves, but if there's some mechanism out there we would
of course prefer to use it. Does anyone have experience with this
situation?
Your help is much appreciated.
Best regards,
Roy Reshef
B/CICT
Belastingdienst, The Netherlands
Edward A. Feustel - 12 Jan 2005 11:33 GMT
> Hi all.
>
[quoted text clipped - 40 lines]
> B/CICT
> Belastingdienst, The Netherlands
Roy,
What you are describing is task based security - that is privileges based on
the task that
the entity is entitled to do.
Stanford University has developed some software for doing this for the
University. I am not
certain as to its general availability. Within the Internet2 community they
are leading a project called Signet whose purpose is to standardize the
privileges used in University communities based on
the Tasks done there. They are developing an administrative task and GUI
which will assign privileges to entities.
Another possibility within Java that might be helpful is the XACML work on
sourceforge. Developed by SUN and others is an XML-based Policy Decision
Function. The Policy can be based on the "environment" which is what you
want, since your decision depends on current task to be worked on.
Good Luck.
Ed