[ 
https://issues.apache.org/jira/browse/KNOX-671?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kevin Minder updated KNOX-671:
------------------------------
    Description: 
As discussed in KNOX-670 it would ideal if config based service definitions 
could define custom filter chains by exception for routes that have special 
requirements.  Example use cases for this are:
1. A REST API may have a status or version resource that does not require 
authentication or authorization but still potentially rewrite.
2. As the application work progresses the login routes for the application may 
want to avoid authentication and authorization while the remainder of the 
application is protected.

As described in KNOX-670 the configuration to accomplish might look as follows:
{code:xml}
<service role="MYROLE" name="myimpl" version="1.2.3">
    <chains>
        <chain name="alt-secure">
            <provider role="xforwarded"/>
            <provider role="authentication" name="custom-authn"/>
            <provider role="rewrite"/>
        </chain>
    <chains>
    <routes>
        <route path="/special/**" chain="alt-secure"/>
        <route path="/**"/>
    </routes>
</service>
{code}
One thing that strikes me to consider is how deployment should behave in this 
example.  If the custom-authn authentication provider isn't configured in the 
topology file should deployment fail?  Part of me wants to say yes for 
usability.  On the other hand one of the real use cases I'm thinking of using 
this for is solving the issue with WebHdfs and Kerberos.  This issue is that DN 
routes really should not be issuing challenges and should be relying on the 
authentication done by the NameNode routes.  Therefore the NameNode routes and 
the DataNode routes need different authentication mechanisms.  So ideally there 
would be a special WebHdfsDataNode authentication provider implementation that 
would never need to be configured so it would never need to be seen in a 
topology file.

Perhaps something needs to be added to a ProviderDeploymentContributor to 
indicate if it requires configuration thereby allowing the DeploymentFactory to 
make an informed decision?

  was:
As discussed in KNOX-670 it would ideal if config based service definitions 
could define custom filter chains by exception for routes that have special 
requirements.  Example use cases for this are:
1. A REST API may have a status or version resource that does not require 
authentication or authorization but still potentially rewrite.
2. As the application work progresses the login routes for the application may 
want to avoid authentication and authorization while the remainder of the 
application is protected.

As described in KNOX-670 the configuration to accomplish might look as follows:
{code:xml}
<service role="MYROLE" name="myimpl" version="1.2.3">
    <chains>
        <chain name="alt-secure">
            <provider role="xforwarded"/>
            <provider role="authentication" name="custom-authn/>
            <provider role="rewrite"/>
        </chain>
    <chains>
    <routes>
        <route path="/special/**" chain="alt-secure"/>
        <route path="/**"/>
    </routes>
</service>
{code}
One thing that strikes me to consider is how deployment should behave in this 
example.  If the custom-authn authentication provider isn't configured in the 
topology file should deployment fail?  Part of me wants to say yes for 
usability.  On the other hand one of the real use cases I'm thinking of using 
this for is solving the issue with WebHdfs and Kerberos.  This issue is that DN 
routes really should not be issuing challenges and should be relying on the 
authentication done by the NameNode routes.  Therefore the NameNode routes and 
the DataNode routes need different authentication mechanisms.  So ideally there 
would be a special WebHdfsDataNode authentication provider implementation that 
would never need to be configured so it would never need to be seen in a 
topology file.

Perhaps something needs to be added to a ProviderDeploymentContributor to 
indicate if it requires configuration thereby allowing the DeploymentFactory to 
make an informed decision?


> Custom filter chains in config driven service definitions
> ---------------------------------------------------------
>
>                 Key: KNOX-671
>                 URL: https://issues.apache.org/jira/browse/KNOX-671
>             Project: Apache Knox
>          Issue Type: New Feature
>          Components: Server
>    Affects Versions: 0.6.0
>            Reporter: Kevin Minder
>             Fix For: Future
>
>
> As discussed in KNOX-670 it would ideal if config based service definitions 
> could define custom filter chains by exception for routes that have special 
> requirements.  Example use cases for this are:
> 1. A REST API may have a status or version resource that does not require 
> authentication or authorization but still potentially rewrite.
> 2. As the application work progresses the login routes for the application 
> may want to avoid authentication and authorization while the remainder of the 
> application is protected.
> As described in KNOX-670 the configuration to accomplish might look as 
> follows:
> {code:xml}
> <service role="MYROLE" name="myimpl" version="1.2.3">
>     <chains>
>         <chain name="alt-secure">
>             <provider role="xforwarded"/>
>             <provider role="authentication" name="custom-authn"/>
>             <provider role="rewrite"/>
>         </chain>
>     <chains>
>     <routes>
>         <route path="/special/**" chain="alt-secure"/>
>         <route path="/**"/>
>     </routes>
> </service>
> {code}
> One thing that strikes me to consider is how deployment should behave in this 
> example.  If the custom-authn authentication provider isn't configured in the 
> topology file should deployment fail?  Part of me wants to say yes for 
> usability.  On the other hand one of the real use cases I'm thinking of using 
> this for is solving the issue with WebHdfs and Kerberos.  This issue is that 
> DN routes really should not be issuing challenges and should be relying on 
> the authentication done by the NameNode routes.  Therefore the NameNode 
> routes and the DataNode routes need different authentication mechanisms.  So 
> ideally there would be a special WebHdfsDataNode authentication provider 
> implementation that would never need to be configured so it would never need 
> to be seen in a topology file.
> Perhaps something needs to be added to a ProviderDeploymentContributor to 
> indicate if it requires configuration thereby allowing the DeploymentFactory 
> to make an informed decision?



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

Reply via email to