Apache2-AuthEnv
view release on metacpan or search on metacpan
lib/Apache2/AuthEnv.pm view on Meta::CPAN
# Load environment settings from a DBM database.
AuthEnvDbImport HTTP_EXTRA_ /etc/dbfile Key
# Allow and Deny access based on environment.
# The default is to deny access.
# Allow and deny rules are evaluated based on their order in this file.
AuthEnvAllowUser fred@here.org
AuthEnvDenyUser george@here.org
AuthEnvAllowMatch %{HTTP_USER_AGENT} ^Mozilla
AuthEnvDeny %{REMOTE_ADDR} 192.168.2.3
AuthEnvDenyMatch %{HTTP_USER_AGENT} Fedora
AuthEnvAllow %{SERVER_PORT} 80
AuthEnvAllowSplit %{HTTP_MEMBEROF} '\^' 'CN=....'
AuthEnvAllowAll
AuthEnvDenyAll
AuthEnvDenial UNAUTHORISED|UNAUTHORIZED|NOT_FOUND|FORBIDDEN
=head1 DESCRIPTION
B<Apache2::AuthEnv> allows you to promote a string composed of CGI
environment variables to act as an authenticated user. The format is
set via the AuthEnvUser command and the result is placed in the
environment variable B<REMOTE_USER>.
This module is for use only when another Apache module pre-authenticates
and pre-authorises a user but does not provide authentication nor
authorisation controls within Apache.
This module, once loaded, is triggered by the Apache directive
I<AuthEnvUser> setting a format from the environment for the remote
user name. Authorisation is controlled by I<AuthEnvAllow*> and
I<AuthEnvDeny*> directives. The default is to deny authorisation
to everyone.
AuthEnvUser %{HTTP_SSO_USER}@%{HTTP_SSO_ORG}
AuthEnvAllowUser fred@ORG
Such a system is Computer Asscoiates' SiteMinder (c) Single Sign On
solution. Only pre-authenticated and pre-authorised users are allowed
through to protected URLs. However there is no local control by the
local web server. SiteMinder sets various environment variables
including HTTP_SM_USER and HTTP_SM_AUTHDIRNAME. So a reasonable
setting would be
AuthEnvUser %{HTTP_SM_USER}@%{HTTP_SM_AUTHDIRNAME}
AuthEnvAllowUser fred@ORG
Another example is
AuthEnvUser %{HTTP_UI_PRINCIPAL_NAME}
AuthEnvAllowUser fred@ORG.org
AuthEnvAllow %{HTTP_UI_DEPARTMENT} sales
Some systems may take authentication information from various sources
and provide different environment variables for each source. So you can
list alternative variables to use.
AuthEnvUser %{HTTP_SOURCE1_NAME|HTTP_SOURCE2_NAME|HTTP_SOURCE3_NAME}
If nothing matches then you can set a default value (say 'anon') via
AuthEnvUser %{HTTP_SOURCE_NAME|HTTP_SOURCE2_NAME:anon}
For nested directives, configurations are inherited from one
configuration file to the next. I<AuthEnvUser> directives overwrite each
other as do collections of I<AuthEnvAllow*> rules. Each individual
AuthEnvSet and AuthEnvChange directive, unless overwriten, is inherited.
The default denial code returned to the browser is FORBIDDEN.
The directive I<AuthEnvDenial> can be used to change the return code.
For example,
AuthEnvDenial NOT_FOUND
=head1 FORMAT
The substitution format is composed of strings of characters and
variable substitutions starting with '%{' and ending in '}'.
Substitutions are of the following formats:
=over 2
=item * %{ENVIRONMENT_VARIABLE_NAME},
=item * %{ENVIRONMENT_VARIABLE_NAME1|ENVIRONMENT_VARIABLE_NAME2|....}
=item * %{ENVIRONMENT_VARIABLE_NAME:default}.
=back
In the first case, the value of the environment variable is simply substituted. If a
'|' separated list of variables is specified then each variable is
checked in order, substituting the value of the first that is not empty.
If no substitution succeeds and there is a default specified then that
value is used instead.
To use formats with spaces in the .htaccess file, enclose the format in
double quotes.
=head1 METHODS
=over 4
=item * handler()
This is the method used as augument to the I<PerlAuthenHandler> or the
I<PerlAuthzHandler> directives in .htaccess and httpd.conf files.
=item * authenticate()
This is the method used as augument to the the PerlAuthenHandler
directive in .htaccess and httpd.conf files.
=item * authorise()
This is the method used as augument to the the PerlAuthzHandler
directive in .htaccess and httpd.conf files.
=back
=head1 APACHE DIRECTIVES
( run in 0.831 second using v1.01-cache-2.11-cpan-71847e10f99 )