You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "Kevin Minder (JIRA)" <ji...@apache.org> on 2015/07/31 00:18:04 UTC

[jira] [Created] (KNOX-579) Regex based identity assertion provider with static dictionary lookup

Kevin Minder created KNOX-579:
---------------------------------

             Summary: Regex based identity assertion provider with static dictionary lookup
                 Key: KNOX-579
                 URL: https://issues.apache.org/jira/browse/KNOX-579
             Project: Apache Knox
          Issue Type: New Feature
          Components: Server
    Affects Versions: 0.5.0
            Reporter: Kevin Minder
            Assignee: Kevin Minder
             Fix For: 0.7.0


I've been running into situations where customers need to do more complex identity mapping than the current providers can handle.  I have a prototype that can do this sort of thing.

Static
{code}
        <provider>
            <role>federation</role>
            <name>HeaderPreAuth</name>
            <enabled>true</enabled>
        </provider>

        <provider>
            <role>identity-assertion</role>
            <name>Regex</name>
            <enabled>true</enabled>
            <param>
                <name>output</name>
                <value>static-user</value>
            </param>
        </provider>
{code}
This will yieid results like this
{code}
curl -k --header "SM_USER: member@us.apache.org" 'https://localhost:8443/gateway/sandbox/webhdfs/v1?op=GETHOMEDIRECTORY'

{"Path":"/user/static-user"}
{code}

Regex
{code}
        <provider>
            <role>federation</role>
            <name>HeaderPreAuth</name>
            <enabled>true</enabled>
        </provider>

        <provider>
            <role>identity-assertion</role>
            <name>Regex</name>
            <enabled>true</enabled>
            <param>
                <name>input</name>
                <value>(.*)@(.*?)\..*</value>
            </param>
            <param>
                <name>output</name>
                <value>{1}_{[2]}</value>
            </param>
            <param>
                <name>lookup</name>
                <value>us=USA;ca=CANADA</value>
            </param>
        </provider>
{code}

This will yield this type of results.
{code}
curl -k --header "SM_USER: member@us.apache.org" 'https://localhost:8443/gateway/sandbox/webhdfs/v1?op=GETHOMEDIRECTORY'

{"Path":"/user/member_USA"}

url -k --header "SM_USER: member@ca.apache.org" 'https://localhost:8443/gateway/sandbox/webhdfs/v1?op=GETHOMEDIRECTORY'

{"Path":"/user/member_CANADA"}
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)