<div dir="ltr">Glad it helped,<div><br></div><div>I am sorry for not fully understanding your situation, I had assumed you had already added the relationship between the user objectClass and your auxiliary objectClass. Once you add that relationship then it automatically adds all those new attributes to all users in your forest.</div><div><br></div><div>I actually like and prefer the way AD does this over OpenDJ and OpenLDAP, I could not find a way to do this in either of the two without manually adding the new objectClass to every user :(</div><div><br></div><div>JASON</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 9, 2015 at 5:25 AM, Pavol Mederly <span dir="ltr"><<a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Anton,<br>
      <br>
      I'm glad to hear that you've worked around the problem. I would
      like to add auxiliary object class support to AD connector (<a href="https://jira.evolveum.com/browse/MID-2439" target="_blank">MID-2439</a>).<span class=""><br>
      <br>
      <blockquote type="cite">  Something else I learned from the
        examples was the use on the namespace ... this was somewhat<br>
          more murky for me before. Is there a good description of their
        use in the docs?<br>
      </blockquote>
      <br></span>
      do you mean this one?<span class=""><br>
      <br>
      <tt>declare namespace </tt><tt><span style="color:rgb(0,0,255)">bshp</span></tt><tt><span style="color:rgb(0,0,255)">="<a href="http://idm.test.local/xml/ns/public/testdomain" target="_blank">http://idm.test.local/xml/ns/public/testdomain</a></span></tt><tt>";</tt>
      <div><tt>$c:user/c:extension/</tt><tt><span style="color:rgb(0,0,255)">bshp</span></tt><tt>:eduPersonAffiliation</tt></div>
      <br></span>
      Well, since midPoint 3.0 we have been trying to get rid of the
      need of specifying explicit namespaces. Currently they are to be
      used only to resolve ambiguities, with slight exceptions (see
      below).<br>
      <br>
      So, the path could be written as<br>
      <br>
      <tt>$user/extension/eduPersonAffiliation</tt><br>
      <br>
      as well.<br>
      <br>
      However, not all places in midPoint currently allow to work with
      no namespaces. E.g. <ref> element in
      schemaHandling/attribute or schemaHandling/association should
      contain the ri: or icfs: namespace. This will be fixed in 3.3 I
      hope. See <a href="https://jira.evolveum.com/browse/MID-2191" target="_blank">MID-2191</a>.<br>
      <br>
      And also, at many places - almost all except for legacy XPath (not
      <path>!) expressions - it is no longer necessary to use
      "declare namespace ..." instruction. It is sufficient to declare
      the namespace in traditional XML way (xmlns:xyz="...") upstream.
      So even in the above example, the bshp: could be declared directly
      via xmlns:bshp="..." e.g. in the root XML element.<br>
      <br>
      Best regards,<br>
      Pavol<br>
      <br>
    </div><div><div class="h5">
    <blockquote type="cite">Hi,<br>
      <br>
        Jason, thank you for the samples. It confirmed that I had indeed
      performed all the steps required.<br>
        This allowed me to read and write custom attributes once the
      auxiliary class was added to the<br>
        user entry.<br>
      <br>
        Something else I learned from the examples was the use on the
      namespace ... this was somewhat<br>
        more murky for me before. Is there a good description of their
      use in the docs?<br>
      <br>
        One thing I did not find however, was how the auxiliary was
      added to the user entry; e.g. the crux<br>
        of my problem. As Pavol suggested, most may have amended the
      base objectClass, or create a<br>
        new person objectClass, and subsequently would not have the
      issue.<br>
      <br>
        As I am not willing to add new attributes to existing OOTB
      objectClasses, I had to find a different<br>
        solution. Don't like this much either, but later discovered
      OpenAM already did this in our environment,<br>
        but you can set a relationship from the user objectClass to the
      auxiliary objectClass in the AD<br>
        schema. This then allows you to manage the custom attributes
      without the need to explicitly add the<br>
        objectClass to the user entry. For reference, this article
      describes how to do this:<br>
        <a href="https://msdn.microsoft.com/en-us/library/bb727064.aspx" target="_blank">https://msdn.microsoft.com/en-us/library/bb727064.aspx</a><br>
      <br>
        Ideally I would like to see proper auxiliary support for AD as
      with OpenDJ, but I can live with the<br>
        solution I have for now.<br>
      <br>
      Regards,<br>
        Anton<br>
      <br>
      <blockquote style="margin-right:0px;margin-left:15px">----Original
        message----<br>
        From : <a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a><br>
        Date : 09/07/2015 - 06:59 (BST)<br>
        To : <a href="mailto:midpoint@lists.evolveum.com" target="_blank">midpoint@lists.evolveum.com</a><br>
        Subject : Re: [midPoint] Active Directory and custom attributes
        & auxiliary objectclass<br>
        <br>
        
        <div>Jason, Anton,<br>
          <br>
          thank you for samples & suggestions for the wiki article.
          I hope I'll be able to update it soon.<br>
          <br>
          Anton, have you succeeded in solving your problem? If not, how
          urgent is it for you?<br>
          <br>
          Pavol<br>
          <br>
        </div>
        <blockquote type="cite">
          <div dir="ltr">Sorry, that bshpSchema was a little outdatedm
            wrong display order/names</div>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On Tue, Jul 7, 2015 at 12:11 PM,
              Jason Everling <span dir="ltr"><<a href="mailto:jeverling@bshp.edu" target="_blank">jeverling@bshp.edu</a>></span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <div dir="ltr">Yes, it is defined against account. I did
                  not modify anything in midPoint. All I did was
                  reference those attributes in an objectTemplate during
                  user creation and modification.
                  <div><br>
                  </div>
                  <div>I added our files along with our AD resource
                    header below</div>
                  <div><br>
                  </div>
                  <div>schema.xml is in the root on the connector server
                    so c:\program files (x86)\Identity
                    Connectors\Connector Server\ and bshpSchema.xsd is
                    in midpoint.home location /schema folder.</div>
                  <div><br>
                  </div>
                  <div>Sampled from top, the blue is what you would need
                    to add then reference that in templates and resource</div>
                  <div><br>
                  </div>
                  <div>
                    <div><objects xmlns="<a href="http://midpoint.evolveum.com/xml/ns/public/common/common-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/common/common-3</a>"</div>
                    <div>         xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>"</div>
                    <div>         xmlns:q="<a href="http://prism.evolveum.com/xml/ns/public/query-3" target="_blank">http://prism.evolveum.com/xml/ns/public/query-3</a>"</div>
                    <div>         xmlns:c="<a href="http://midpoint.evolveum.com/xml/ns/public/common/common-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/common/common-3</a>"</div>
                    <div>         xmlns:mr="<a href="http://prism.evolveum.com/xml/ns/public/matching-rule-3" target="_blank">http://prism.evolveum.com/xml/ns/public/matching-rule-3</a>"</div>
                    <div>         xmlns:xsd="<a href="http://www.w3.org/2001/XMLSchema" target="_blank">http://www.w3.org/2001/XMLSchema</a>"</div>
                    <div>         xmlns:ri="<a href="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/resource/instance-3</a>"</div>
                    <div>         xmlns:icfc="<a href="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/connector-schema-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/connector-schema-3</a>"</div>
                    <div>         xmlns:icfs="<a href="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3</a>"</div>
                    <div>         <font color="#0000ff">xmlns:bshp="<a href="http://idm.test.local/xml/ns/public/testdomain" target="_blank">http://idm.test.local/xml/ns/public/testdomain</a>"</font></div>
                    <div>         xsi:schemaLocation="<a href="http://midpoint.evolveum.com/xml/ns/public/common/common-3" target="_blank">http://midpoint.evolveum.com/xml/ns/public/common/common-3</a>
../../infra/schema/src/main/resources/xml/ns/public/common/common-3.xsd"></div>
                  </div>
                  <div><br>
                  </div>
                  <div>
                    <div>            <icfc:configurationProperties</div>
                    <div>                    xmlns:icfcad="<a href="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/ActiveDirectory.Connector/Org.IdentityConnectors.ActiveDirectory.ActiveDirectoryConnector" target="_blank">http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/ActiveDirectory.Connector/Org.IdentityConnectors.ActiveDirectory.ActiveDirectoryConnector</a>"</div>
                    <div>                    xmlns:ex="<a href="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/ActiveDirectory.Connector/Org.IdentityConnectors.ActiveDirectory.ActiveDirectoryConnector" target="_blank">http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/bundle/ActiveDirectory.Connector/Org.IdentityConnectors.ActiveDirectory.ActiveDirectoryConnector</a>"></div>
                    <div>               
                      <icfcad:DirectoryAdminName>USER</icfcad:DirectoryAdminName></div>
                    <div>               
                      <icfcad:DirectoryAdminPassword></div>
                    <div>                   
                      <clearValue>PASSWORD</clearValue></div>
                    <div>               
                      </icfcad:DirectoryAdminPassword></div>
                    <div>               
                      <icfcad:ObjectClass>User</icfcad:ObjectClass></div>
                    <div>               
                      <icfcad:Container>dc=TEST,dc=LOCAL</icfcad:Container></div>
                    <div>               
<icfcad:CreateHomeDirectory>false</icfcad:CreateHomeDirectory></div>
                    <div>               
                      <icfcad:LDAPHostName>DC1.TEST.LOCAL</icfcad:LDAPHostName></div>
                    <div>               
                      <icfcad:SearchChildDomains>false</icfcad:SearchChildDomains></div>
                    <div>               
                      <icfcad:DomainName>TEST.LOCAL</icfcad:DomainName></div>
                    <div>               
<icfcad:SyncGlobalCatalogServer>DC1.TEST.LOCAL</icfcad:SyncGlobalCatalogServer></div>
                    <div>               
<icfcad:SyncDomainController>DC1.TEST.LOCAL</icfcad:SyncDomainController></div>
                    <div><font color="#0000ff">                <!--
                        Extend Schema (reference to file on Domain
                        Controller) --></font></div>
                    <div><font color="#0000ff">               
<ex:ObjectClassesExtensionFile>schema.xml</ex:ObjectClassesExtensionFile></font></div>
                    <div>           
                      </icfc:configurationProperties></div>
                  </div>
                  <div><br>
                  </div>
                  <div>Then in objectTemplate mappings or resource
                    mappings define each attribute</div>
                  <div><br>
                  </div>
                  <div>
                    <div>                <attribute></div>
                    <div>                   
                      <ref>ri:eduPersonAffiliation</ref></div>
                    <div>                    <outbound></div>
                    <div>                        <source></div>
                    <div>                            <path></div>
                    <div>                                declare
                      namespace <span style="color:rgb(0,0,255)">bshp</span><span style="color:rgb(0,0,255)">="<a href="http://idm.test.local/xml/ns/public/testdomain" target="_blank">http://idm.test.local/xml/ns/public/testdomain</a></span>";</div>
                    <div>                               
                      $c:user/c:extension/<span style="color:rgb(0,0,255)">bshp</span>:eduPersonAffiliation</div>
                    <span>
                      <div>                            </path></div>
                      <div>                        </source></div>
                      <div>                    </outbound></div>
                      <div>                    <inbound></div>
                      <div>                        <target></div>
                      <div>                            <path></div>
                    </span>
                    <div>                                declare
                      namespace <span style="color:rgb(0,0,255)">bshp</span><span style="color:rgb(0,0,255)">="<a href="http://idm.test.local/xml/ns/public/testdomain" target="_blank">http://idm.test.local/xml/ns/public/testdomain</a></span>";</div>
                    <div>                               
                      $c:user/c:extension/<span style="color:rgb(0,0,255)">bshp</span>:eduPersonAffiliation</div>
                    <div>                            </path></div>
                    <div>                        </target></div>
                    <div>                    </inbound></div>
                    <div>                </attribute></div>
                  </div>
                  <span><font color="#888888">
                      <div><br>
                      </div>
                      <div>JASON</div>
                    </font></span></div>
                <div>
                  <div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Tue, Jul 7, 2015 at
                        9:13 AM, <span dir="ltr"><<a href="mailto:midpoint@mybtinternet.com" target="_blank">midpoint@mybtinternet.com</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
                          <br>
                            I second this ... and did the same.<br>
                          <br>
                          Regards,<br>
                            Anton<br>
                          <br>
                          <blockquote style="margin-right:0px;margin-left:15px">----Original

                            message----<br>
                            From : <a href="mailto:jeverling@bshp.edu" target="_blank">jeverling@bshp.edu</a><br>
                            Date : 06/07/2015 - 17:26 (BST)
                            <div>
                              <div><br>
                                To : <a href="mailto:midpoint@lists.evolveum.com" target="_blank">midpoint@lists.evolveum.com</a><br>
                                Subject : Re: [midPoint] Active
                                Directory and custom attributes &
                                auxiliary objectclass<br>
                                <br>
                                <div dir="ltr"><font color="#000000" face="arial, helvetica, sans-serif">There

                                    is also some parts that should be
                                    added to that wiki page,</font>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><br>
                                    </font></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif">After creating the
                                      schema.xml and adding to your
                                      server with the Connector Server
                                      running you have to create an
                                      extension file for midpoint to
                                      match that one and place in
                                      midpoint.home schema like these (<a href="https://github.com/Evolveum/midpoint/tree/master/samples/schema" target="_blank">https://github.com/Evolveum/midpoint/tree/master/samples/schema</a>)
                                      so that midPoint can read/write to
                                      those new objectClass attributes</font><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif">.</span></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><br>
                                    </font></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif">After those are added
                                      you have to add a new declaration
                                      to your resource xml like so</font></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><br>
                                    </font></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap">xmlns:my=</span><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span>"</span><a href="http://myself.me/schemas/whatever" target="_blank">http://myself.me/schemas/whatever</a><span>"</span></span></font></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif"><br>
                                        </font></span></span></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><span style="line-height:16.7999992370605px;white-space:pre-wrap">Then

                                        after you have to use that in
                                        each custom attribute mapping
                                        like so</span> </font></div>
                                  <div><font color="#000000" face="arial, helvetica,
                                      sans-serif"><span style="line-height:16.7999992370605px;white-space:pre-wrap">
                                        <attribute>
                                        <ref>ri:customAttribute</ref>
                                        <outbound> <source>
                                        <path> declare namespace </span><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap">my=</span><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span>"</span><a href="http://myself.me/schemas/whatever" target="_blank">http://myself.me/schemas/whatever</a><span>"</span></span><span style="line-height:16.7999992370605px;white-space:pre-wrap">;
                                        $c:user/c:extension/my:</span><span style="line-height:16.7999992370605px;white-space:pre-wrap">customAttribute</span><span style="line-height:16.7999992370605px;white-space:pre-wrap">
                                        </path> </source>
                                        </outbound>
                                        <inbound> <target>
                                        <path> declare namespace </span><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap">my=</span><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span>"</span><a href="http://myself.me/schemas/whatever" target="_blank">http://myself.me/schemas/whatever</a><span>"</span></span><span style="line-height:16.7999992370605px;white-space:pre-wrap">;
                                        $c:user/c:extension/my:</span><span style="line-height:16.7999992370605px;white-space:pre-wrap">customAttribute</span><span style="line-height:16.7999992370605px;white-space:pre-wrap">
                                        </path> </target>
                                        </inbound>
                                        </attribute></span><br>
                                    </font></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif"><br>
                                        </font></span></span></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif">After
                                          you add those you can
                                          read/write to any attribute
                                          and also create new users with
                                          those new attributes.</font></span></span></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif"><br>
                                        </font></span></span></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif">When I
                                          first setup our AD resource it
                                          took me a little while after
                                          looking at the samples,
                                          something like this I think
                                          should also be added/mentioned
                                          to that wiki page</font></span></span></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif"><br>
                                        </font></span></span></div>
                                  <div><span style="font-size:12px;line-height:16.7999992370605px;white-space:pre-wrap"><span><font color="#000000" face="arial,
                                          helvetica, sans-serif">JASON</font></span></span></div>
                                  <div><span><span><br>
                                      </span></span></div>
                                </div>
                                <div class="gmail_extra"><br>
                                  <div class="gmail_quote">On Mon, Jul
                                    6, 2015 at 11:03 AM, Jason Everling
                                    <span dir="ltr"><<a href="mailto:jeverling@bshp.edu" target="_blank">jeverling@bshp.edu</a>></span>
                                    wrote:<br>
                                    <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                      <div dir="ltr">I am using the AD
                                        Connector with additional custom
                                        auxiliary object classes ( I
                                        have 4 additional classes ) and
                                        it works fine when I create new
                                        users in the GUI or from any
                                        other resource and is correctly
                                        created in AD.
                                        <div><br>
                                        </div>
                                        <div>My Object Classes managed
                                          in midPoint using the
                                          extension functionality<br>
                                        </div>
                                        <div><br>
                                        </div>
                                        <div>bshpGroup</div>
                                        <div>bshpOrg</div>
                                        <div>bshpPerson</div>
                                        <div>eduPerson</div>
                                        <div><br>
                                        </div>
                                        <div>All of the above in AD
                                          Schema are Class Type:
                                          Auxiliary with Parent "top"</div>
                                        <div><br>
                                        </div>
                                        <div>Is this not the same?</div>
                                        <div><br>
                                        </div>
                                        <div>JASON</div>
                                      </div>
                                      <div class="gmail_extra">
                                        <div>
                                          <div><br>
                                            <div class="gmail_quote">On
                                              Mon, Jul 6, 2015 at 9:05
                                              AM, Pavol Mederly <span dir="ltr"><<a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a>></span>
                                              wrote:<br>
                                              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                <div bgcolor="#FFFFFF" text="#000000">
                                                  <div>Hello Anton,<br>
                                                    <br>
                                                    now I perhaps
                                                    understand your
                                                    situation a little
                                                    bit better. Because
                                                    what I was used to
                                                    see was that people
                                                    extended the "basic"
                                                    AD user object with
                                                    custom attributes,
                                                    without introducing
                                                    separate
                                                    objectClasses.
                                                    Neither did I; and
                                                    although I've seen
                                                    that you had
                                                    mentioned using
                                                    auxiliary object
                                                    classes, I have no
                                                    experiences with
                                                    them in Active
                                                    Directory.<span><br>
                                                      <br>
                                                      <blockquote type="cite">I
                                                        was hoping it is
                                                        possible to
                                                        override the
                                                        objectClasses in
                                                        the schema
                                                        handling, but<br>
                                                        can't find an
                                                        example. </blockquote>
                                                    </span> If you mean
                                                    adding auxiliary
                                                    object classes, then
                                                    a sample is e.g. in
                                                    <a href="https://github.com/Evolveum/midpoint/blob/master/testing/story/src/test/resources/unix/resource-opendj.xml" target="_blank">testing\story\src\test\resources\unix\resource-opendj.xml</a>
                                                    file. However,
                                                    unfortunately, this
                                                    is a feature of new
                                                    LDAP connector. The
                                                    ActiveDirectory
                                                    connector does not
                                                    support auxiliary
                                                    object classes yet.<span><br>
                                                      <br>
                                                      <blockquote type="cite">The
                                                        other option, I
                                                        guess, would be
                                                        to use the the
                                                        custom<br>
                                                        schema feature
                                                        of
                                                        ObjectClassesExtensionFile,
                                                        but I have a few
                                                        questions on
                                                        this:<br>
                                                        1) Is the
                                                        objectClass type
                                                        always Tenant?<br>
                                                      </blockquote>
                                                    </span> No. The new
                                                    object class can be
                                                    anything. "Tenant"
                                                    was an object class
                                                    that was used in a
                                                    particular
                                                    customer's setting.
                                                    <br>
                                                    <span> <br>
                                                      <blockquote type="cite"> 2)
                                                        Does this add an
                                                        objectClass in
                                                        addition of the
                                                        user class or
                                                        instead of the
                                                        user class?<br>
                                                      </blockquote>
                                                    </span> In addition
                                                    to the user class.
                                                    The existing
                                                    AccountObjectClass
                                                    will be left intact.
                                                    New object class
                                                    will be seen in
                                                    midPoint as Custom<b>someName</b>ObjectClass,

                                                    if the object class
                                                    will be defined as
                                                    "someName" in the
                                                    connector.<br>
                                                    <br>
                                                    Unfortunately, the
                                                    connector will not
                                                    recognize such a
                                                    class to be an
                                                    extension of the
                                                    AccountObjectClass
                                                    and will not apply
                                                    the standard
                                                    functionality
                                                    (written in C#) to
                                                    manage objects of
                                                    this class. <br>
                                                    <br>
                                                    So, if you would
                                                    like to use it to
                                                    manage your users,
                                                    you would need
                                                    either<br>
                                                    1) to implement
                                                    everything in
                                                    PowerShell, which is
                                                    quite a lot of work
                                                    (given that you
                                                    would have to
                                                    implement e.g.
                                                    exception handling,
                                                    and so on),<br>
                                                    2) or to do some
                                                    hacking with custom
                                                    scripts, like
                                                    calling original AD
                                                    connector to do its
                                                    part of the work and
                                                    then manage specific
                                                    attributes using
                                                    PowerShell.<br>
                                                    <br>
                                                    Neither of this
                                                    seems to me a "clean
                                                    solution".<br>
                                                    <br>
                                                    Overall, we plan to
                                                    enhance Active
                                                    Directory connector
                                                    with some of the new
                                                    features Radovan has
                                                    recently implemented
                                                    for LDAP one.
                                                    Auxiliary object
                                                    class support is
                                                    among them. But I
                                                    cannot say when that
                                                    would be done. Maybe
                                                    you could contact
                                                    Igor Farinic for
                                                    options there.<span><br>
                                                      <br>
                                                      <blockquote type="cite"> 3)
                                                        How / when are
                                                        the custom
                                                        scripts called?<br>
                                                      </blockquote>
                                                    </span> Custom
                                                    scripts feature is
                                                    currently only
                                                    available in
                                                    Exchange connector,
                                                    which is a superset
                                                    of AD connector
                                                    useful mainly if you
                                                    want to manage also
                                                    Exchange objects.
                                                    (But I think nothing
                                                    precludes the use of
                                                    it in AD-only
                                                    settings; I hope it
                                                    no longer depends on
                                                    the existence of
                                                    specific Exchange
                                                    run time libraries.)
                                                    These scripts are
                                                    called before, after
                                                    and/or instead of
                                                    "main" C# code. They
                                                    can be configured
                                                    with regards to
                                                    object class and
                                                    operation. E.g. you
                                                    can define a
                                                    "Before" script for
                                                    each "Create"
                                                    operation for
                                                    "AddressBookList"
                                                    object class. Or, if
                                                    you have a custom
                                                    object class, you
                                                    have to define all
                                                    the operations as
                                                    PowerShell custom
                                                    scripts.<br>
                                                    <br>
                                                    This is an example
                                                    of definition of a
                                                    custom script:<br>
                                                    <tt><br>
                                                    </tt><tt><?xml
                                                      version="1.0"?></tt><tt><br>
                                                    </tt><tt><ScriptingInfo></tt><tt><br>
                                                    </tt><tt><br>
                                                    </tt><tt> 
                                                      <OperationInfo></tt><tt><br>
                                                    </tt><tt>   
                                                      <Type>Create</Type></tt><tt><br>
                                                    </tt><tt>   
                                                      <AfterMain></tt><tt><br>
                                                    </tt><tt>     
                                                      <ObjectType>OfflineAddressBook</ObjectType></tt><tt><br>
                                                    </tt><tt>     
                                                      <File>after-create-OAB.ps1</File></tt><tt><br>
                                                    </tt><tt>   
                                                      </AfterMain></tt><tt><br>
                                                    </tt><tt> 
                                                      </OperationInfo></tt><tt><br>
                                                    </tt><tt><br>
                                                    </tt><tt></ScriptingInfo></tt><br>
                                                    <br>
                                                    It says that after
                                                    executing main C#
                                                    routine for Create
                                                    operation for
                                                    OfflineAddressBook
                                                    object, the
                                                    after-create-OAB.ps1
                                                    file (stored in the
                                                    ConnectorServer
                                                    directory) will be
                                                    executed.<br>
                                                    Such a script can
                                                    expect one
                                                    parameter, called
                                                    "ctx" (context),
                                                    pointing to the
                                                    following data
                                                    structure:<br>
                                                    <br>
                                                    <tt>public class
                                                      Context {</tt><tt><br>
                                                    </tt><tt>    public
                                                      Connector
                                                      Connector { get;
                                                      set; }</tt><tt><br>
                                                    </tt><tt>    public
                                                      ActiveDirectoryConfiguration

                                                      ConnectorConfiguration

                                                      { get; set; }</tt><tt><br>
                                                    </tt><tt>    public
                                                      string
                                                      OperationName {
                                                      get; set; }</tt><tt><br>
                                                    </tt><tt>    public
                                                      Scripting.Position
                                                      Position { get;
                                                      set; }</tt><tt><br>
                                                    </tt><tt>    public
                                                      ObjectClass
                                                      ObjectClass { get;
                                                      set; }</tt><tt><br>
                                                    </tt><tt>}</tt><br>
                                                    <br>
                                                    (There are specific
                                                    contexts for
                                                    individual
                                                    operations, see <a href="https://github.com/Evolveum/openicf/blob/master/connectors/dotnet/ActiveDirectoryConnector/Scripting.cs" target="_blank">https://github.com/Evolveum/openicf/blob/master/connectors/dotnet/ActiveDirectoryConnector/Scripting.cs</a><span><br>
                                                      <blockquote type="cite"> 4)
                                                        Is there
                                                        examples on how
                                                        to use the
                                                        custom schema
                                                        feature?</blockquote>
                                                    </span> Well, the
                                                    documentation of
                                                    these new features
                                                    is still in its
                                                    beginnings. I'm
                                                    afraid the wiki
                                                    article I mentioned
                                                    is the only piece
                                                    available :(<br>
                                                    Maybe someone on
                                                    this list could
                                                    provide some
                                                    examples...<br>
                                                    <br>
                                                    Overall, the most
                                                    clean way (as I
                                                    currently see it) is
                                                    to add support for
                                                    auxiliary object
                                                    classes to the
                                                    standard AD/Exchange
                                                    connector.<br>
                                                    <br>
                                                    Best regards,<br>
                                                    Pavol
                                                    <div>
                                                      <div><br>
                                                        <br>
                                                        <br>
                                                        On 6. 7. 2015
                                                        14:51, ANTON
                                                        OPPERMAN wrote:<br>
                                                      </div>
                                                    </div>
                                                  </div>
                                                  <div>
                                                    <div>
                                                      <blockquote type="cite">Thx
                                                        Pavol! That is
                                                        getting me very
                                                        close ... <br>
                                                        <br>
                                                        Took a while to
                                                        figure out just
                                                        how to do it;
                                                        the
                                                        documentation
                                                        can be clearer;
                                                        e.g. where<br>
                                                        the value of
                                                        ObjectClassesExtensionFile
                                                        is set and which
                                                        system it should
                                                        be stored on. I<br>
                                                        saw a ref in the
                                                        UI that seemed
                                                        to allow for
                                                        this, but this
                                                        didn't work for
                                                        me.<br>
                                                        <br>
                                                        I have defined
                                                        my custom schema
                                                        entries in the
                                                        AccountObjectClass
                                                        section and can<br>
                                                        retrieve and set
                                                        values if my
                                                        auxiliary
                                                        objectClass is
                                                        present on the
                                                        user. Obviously<br>
                                                        creating an
                                                        account with
                                                        schema extension
                                                        fails as newly
                                                        created users
                                                        will not have<br>
                                                        the auxiliary
                                                        objectClass
                                                        (yet).<br>
                                                        <br>
                                                        I was hoping it
                                                        is possible to
                                                        override the
                                                        objectClasses in
                                                        the schema
                                                        handling, but<br>
                                                        can't find an
                                                        example. The
                                                        other option, I
                                                        guess, would be
                                                        to use the the
                                                        custom<br>
                                                        schema feature
                                                        of
                                                        ObjectClassesExtensionFile,
                                                        but I have a few
                                                        questions on
                                                        this:<br>
                                                        1) Is the
                                                        objectClass type
                                                        always Tenant?<br>
                                                        2) Does this add
                                                        an objectClass
                                                        in addition of
                                                        the user class
                                                        or instead of
                                                        the user class?<br>
                                                        3) How / when
                                                        are the custom
                                                        scripts called?<br>
                                                        4) Is there
                                                        examples on how
                                                        to use the
                                                        custom schema
                                                        feature?<br>
                                                        <br>
                                                        Thx!<br>
                                                        <br>
                                                        Regards,<br>
                                                          Anton<br>
                                                        <br>
                                                        <br>
                                                        <blockquote style="margin-right:0px;margin-left:15px">----Original


                                                          message----<br>
                                                          From : <a href="mailto:mederly@evolveum.com" target="_blank">mederly@evolveum.com</a><br>
                                                          Date :
                                                          02/07/2015 -
                                                          15:17 (BST)<br>
                                                          To : <a href="mailto:midpoint@lists.evolveum.com" target="_blank">midpoint@lists.evolveum.com</a><br>
                                                          Subject : Re:
                                                          [midPoint]
                                                          Active
                                                          Directory and
                                                          custom
                                                          attributes
                                                          &
                                                          auxiliary
                                                          objectclass<br>
                                                          <br>
                                                          <div>Hello
                                                          Anton,<br>
                                                          <br>
                                                          the AD
                                                          connector
                                                          schema can now
                                                          be extended
                                                          via
                                                          configuration.
                                                          Please see <a href="https://wiki.evolveum.com/display/midPoint/Extending+AD+and+Exchange+Connector+Schema+HOWTO" target="_blank">https://wiki.evolveum.com/display/midPoint/Extending+AD+and+Exchange+Connector+Schema+HOWTO</a>
                                                          for a simple
                                                          HOWTO.<br>
                                                          <br>
                                                          However,
                                                          contrary to
                                                          what's written
                                                          there, I would
                                                          recommend
                                                          using the
                                                          latest
                                                          versions of
                                                          AD/Exchange
                                                          connector and
                                                          ConnId:<br>
                                                          - Exchange
                                                          Connector: 
                                                          1.4.1.20283 (<a href="https://wiki.evolveum.com/display/midPoint/Exchange+Connector" target="_blank">https://wiki.evolveum.com/display/midPoint/Exchange+Connector</a>)<br>
                                                          - Connector
                                                          Server:
                                                          1.4.0.84 (<a href="https://wiki.evolveum.com/display/midPoint/.NET+Connector+Server" target="_blank">https://wiki.evolveum.com/display/midPoint/.NET+Connector+Server</a>)<br>
                                                          <br>
                                                          Also please
                                                          note that
                                                          auxiliary
                                                          object classes
                                                          are not
                                                          supported for
                                                          AD. What you
                                                          need to do is
                                                          to extend the
                                                          basic
                                                          AccountObjectClass
                                                          (or object
                                                          class for
                                                          group/OU) with
                                                          your custom
                                                          attributes.<br>
                                                          <br>
                                                          Best regards,<br>
                                                          Pavol<br>
                                                          <br>
                                                          On 2. 7. 2015
                                                          16:10, <a href="mailto:midpoint@mybtinternet.com" target="_blank">midpoint@mybtinternet.com</a>
                                                          wrote:<br>
                                                          </div>
                                                          <blockquote type="cite">Hi,<br>
                                                          <br>
                                                            We intend
                                                          managing a
                                                          number of
                                                          different
                                                          directories
                                                          with similar
                                                          data but for
                                                          populations of
                                                          users that<br>
                                                            must be
                                                          stored
                                                          separately. We
                                                          also have a
                                                          fairly
                                                          extensive
                                                          number of
                                                          custom
                                                          attributes
                                                          grouped in an<br>
                                                            auxiliary
                                                          objectClass.<br>
                                                          <br>
                                                            For OpenDJ,
                                                          I was able to
                                                          setup the
                                                          resources and
                                                          am able to
                                                          manage all the
                                                          custom
                                                          attributes;
                                                          e.g.<br>
                                                            the
                                                          connector
                                                          allows
                                                          definition of
                                                          which classes
                                                          to use.<br>
                                                          <br>
                                                            Now trying
                                                          to replicate
                                                          with AD and
                                                          have basic AD
                                                          provisioning
                                                          working;
                                                          however, I
                                                          don't see
                                                          similar<br>
                                                            options for
                                                          defining
                                                          additional
                                                          objectClasses
                                                          to use. Have
                                                          looked in
                                                          Jira; all
                                                          references
                                                          suggest
                                                          modifying<br>
                                                           
                                                          objectClasses.xml
                                                          and building a
                                                          custom
                                                          instance of
                                                          the connector.
                                                          I don't see
                                                          how the custom<br>
                                                            objectClass
                                                          is referenced.
                                                          Have I missed
                                                          something?<br>
                                                          <br>
                                                            As for
                                                          building a
                                                          custom
                                                          instance of
                                                          the
                                                          connector;  I
                                                          would prefer
                                                          not to do that
                                                          as:<br>
                                                          <span>    </span>1)

                                                          we could run
                                                          into issues
                                                          that are
                                                          related to our
                                                          attempt of
                                                          implementing<br>
                                                              2) each
                                                          time there is
                                                          a new fix, we
                                                          would need to
                                                          go and
                                                          retro-fit and
                                                          rebuild<br>
                                                              3) each
                                                          time we extend
                                                          the schema, we
                                                          need to go and
                                                          ammend and
                                                          rebuild<br>
                                                          <br>
                                                            While I may
                                                          be able to
                                                          build a custom
                                                          instance, once
                                                          this is
                                                          handed-over to
                                                          business-as-usual,

                                                          they<br>
                                                            most
                                                          certainly will
                                                          not have the
                                                          skills to
                                                          support this.<br>
                                                          <br>
                                                            Is this
                                                          still the
                                                          process to
                                                          follow at this
                                                          time, or has
                                                          this changed?
                                                          If not
                                                          changed, is
                                                          there a plan
                                                          to<br>
                                                            make the AD
                                                          adapter
                                                          configurable
                                                          ito custom
                                                          schema (like
                                                          OpenDJ)?
                                                          Time-frame?<br>
                                                          <br>
                                                            Thx<br>
                                                          <br>
                                                          Regards,<br>
                                                            Anton<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <fieldset></fieldset>
                                                          <br>
                                                          <pre>_______________________________________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
                                                          </blockquote>
                                                          <br>
                                                          <br>
                                                        </blockquote>
                                                        <br>
                                                        <br>
                                                        <fieldset></fieldset>
                                                        <br>
                                                        <pre>_______________________________________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
                                                      </blockquote>
                                                      <br>
                                                    </div>
                                                  </div>
                                                </div>
                                                <br>
