En aquest tema, explorarem els diferents mètodes d'autenticació disponibles a PostgreSQL. L'autenticació és un aspecte crucial de la seguretat de les bases de dades, ja que garanteix que només els usuaris autoritzats puguin accedir a les dades. PostgreSQL ofereix una varietat de mètodes d'autenticació per satisfer diferents necessitats de seguretat i entorns de desplegament.

Objectius d'aprenentatge

Al final d'aquest tema, hauràs après:

  • Els diferents mètodes d'autenticació disponibles a PostgreSQL.
  • Com configurar i utilitzar aquests mètodes.
  • Avantatges i desavantatges de cada mètode d'autenticació.

Mètodes d'autenticació disponibles

  1. Autenticació per contrasenya (password i md5)

  • password: Aquest mètode utilitza contrasenyes en text pla. No és recomanable per a entorns de producció a causa de la manca de seguretat.
  • md5: Utilitza un hash MD5 de la contrasenya. És més segur que el mètode password, però encara té vulnerabilitats conegudes.

Configuració:

# pg_hba.conf
host    all             all             0.0.0.0/0               md5

  1. Autenticació basada en certificat SSL (cert)

Aquest mètode utilitza certificats SSL per autenticar els usuaris. És molt segur, ja que es basa en la criptografia de clau pública.

Configuració:

# pg_hba.conf
hostssl all             all             0.0.0.0/0               cert

  1. Autenticació Kerberos/GSSAPI (gss i sspi)

  • gss: Utilitza el sistema de seguretat de serveis generals (GSSAPI) per a l'autenticació, sovint amb Kerberos.
  • sspi: Similar a gss, però per a sistemes Windows.

Configuració:

# pg_hba.conf
host    all             all             0.0.0.0/0               gss

  1. Autenticació basada en IP (trust i reject)

  • trust: Permet l'accés sense cap autenticació. Només és recomanable per a entorns de desenvolupament.
  • reject: Rebutja totes les connexions. Pot ser útil per bloquejar l'accés a certs rangs d'IP.

Configuració:

# pg_hba.conf
host    all             all             0.0.0.0/0               trust

  1. Autenticació basada en sistema operatiu (peer i ident)

  • peer: Només per a connexions locals. Autentica els usuaris basant-se en el nom d'usuari del sistema operatiu.
  • ident: Similar a peer, però pot utilitzar-se per a connexions remotes amb un servidor ident.

Configuració:

# pg_hba.conf
local   all             all                                     peer

  1. Autenticació LDAP (ldap)

Utilitza un servidor LDAP per autenticar els usuaris. És útil en entorns empresarials on ja es fa servir LDAP per a la gestió d'usuaris.

Configuració:

# pg_hba.conf
host    all             all             0.0.0.0/0               ldap ldapserver=ldap.example.com ldapbasedn="dc=example,dc=com"

Comparació de mètodes d'autenticació

Mètode Seguretat Facilitat d'ús Notes
password Baixa Alta No recomanat per a producció
md5 Mitjana Alta Millor que password, però amb vulnerabilitats
cert Alta Mitjana Requereix configuració de certificats
gss Alta Mitjana Ideal per a entorns amb Kerberos
sspi Alta Mitjana Només per a Windows
trust Nul·la Alta Només per a desenvolupament
reject N/A Alta Bloqueja l'accés
peer Alta Alta Només per a connexions locals
ident Alta Mitjana Pot utilitzar-se per a connexions remotes
ldap Alta Mitjana Ideal per a entorns empresarials

Exercici pràctic

Configuració d'autenticació md5

  1. Edita el fitxer pg_hba.conf: Afegeix la següent línia per permetre l'autenticació md5 per a totes les connexions:

    host    all             all             0.0.0.0/0               md5
    
  2. Reinicia el servidor PostgreSQL:

    sudo systemctl restart postgresql
    
  3. Crea un usuari amb contrasenya: Connecta't a PostgreSQL i crea un usuari amb una contrasenya:

    CREATE USER testuser WITH PASSWORD 'testpassword';
    
  4. Prova la connexió: Intenta connectar-te a PostgreSQL utilitzant l'usuari i la contrasenya creats:

    psql -h localhost -U testuser -W
    

Solució

Si has seguit els passos correctament, hauries de poder connectar-te a PostgreSQL utilitzant l'usuari testuser i la contrasenya testpassword.

Resum

En aquest tema, hem explorat els diferents mètodes d'autenticació disponibles a PostgreSQL, incloent-hi password, md5, cert, gss, sspi, trust, reject, peer, ident i ldap. Hem vist com configurar cadascun d'aquests mètodes i hem discutit els seus avantatges i desavantatges. També hem realitzat un exercici pràctic per configurar l'autenticació md5.

En el proper tema, explorarem la encriptació de dades per assegurar la informació emmagatzemada a la base de dades.

Curs de PostgreSQL

Mòdul 1: Introducció a PostgreSQL

Mòdul 2: Operacions bàsiques de SQL

Mòdul 3: Consultes SQL avançades

Mòdul 4: Disseny de bases de dades i normalització

Mòdul 5: Funcionalitats avançades de PostgreSQL

Mòdul 6: Optimització i millora del rendiment

Mòdul 7: Seguretat i gestió d'usuaris

Mòdul 8: Treballant amb JSON i funcionalitats NoSQL

Mòdul 9: Extensions i eines avançades

Mòdul 10: Estudis de cas i aplicacions del món real

© Copyright 2024. Tots els drets reservats