Andy, could your custom auth handler run before Shiboleth, test for a Shiboleth 
token? If not present, use push_handler to run Shiboleth? If the Shiboleth 
token or cookie is present, don’t run Shiboleth?

Russell

Sent from my iPhone

> On Mar 6, 2020, at 08:26, André Warnier (tomcat/perl) <a...@ice-sa.com> wrote:
> 
> Hi experts.
> 
> In our Apache 2.4(+mod_perl) setups, we use the following kind of thing :
> 
> ...
>    PerlAddAuthzProvider UMA-user AUTH::UMA2->authz_user
> ...
>    <Location "/esearchs/">
>      AuthName ALUtop
>      AuthType shibboleth
>      PerlSetVar UMA_AuthType "SAML2"
>      ShibRequestSetting requireSession 1
>      ShibRequestMapperAuthz Off
>      ShibUseHeaders On
>      ShibUseEnvironment Off
>      PerlSetVar UMA_Debug 3
>      <RequireAll>
>        Require UMA-user valid-user
>        Require shibboleth
>      </RequireAll>
> ...
> </Location>
> 
> which basically means :
> we combine 2 AAA methods :
> - one is our own (AUTH::UMA2 above, mod_perl based)
> - the other is SAML, via Shibboleth (and all the directives above with "shib" 
> in them, correspond to the Shibboleth installation instructions)
> 
> (The reason being : the corporate user authentication happens via SAML, but 
> it does not provide us enough information about the user. So we run another 
> additional scheme, which supplements the user information, in order to feed 
> more complete data to our applications.)
> 
> Our own AAA method is such, that once the user has been authenticated once, 
> we set a token, such that for subsequent requests we do not need to 
> re-authenticate the user.
> But no matter what we do at that level, the Shibboleth authentication runs 
> anyway.(*)
> 
> And my question is : considering the above setup, would mod_perl provide a 
> way, through some mod_perl API, to disable the Shibboleth authentication (on 
> a request-by-request base), when our own authz module determines that we do 
> not need it to run anymore for the current request ?
> 
> (replace Shibboleth by any other authentication that would be configured in 
> addition to our own; I'm looking for some "generic" mechanism, not only for 
> Shibboleth).
> 
> Or is it so that different authentication methods/modules don't insert 
> themselves in any standard way which can easily be interfaced with in order 
> to dynamically disable them ?
> 
> Note: Shibboleth itself does caching of its prior authentication, and it is 
> not really a big performance hit to re-run it each time, and we can live with 
> it as it is. But in the absolute, it is unnecessary for 90% of the accesses 
> to the applications, so it just sounds like disabling it would be a 
> nice/efficient thing to do.
> 
> I thought of dynamically removing the "Require shibboleth" e.g., but there 
> does not seem to be an API to do that.
> 
> 

Reply via email to