_______________________________________________<br>
                                                midPoint mailing list<br>
                                                <a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a><br>
                                                <a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br>
                                                <br>
                                              </blockquote>
                                            </div>
                                            <br>
                                            <br clear="all">
                                            <div><br>
                                            </div>
                                          </div>
                                        </div>
                                        <span><font color="#888888">-- <br>
                                            <div>
                                              <div dir="ltr">JASON</div>
                                            </div>
                                          </font></span></div>
                                    </blockquote>
                                  </div>
                                  <br>
                                  <br clear="all">
                                  <div><br>
                                  </div>
                                  -- <br>
                                  <div>
                                    <div dir="ltr">JASON</div>
                                  </div>
                                </div>
                                <br>
                              </div>
                            </div>
                            <font size="2"><br>
                              <br>
                              <span>CONFIDENTIALITY NOTICE:<br>
                                This e-mail together with any
                                attachments is proprietary and
                                confidential; intended for only the
                                recipient(s) named above and may contain
                                information that is privileged. You
                                should not retain, copy or use this
                                e-mail or any attachments for any
                                purpose, or disclose all or any part of
                                the contents to any person. Any views or
                                opinions expressed in this e-mail are
                                those of the author and do not represent
                                those of the Baptist School of Health
                                Professions. If you have received this
                                e-mail in error, or are not the named
                                recipient(s), you are hereby notified
                                that any review, dissemination,
                                distribution or copying of this
                                communication is prohibited by the
                                sender and to do so might constitute a
                                violation of the Electronic
                                Communications Privacy Act, 18 U.S.C.
                                section 2510-2521. Please immediately
                                notify the sender and delete this e-mail
                                and any attachments from your computer.
                              </span></font><br>
                            <br>
                          </blockquote>
                          <br>
                          <br>
