[midPoint] Discovering Custom objectClasses
Keith Hazelton
keith.hazelton at wisc.edu
Mon Sep 19 18:58:18 CEST 2016
Message 1 of 2 --Keith
___________________________________
A big thank you to Radovan for this very informative wiki page on auxiliary object classes.
But even with this, I am having trouble getting my OpenDJ Resource configuration to handle eduPerson and eduMember auxiliary object classes on the account structural object class, inetOrgPerson. The full text of the first error result is attached.
Here are the steps I had taken so far:
1) Added an xmlns declaration for edu* object classes and attributes at the top of the resource element
a. xmlns:e=http://id.internet2.edu/namespaces/edu
2) Added the two auxiliary object classes in the schema / generationconstraintselement
a. <!-- khazelton See if the edu* object classes need to be included here -->
b. <generateObjectClass>e:eduPerson</generateObjectClass>
c. <generateObjectClass>e:eduMember</generateObjectClass>
3) Added declaration of eduPerson and eduMember attributes to schema / definition element
a. <!-- -->
b. <!-- khazelton begin supplemental schema defs: auxiliary object classes and attributes for eduPerson and eduMember -->
c. <!-- -->
d. <xsd:complexType name="e:eduPerson">
e. <xsd:annotation>
f. <xsd:appinfo>
g. <ra:resourceObject/>
h. <ra:nativeObjectClass>e:eduPerson</ra:nativeObjectClass>
i. </xsd:appinfo>
j. </xsd:annotation>
k. <xsd:sequence>
l. <xsd:element maxOccurs="unbounded"
m. minOccurs="0"
n. name="eduscopedaffil"
o. type="xsd:string">
p. <xsd:annotation>
q. <xsd:appinfo>
r. <a:displayOrder>120</a:displayOrder>
s. <a:matchingRule xmlns:qn147="http://prism.evolveum.com/xml/ns/public/matching-rule-3">qn147:stringIgnoreCase</a:matchingRule>
t. <ra:nativeAttributeName>eduPersonScopedAffiliation</ra:nativeAttributeName>
u. <ra:frameworkAttributeName>eduscopedaffil</ra:frameworkAttributeName>
v. </xsd:appinfo>
w. </xsd:annotation>
x. </xsd:element>
y. <xsd:element maxOccurs="unbounded"
z. minOccurs="0"
aa. name="eduentitlement"
bb. type="xsd:string">
cc. <xsd:annotation>
dd. <xsd:appinfo>
ee. <a:displayOrder>130</a:displayOrder>
ff. <a:matchingRule xmlns:qn147="http://prism.evolveum.com/xml/ns/public/matching-rule-3">qn147:stringIgnoreCase</a:matchingRule>
gg. <ra:nativeAttributeName>eduPersonEntitlement</ra:nativeAttributeName>
hh. <ra:frameworkAttributeName>eduentitlement</ra:frameworkAttributeName>
ii. </xsd:appinfo>
jj. </xsd:annotation>
kk. </xsd:element>
ll. </xsd:sequence>
i. </xsd:complexType>
mm. <!-- -->
nn. <xsd:complexType name="e:eduMember">
oo. <xsd:annotation>
pp. <xsd:appinfo>
qq. <ra:resourceObject/>
rr. <ra:nativeObjectClass>e:eduMember</ra:nativeObjectClass>
ss. </xsd:appinfo>
tt. </xsd:annotation>
uu. <xsd:sequence>
vv. <xsd:element maxOccurs="unbounded"
ww. minOccurs="0"
xx. name="initials"
yy. type="xsd:string">
zz. <xsd:annotation>
aaa. <xsd:appinfo>
bbb. <a:displayOrder>120</a:displayOrder>
ccc. <a:matchingRule xmlns:qn147="http://prism.evolveum.com/xml/ns/public/matching-rule-3">qn147:stringIgnoreCase</a:matchingRule>
ddd. <ra:nativeAttributeName>isEduMemberOf</ra:nativeAttributeName>
eee. <ra:frameworkAttributeName>edumemberof</ra:frameworkAttributeName>
fff. </xsd:appinfo>
ggg. </xsd:annotation>
hhh. </xsd:element>
iii. </xsd:sequence>
jjj. </xsd:complexType>
kkk. <!-- -->
lll. <!-- khazelton end of supplemental schema defs: auxiliary object classes and attributes for eduPerson and eduMember -->
mmm. <!-- -->
4) Added eduPerson and eduMember to the schemHandling element:
a. <objectClass>ri:inetOrgPerson</objectClass>
b. <auxiliaryObjectClass>e:eduPerson</auxiliaryObjectClass>
c. <auxiliaryObjectClass>e:eduMember</auxiliaryObjectClass>
d. <!-- khazelton added eduPerson and eduMember as auxiliary object classes -->
5) Added eduPerson and eduMember attributes to the schemaHandling element:
a. <!-- eduPerson and eduMember attributes -->
b. <attribute>
c. <c:ref>e:eduPersonAffiliation</c:ref>
d. <displayName>eduPersonAffiliation</displayName>
e. <outbound>
f. <source>
g. <c:path>$user/eduaffil</c:path>
h. </source>
i. </outbound>
j. <inbound>
k. <target>
l. <c:path>$user/eduaffil</c:path>
m. </target>
n. </inbound>
o. </attribute>
p. <attribute>
q. <c:ref>e:eduMemberOf</c:ref>
r. <displayName>eduMemberOf</displayName>
s. <outbound>
t. <source>
u. <c:path>$user/edumemberof</c:path>
v. </source>
w. </outbound>
x. <inbound>
y. <target>
z. <c:path>$user/edumemberof</c:path>
aa. </target>
bb. </inbound>
cc. </attribute>
dd. <!-- end of eduPerson and eduMember attributes -->
Thanks in advance for pointing me in the right direction. --Keith
___________________________________
email & jabber: keith.hazelton at wisc.edu<mailto:keith.hazelton at wisc.edu>
calendar: http://go.wisc.edu/i6zxx0
From: midPoint <midpoint-bounces at lists.evolveum.com> on behalf of Radovan Semancik <radovan.semancik at evolveum.com>
Reply-To: midPoint General Discussion <midpoint at lists.evolveum.com>
Date: Thursday, September 15, 2016 at 05:11
To: midPoint General Discussion <midpoint at lists.evolveum.com>
Subject: Re: [midPoint] Discovering Custom objectClasses
Hi,
I have realized that there is some confusion about the use of auxiliary object classes. Therefore I have added a bit of new documentation to fill the gap:
https://wiki.evolveum.com/display/midPoint/Auxiliary+Object+Classes
--
Radovan Semancik
Software Architect
evolveum.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160919/3eb5a0bc/attachment.htm>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: result (8)
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160919/3eb5a0bc/attachment.ksh>
More information about the midPoint
mailing list