Hi Karl

Thanks for the fast response. I was little bit confused about the domain 
concept because the Elasticsearch plugin used the  @ sign for separating MCF 
auth domains from user names, which actually looked to me as if the MCF domain 
was the same as the AD domain.

I'm already using a version that I have patched myself. However, your solution 
looks much better. Will it be part of an official release in future?

Thanks
regards
Silvio


On 15.05.2016 19:06, Karl Wright wrote:
Ah, it must be the ES-1.5 plugin you are using. That is not written by me; it was a contribution. And it looks like the author of the plugin used the "@" as a way of separating the user name and MCF authorization domain, as follows:

>>>>>>
      String[] authenticatedUserNameAndDomain = buffer.split("@", 2);
<<<<<<

Obviously this is completely at odds with the need to include the AD domain in the user name. I will bet also that nobody has used this with an actual MCF domain, so I'm just going to change the separator character from "@" to ":" in MCFAuthorizer.java, as follows:

>>>>>>
      String[] authenticatedUserNameAndDomain = buffer.split(":", 2);
<<<<<<

Once again, JIRA is down and I cannot create the proper ticket for this, but I will do so as soon as it is back up.

Thanks,
Karl



On Sun, May 15, 2016 at 12:41 PM, Karl Wright <[email protected] <mailto:[email protected]>> wrote:

    Hi Silvio,

    The "domain" argument to the authority service does not represent
    an Active Directory domain.  It represents an MCF authorization
    domain, which is described in the book and also in the other
    documentation.  This cannot be used as an active directory domain.

    >>>>>>
    Unfortuanately, the elasticsearch plugin for Apache ManifoldCF
    authentication service does not allow one to hand over a username
    in the form of the user principal name, [email protected]
    <mailto:[email protected]>. This is due to the fact that the @
    sign is not allowed to be encoded in the user name.
    <<<<<<

    That's pretty surprising; the plugin has no character limits I am
    aware of for user names, and I wrote it.  Perhaps you simply need
    to use proper URL encoding practices in forming the URL you are
    invoking ElasticSearch with?

    Karl


    On Sun, May 15, 2016 at 11:39 AM, Silvio Meier
    <[email protected]
    <mailto:[email protected]>> wrote:

        Hi Apache ManifoldCF user list
        I’m experimenting with Apache ManifoldCF 2.3, Elasticsearch
        1.74 and the corresponding Elasticsearch plugin (v 2.0.1)
        which I use to index the network Windows shares of our company.
        I set up Apache Manifold using authorization services together
        with an Active Directory.
        Using the Apache ManifoldCF authentication services with
        separated domain name and user name does somehow not work for
        our active directory configuration, so the when the following
        service call is made
        
http://localhost:8081/mcf-authority-service/UserACLs?username=msi&domain=ourdomain.com
        , the authentication service does not return any ACL list. I
        tried to do different combinations of domain names or netbios
        names together with user names. Or just username without
        domain name. No success!
        However, the only thing that is working is when calling the
        authorization service with
        
http://localhost:8081/mcf-authority-service/[email protected]
        , i.e., using the user principal name as username.  In this
        case the service returns the correct set of ACLs.
        Unfortuanately, the elasticsearch plugin for Apache ManifoldCF
        authentication service does not allow one to hand over a
        username in the form of the user principal name, e.g.
        [email protected] <mailto:[email protected]>. This is due to
        the fact that the @ sign is not allowed to be encoded in the
        user name. My current work around (which works) is to adapt
        the elasticsearch plugin to accept the @ sign in the user
        name. However, this is not a nice solution. Is there a better
        (built-in) solution, or did I just something miss regarding
        the authencation service?
        Regards
        Silvio



Reply via email to