[midPoint] Midpoint features
Radovan Semancik
radovan.semancik at evolveum.com
Fri Jan 17 16:48:30 CET 2014
Hi Lucie,
On 01/17/2014 03:44 PM, Lucie Rút Bittnerová wrote:
> 1) Can a user request for some role? There is a child element
> "requestable" in xml schema for element role but is it supported?
User requests a role simply by assigning the role to himself. If no
approvals are configured then the role gets assigned immediately. If
there are approvals then the approvals are processed first and the the
role is either assigned or the operation is cancelled.
However there are two things to consider in midPoint 2.2:
* Authorization scheme of midPoint 2.2 is very rough. Simply speaking
you can only give user a privilege to assign all roles or no roles at
all (in fact the authorization is even broader).
* There is no special part of GUI that can be used for user to assign a
role just to himself.
Both of these should be greatly improved in 2.3. But if you want a
solution for midPoint 2.2 then the best strategy is to create a simple
end-user interface that will process role requests from the users. Such
interface can then use midPoint webservice to initiate role request in
midPoint. The custom end-user interface can also enforce any kind of
authorization mechanism. Creating such simple GUI should be very easy
for any reasonably experience web developer. There is also a Java client
code with samples that can be used by your custom GUI code to simplify
the development of such interface in Java. Other platforms can use the
web service using their own tools (we have WSDL/XSD definition). E.g. we
have information that .NET web service clients works reasonably well.
There is actually very strong reason behind this: The end-user
interfaces usually take many forms in IDM deployments: Java portlet,
proprietary plugin into enterprise portal, custom portlet (e.g. in
liferay), integrated with "primary" access mamagement system (such as
AD) and so on. Therefore we haven't invested much effort in midPoint's
end-user interface until midPoint user's specifically request how the
end user interface should look like and what exactly it should do. We
have some requests already and these will be reflected in midPoint 2.3.
If you have any specifications or idea how the midPoint end user
interface should look like in the future we will be very grateful if you
can share them. This kind of feedback will help a lot to guide future
midPoint development.
The "requestable" property of roles is meant to allow GUI to list only
the roles that are normally requestable. This property is currently not
used by main midPoint code and it is there especially to support custom
end-user GUIs: the roles can be searched using midPoint web service and
therefore the custom GUI can display a list of relevant roles.
> 2) I need finer granularity for authorization. For example I need to
> allow a user to read his attributes (but not to modify them) or to
> modify selected attributes. Are there any plans to support this feature?
Yes, there are. This is part of our "delegated authorization" feature
and it will be supported in midPoint 2.3.
> 3) Is it possible to be allowed to add/remove roles of users but
> without possibility to change user attributes?
Not in midPoint 2.2. But this is planned for midPoint 2.3.
> 4) Is there any support for time limited roles?
There is limited support for something that we call "time constraints"
in mappings and also limited support for "validity intervals". MidPoint
2.2 officially supports that only for users, not for roles. However the
code that is processing the time-related properties is very generic and
it may either (unintentionaly) work in 2.2 or may be very easy to fix in
2.3.
It looks like waiting for midPoint 2.3 is your best option here. It is
currently under development and the release is planned for late
spring/early summer. However the development code is in a pretty good
shape. If you are interested in these features and you have some time it
could help a lot if you could help us with specifications and testing.
What we want exactly:
1) Specify your use cases.
2) Communicate with developers while the features are being developed.
3) Test the features (in development version, before release).
4) Repeat steps 2 and 3
This approach will greatly improve the chances that the features that
you want will be part of the next release and that they will actually
work well for you.
As you are not the first one who asks for a new feature I have found a
time to write down the guide:
https://wiki.evolveum.com/display/midPoint/Feature+Request
--
Radovan Semancik
Software Architect
evolveum.com
More information about the midPoint
mailing list