Larry McCay created KNOX-399:
--------------------------------

             Summary: Allow Anonymous Access to Select API Patterns
                 Key: KNOX-399
                 URL: https://issues.apache.org/jira/browse/KNOX-399
             Project: Apache Knox
          Issue Type: Sub-task
          Components: Server
            Reporter: Larry McCay
            Assignee: Larry McCay
             Fix For: 0.5.0


Certain resource URLs will require/allow anonymous access.

For instance, admin/api/v1/version shouldn't require authentication - since it 
may be used to determine which contract to use or some other non-request 
processing book keeping.

What I have in mind is a scheme wherein a given API service contributor will 
communicate the patternsForAnonymousAccess in addition to packages and patterns 
that it does today. The base class jersey contributor can noop the method for 
backward compatibility.

As the base class jersey contributor loops through the patterns to add filters 
for, it will check whether each pattern is a member of the anonymous access 
group and if so add an anonymous authentication filter instead of the one 
configured in the topology. The anonymous authentication provider will simply 
create a Subject with principal of anonymous and no groups. It will then be up 
to identity assertion role mapping to add any groups to the Subject. Something 
like "everyone" group would make sense and could then be used in SLA acls for 
access decisions.

The rest of the API will likely be protected with acls for role of "admin". The 
administrator role would need to be added to LDAP groups or also added through 
the identity assertion provider based on specific principal names.

I think that this will allow for an API with up to two authentication levels:
1. the configured authentication/federation provider for the topology that is 
hosting the API
2. anonymous access to a subset of the API




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to