Hi Niels,

This should actually  be possible using the 
AppServerThrustedAuthentication specific authentication.

xwiki.authentication.authclass=com.xpn.xwiki.user.xwiki.impl.AppServerTrustedAuthServiceImpl

Ludovic

Niels Mayer wrote:
> It would be nice if there was a way of using Apache Basic Authentication
> API, alongside w/ mod_ssl <http://www.modssl.org/>,
> as a concrete way of implementing "single sign on" across multiple
> applications fronted by Apache HTTPD. This would allow
> Xwiki to coexist better alongside other existing web-apps or existing
> websites; in the future, such flexibility would ease transition into more
> extensive use of Xwiki infrastructure, while coexisting with existing
> implementations based on the predominant webserver.
>
> This architecture further allows a simple partitioning of "static" and
> "dynamic/java" content across servers and services, as well as the ability
> to share logins across multiple web-apps (not all necessarily java)
> integrated  under one portal or website. The static/dynamic partitioning is
> especially worthwhile for large content, say digital media, or software
> distributions, where lots of long-running downloads translates to lots of
> java memory churn and resulting bad performance...
>
> An example of interoperability between apache-basic auth and Java:
> Crowd<http://confluence.atlassian.com/display/CROWD/Crowd+Documentation>has
> an apache basic authentication module:
> http://confluence.atlassian.com/display/CROWDEXT/Apache+Basic+Authentication+Module+written+in+cthat
> allows the same logins used for "JIRA, Confluence and Bamboo" to also work
> as a basic gating mechanism for the web-server fronting java. This
> particular usage of the apache basic authentication API permits non-Java
> webapps, or
> static files, to be "gated" by the same credentials used for
> jira/confluence/bamboo.
>
> The reason why I mention mod_ssl is because if you want to do real security,
> or not be transmitting credentials in-the clear, you'll need it. A  proper
> security solution that is now becoming quite practical  (and free) is the
> use of  X509 client certificates, for example, see
> https://www.myopenid.com. Alongside mod_ssl's FakeBasicAuth (
> http://www.modssl.org/docs/2.8/ssl_reference.html#SSLOptions ) this uses the
> API of apache basic authentication, using credentials coming directly from
> the certificate (usually the full-email address, which is part of the client
> certificate data that is "signed").
>
> When this option is enabled, the Subject Distinguished Name (DN) of the
> Client X509 Certificate is translated into a HTTP Basic Authorization
> username. This means that the standard Apache authentication methods can be
> used for access control. The user name is just the Subject of the Client's
> X509 Certificate (can be determined by running OpenSSL's openssl
> x509command: openssl
> x509 -noout -subject -in *certificate*.crt). Note that no password is
> obtained from the user. Every entry in the user file needs this password: ``
> xxj31ZMTZzkVA'', which is the DES-encrypted version of the word `password''.
> Those who live under MD5-based encryption (for instance under FreeBSD or
> BSD/OS, etc.) should use the following MD5 hash of the same word: ``
> $1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/''.
>
> If there was an "Apache basic auth" gateway into Xwiki, then Xwiki could
> also easily use such a solution to obtain the login credentials from the
> certificate, or simply use existing Apache-Basic-Auth credentials for
> consistency and single-sign-on in a "portal." The reason why this is
> important is that some fortune-500 companies won't allow external access to
> their data (extranet portal scenario) w/o the security guarantees available
> in x509 client-certificates. In particular, corporate security likes the
> ability to be able to instantly revoke or invalidate certificates that pose
> a security threat, and "two-factor" access: something you have -- the x509
> cert, and something you know -- your password.
>
> I elaborate along the lines of this solution here:
> http://n2.nabble.com/Using-Apache-BasicAuth-or-mod_ssl%27s-%22FakeBasicAuth%22-and-MyOpenID-(was-Re%3A-logout)-td515763.html
> http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/SingleSignOnAuthenticationIntegration?viewer=comments&;
>
> PS: another apache/java trick that is very useful -- using
> mod_auth_mda<http://www.frogdot.org/mod_auth_mda/>for passing
> time-limited temporary "fine-grained" access control credentials
> (in the form of a specially signed cryptographic cookie) from Java to
> apache. In other words, one might login to an Xwiki-based system; within an
> Xwiki "app" one would construct a specially formatted cryptographic
> cookie<http://www.frogdot.org/mod_auth_mda/cookie.html>.
> That cookie would permit temporary access to a particular
> file/directory/application hosted on the apache webserver (e.g. a static
> file that you only want accessbile to logged-in people). Without the cookie,
> or if the cookie expires, a user cannot access directories files or
> applications specificallly protected by mod_auth_mda. The following
> flowchart illustrates the process:
> -- <http://www.frogdot.org/logintools/pab/scheme1.gif>
>   


-- 
Ludovic Dubost
Blog: http://blog.ludovic.org/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to