_______________________________________________<br>
                          midPoint mailing list<br>
                          <a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a><br>
                          <a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br>
                          <br>
                        </blockquote>
                      </div>
                      <br>
                      <br clear="all">
                      <div><br>
                      </div>
                      -- <br>
                      <div>
                        <div dir="ltr">JASON</div>
                      </div>
                    </div>
                  </div>
                </div>
              </blockquote>
            </div>
            <br>
            <br clear="all">
            <div><br>
            </div>
            -- <br>
            <div>
              <div dir="ltr">JASON</div>
            </div>
          </div>
          <br>
          <font size="2"><br>
            <br>
            CONFIDENTIALITY NOTICE:<br>
            This e-mail together with any attachments is proprietary and
            confidential; intended for only the recipient(s) named above
            and may contain information that is privileged. You should
            not retain, copy or use this e-mail or any attachments for
            any purpose, or disclose all or any part of the contents to
            any person. Any views or opinions expressed in this e-mail
            are those of the author and do not represent those of the
            Baptist School of Health Professions. If you have received
            this e-mail in error, or are not the named recipient(s), you
            are hereby notified that any review, dissemination,
            distribution or copying of this communication is prohibited
            by the sender and to do so might constitute a violation of
            the Electronic Communications Privacy Act, 18 U.S.C. section
            2510-2521. Please immediately notify the sender and delete
            this e-mail and any attachments from your computer. </font><br>
          <br>
          <fieldset></fieldset>
          <br>
          <pre>_______________________________________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
        </blockquote>
        <br>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
midPoint mailing list
<a href="mailto:midPoint@lists.evolveum.com" target="_blank">midPoint@lists.evolveum.com</a>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
midPoint mailing list<br>
<a href="mailto:midPoint@lists.evolveum.com">midPoint@lists.evolveum.com</a><br>
<a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">JASON</div></div>
</div>

<br>
<font size="2"><br><br>CONFIDENTIALITY NOTICE:<br>This e-mail together with any attachments is proprietary and confidential; intended for only the recipient(s) named above and may contain information that is privileged. You should not retain, copy or use this e-mail or any attachments for any purpose, or disclose all or any part of the contents to any person. Any views or opinions expressed in this e-mail are those of the author and do not represent those of the Baptist School of Health Professions. If you have received this e-mail in error, or are not the named recipient(s), you are hereby notified that any review, dissemination, distribution or copying of this communication is prohibited by the sender and to do so might constitute a violation of the Electronic Communications Privacy Act, 18 U.S.C. section 2510-2521. Please immediately notify the sender and delete this e-mail and any attachments from your computer. </font><br>