Developpez.com

Une très vaste base de connaissances en informatique avec
plus de 100 FAQ et 10 000 réponses à vos questions

Developpez.com - SGBD & SQL
X

Choisissez d'abord la catégorieensuite la rubrique :


Authentification des clients et gestion des utilisateurs

16/12/2003

Par Stessy Delcroix (autres articles)
 

Cet article va voux présenter les concepts fondamentaux en matière d'authentification des clients, allant de la simple authentification par mot de passe, jusqu'à la configuration du fichier pg_hba.conf .


Avant-Propos
1. Authentification par mot de passe
2. Le fichier pg_hba.conf


Avant-Propos


L'authentification des clients est une fonctionnalité essentielle de PostgreSQL. C'est elle qui détermine si une application cliente est autorisée à se connecter sous le nom d'utilisateur demandé.
Sans cette authentification, n'importe qui pourrait se connecter sur votre base et par la même occasion modifier, voire supprimer vos données. La gestion des utilisateurs quand à elle permet un contrôle d'accès facilement adaptable sur les objets de la base de données


1. Authentification par mot de passe


L'authentification par mot de passe permet seulement d'identifier les utilisateurs et par la même occasion empêcher des personnes à se connecter à la base de données sous un compte qui ne leur appartient pas.
C'est la table système pg_shadow qui contient les mots de passes stockés en clair. Cela ne veut pas dire pour autant que chaque utilisateur a un droit de regard sur cette table. Seul les administrateurs sont habilités à consulter cette table.
Comme je l'ai dit plus haut, pg_shadow est une table système, et comme toute table système, elle est accessible à partir de n'importe quelle base de données, ce qui implique qu'un client pourra accéder à n'importe quelle base de données présente sur le serveur.

Cette méthode utilisée seule est très dangereuse :

  • Premièrement, n'importe qui ayant un nom d'utilisateur et un mot de passe valide pourra se connecter à n'importe quelle base présente sur le serveur.
  • Deuxièmement, la méthode d'authentifiaction utilisant un mot de passe circulant librement en clair sur le réseau peut induire que des personnes mal intentionnées pourront s'emparer facilement de ce mot de passe. Je vous laisse deviner la suite !!!

Pour pallier à ce problème, l'authentification des clients va être contrôlée par un fichier nommé pg_hba.conf se trouvant dans le répertoire data (répertoire créé lors du lancement de la commande initdb).


2. Le fichier pg_hba.conf


Avant de commencer l'explication de ce fichier, je tiens à rappeler que les droits et restrictions décrits dans ce fichier ne correspondent pas aux droits d'un utilisateur sur les objets de la base.

Première question, pourquoi hba ?

Pour ceux qui ne le savent pas encore, HBA signifie simplement Host-Based Authentication, authentification basée sur l'hôte.

Rentrons dans le vif du sujet. Voici tout d'abord une version simple de ce fichier

local all     trust  
host all 127.0.0.1 255.255.255.255 trust  
host bibliothèque 192.168.10.5 255.255.255.255 ident vente
host all 192.168.10.2 255.255.255.255 ident  
pg_hba.conf est un fichier qui comprend une série d'entrées



Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.

Contacter le responsable de la rubrique SGBD & SQL