[midPoint] field manager in AD
Ivan Noris
ivan.noris at evolveum.com
Wed May 6 13:21:54 CEST 2020
Hi Chris,
I understood that the original poster was asking about inbound mapping.
Which may or may not be true.
But the trick for outbound you are using is also nice. I remember to use
something similar to populate AD's (or edirectory's?) "managerDn"
attribute. I think I was actually having the manager relation in
midPoint already, but the midpoint.getLinkedShadow method was used for sure.
Best regards,
Ivan
On 6. 5. 2020 12:27, Chris Woods wrote:
> Hi Anton, Ivan,
>
> we have a similar scenario with ServiceNow. The "Manager" field in
> ServiceNow is the UUID of an existing ServiceNow User (in the AD the
> manager field is the DN of an existing user).
>
> This is our outbound mapping for the manager field in ServiceNow:
>
> <attribute id="103">
> <c:ref
> xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3">ri:manager</c:ref>
> <tolerant>false</tolerant>
> <exclusiveStrong>false</exclusiveStrong>
> <outbound>
> <name>ServiceNow Manager Outbound Mapping</name>
> <authoritative>true</authoritative>
> <exclusive>false</exclusive>
> <strength>normal</strength>
> <source>
>
> <c:path>$focus/extension/rsManager1stLevel</c:path>
> </source>
> <expression>
> <script
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:c="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
> xsi:type="c:ScriptExpressionEvaluatorType">
> <code>import
> com.evolveum.midpoint.xml.ns._public.common.common_3.UserType
>
> // Get Manager object and then obtain
> their servicenow dev account uid
>
> UserType manager =
> midpoint.searchObjectByName(UserType.class, rsManager1stLevel);
> return midpoint.getLinkedShadow(manager,
> "rs-resource-servicenow-dev", true)?.getPrimaryIdentifierValue();
> </code>
> </script>
> </expression>
> </outbound>
> </attribute>
>
> in this case we are using an extended attribute rsManager1stLevel.
> This is, however, only a workaround until our org tree is complete.
> Then you can use midpoint.getManagers(Usertype usertype) this will
> return you UserType objects so the additional search will be
> unnecessary. usertype would be the focus object. You would then have
> to select which manager you want to use (midpoint.getManagers returns
> a collection of UserType objects as a user may be assigned to multiple
> organisations with manager.
>
> The interesting line is the return line as this would get you the DN
> from your AD resource (in the same way we get the UUID of the
> ServiceNow user).
>
> Regards,
> Chris
>
> On 2020-05-06 11:29, Ivan Noris wrote:
>> Hi,
>>
>> if I understand correctly, you would like to import the information
>> about user's manager from AD.
>>
>> You are right there is no attribute for this in midPoint. This is by
>> design as the organization structure defines, who is the manager.
>>
>> Example:
>>
>> User "employee1" in midPoint is in organization Top -> Sales Division
>> -> Sales Team 1
>>
>> In organization Sales Team 1 there is another user "manager1" assigned
>> to Sales Team 1 as manager (this is a relation of the assignment).
>>
>> That makes user "manager1" manager of "employee1". It can be used for:
>>
>>
>> - displaying in the org. structure
>>
>> - delegated administration: the manager can do something with his/her
>> subordinate employees
>>
>> - approvals: the manager can approve requests of his/her subordinate
>> employees
>>
>> There is no default attribute in UserType that would contain the
>> information "who is my manager". It is always computed by midPoint and
>> you can use methods in midpoint scripting library, e.g.
>>
>> https://www.evolveum.com/downloads/midpoint/4.1/midpoint-api-4.1-javadoc/com/evolveum/midpoint/model/api/expr/MidpointFunctions.html#getManagersOidsExceptUser(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)
>>
>>
>>
>> If you don't want to use it, you can define an extension attribute and
>> populate the manager from AD there. But then you would lose the
>> default functionality for deriving the managers from organizational
>> structure as described above.
>>
>> Best regards,
>>
>> Ivan
>> On 6. 5. 2020 11:14, Щенев Антон Вячеславович
>> wrote:
>>
>>> Hi,
>>>
>>> The user in the AD has a field its leader(manager). In midPoint,
>>> such a field was not found in Users. Of course, you can use any of
>>> the unoccupied, but as provided by the system?
>>>
>>> С уважением,
>>>
>>> Щенев Антон Вячеславович
>>>
>>> _______________________________________________
>>> midPoint mailing list
>>> midPoint at lists.evolveum.com
>>> https://lists.evolveum.com/mailman/listinfo/midpoint
>>
>> --
>> Ivan Noris
>> Senior Identity Engineer
>> evolveum.com
>> _______________________________________________
>> midPoint mailing list
>> midPoint at lists.evolveum.com
>> https://lists.evolveum.com/mailman/listinfo/midpoint
--
Ivan Noris
Senior Identity Engineer
evolveum.com
More information about the midPoint
mailing list