mod_authn_core
Le noyau de l'authentification
Base
mod_authn_core.c
authn_core_module
Disponible depuis la version 2.3 d'Apache

Ce module fournit le coeur des fonctionnalités d'authentification permettant d'accorder ou de refuser l'accès à certaines zones du site web. Les directives fournies par le module mod_authn_core sont communes à tous les fournisseurs d'authentification.

# Création d'alias de fournisseurs d'authentification

Il est possible de créer des fournisseurs d'authentification étendus dans le fichier de configuration et de leur assigner un alias. Le fournisseur ainsi nommé peut alors être référencé à l'aide des directives AuthBasicProvider ou AuthDigestProvider tout comme un fournisseur d'authentification de base. Outre la possibilité de créer et attribuer un alias à un fournisseur étendu, le même fournisseur d'authentification peut aussi être référencé par plusieurs sections relatives à une zone du site web.

## Exemples

Cet exemple vérifie les mots de passe dans deux fichiers textes différents.

### Vérification dans plusieurs fichiers de mots de passe au format texte

# On vérifie tout d'abord ici
<AuthnProviderAlias file file1>
AuthUserFile /www/conf/passwords1
</AuthnProviderAlias>
# On vérifie ensuite là
<AuthnProviderAlias file file2>
AuthUserFile /www/conf/passwords2
</AuthnProviderAlias>
<Directory /var/web/pages/secure>
AuthBasicProvider file1 file2
AuthType Basic
AuthName "Zone protégée"
Require valid-user
</Directory>

Dans l'exemple ci-dessous, deux fournisseurs d'authentification ldap sont créés à partir du fournisseur ldap de base, et se voient attribuer un alias. L'authentification d'une même zone peut alors être traitée par plusieurs serveurs ldap :

### Vérification auprès de plusieurs serveurs LDAP

<AuthnProviderAlias ldap alias-ldap>
AuthLDAPBindDN cn=utilisateur,o=ctx
AuthLDAPBindPassword mot-de-passe
AuthLDAPURL ldap://serveur.ldap/o=ctx
</AuthnProviderAlias>
<AuthnProviderAlias ldap autre-alias-ldap>
AuthLDAPBindDN cn=autre-utilisateur,o=dev
AuthLDAPBindPassword autre-mot-de-passe
AuthLDAPURL ldap://autre.serveur.ldap/o=dev?cn
</AuthnProviderAlias>

Alias /secure /webpages/secure
<Directory /webpages/secure>
Order deny,allow
Allow from all

AuthBasicProvider autre-alias-ldap alias-ldap

AuthType Basic
Exemple AuthName Zone_protégée_par_LDAP
Require valid-user
</Directory>
AuthName
L'identifiant de l'autorisation à utiliser avec l'authentification HTTP
AuthName domaine d'autorisation
directory
.htaccess
AuthConfig

Cette directive permet de définir l'identifiant d'autorisation pour un répertoire. Cet identifiant est fourni au client de façon à ce qu'il sache quels nom d'utilisateur et mot de passe envoyer. AuthName accepte un seul argument ; s'il contient des espaces, il doit être entouré de guillemets. Pour pouvoir fonctionner, la directive AuthName doit être utilisée en combinaison avec les directives AuthType et Require, ainsi que des directives comme AuthUserFile et AuthGroupFile.

Par exemple :

AuthName "Top Secret"

La chaîne fournie comme argument à `AuthName` apparaîtra dans la boîte de dialogue d'authentification pour la plupart des navigateurs.

Authentification, autorisation et contrôle d'accès
mod_authz_core
AuthType
Type d'authentification utilisateur
AuthType None|Basic|Digest|Form
directory
.htaccess
AuthConfig

Cette directive permet de définir le type d'authentification utilisateur pour un répertoire. Les types d'authentification disponibles sont `None`, `Basic` (implémenté par mod_auth_basic), `Digest` (implémenté par mod_auth_digest), et `Form` (implémenté par mod_auth_form).

Pour mettre en oeuvre l'authentification, vous devez aussi utiliser les directives AuthName et Require. De plus, le serveur doit pouvoir disposer d'un module fournisseur d'authentification comme mod_authn_file et d'un module d'autorisation comme mod_authz_user.

Le type d'authentification `None` désactive l'authentification. Lorsqu'une authentification est définie, elle est en général héritée par chacune des sections de configuration qui suivent, à moins qu'un autre type d'authentification ne soit spécifié. Si l'on ne souhaite pas mettre en oeuvre d'authentification pour une sous-section d'une section authentifiée, on doit utiliser le type d'authentification `None` ; dans l'exemple suivant, les clients peuvent accéder au répertoire `/www/docs/public` sans devoir s'authentifier :

<Directory /www/docs> AuthType Basic
AuthName Documents
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user </Directory>
<Directory /www/docs/public> AuthType None
Require all granted </Directory>

Veuillez noter que, lorsque l'authentification n'est pas activée, les clients qui se sont déjà authentifiés pour une autre zone de l'arborescence du site continueront en général à envoyer des en-tête d'authentification HTTP ou des cookies avec chaque requête, sans se préoccuper de savoir si le serveur nécessite vraiment une authentification pour chaque ressource.

Authentification, autorisation et contrôle d'accès
AuthnProviderAlias
Regroupe un ensemble de directives qui constituent une extension d'un fournisseur d'authentification de base et lui attribue l'alias spécifié
<AuthnProviderAlias alias-fournisseur> ... </AuthnProviderAlias>
server config

Les balises `<AuthnProviderAlias>` et `</AuthnProviderAlias>` permettent de regrouper un ensemble de directives d'authentification qui seront référencées par l'alias spécifié à l'aide des directives AuthBasicProvider ou AuthDigestProvider.