Megosztás a következőn keresztül:


SCRAM-hitelesítés az Azure Database for PostgreSQL-ben

A Salted Challenge Response Authentication Mechanism (SCRAM) egy jelszóalapú kölcsönös hitelesítési protokoll. Ez egy kihívás-válasz séma, amely több biztonsági szintet ad hozzá, és megakadályozza a jelszavak nem megbízható kapcsolatokon való szippantását. A SCRAM támogatja a jelszavak tárolását a kiszolgálón kriptográfiai kivonatolt formában, amely fokozott biztonságot nyújt.

Megjegyzés:

Ha egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt szeretne elérni SCRAM hitelesítési módszerrel, az ügyfélkódtáraknak támogatniuk kell a SCRAM-ot. Tekintse meg a SCRAM-t támogató illesztőprogramok listáját .

Az SCRAM-hitelesítés extra számítási terhelést ró az alkalmazáskiszolgálókra, amelyeknek ki kell számítaniuk az ügyfél-igazolást minden hitelesítéshez. A scram teljesítménybeli többletterhelését csökkentheti az alkalmazás kapcsolatkészletében lévő kapcsolatok számának korlátozásával (az alkalmazásban a csevegés csökkentésével), vagy az ügyfél által engedélyezett egyidejű tranzakciók számának korlátozásával (nagyobb tranzakciók). Javasoljuk, hogy tesztelje a számítási feladatokat a SCRAM-hitelesítésre való migrálás előtt.

SCRAM-hitelesítés konfigurálása

  1. Módosítsa a password_encryption SCRAM-SHA-256-ra. Az Azure Database for PostgreSQL jelenleg csak az SHA-256 használatával támogatja a SCRAM használatát.

    Képernyőkép a SCRAM titkosítási oldaláról.

  2. Engedélyezze a SCRAM-SHA-256-ot hitelesítési módszerként.

    Képernyőkép a SCRAM által elért hitelesítésről.

    Fontos

    Dönthet úgy, hogy csak a SCRAM-SHA-256 metódus kiválasztásával kényszeríti ki a SCRAM-hitelesítést. Ezzel az MD5-hitelesítéssel rendelkező felhasználók hosszabb ideig csatlakozhatnak a kiszolgálóhoz. Ezért a SCRAM kényszerítése előtt az MD5 és a SCRAM-SHA-256 hitelesítési módszerekkel is rendelkezik, amíg az összes felhasználói jelszót SCRAM-SHA-256-ra nem frissíti. A felhasználók hitelesítési típusát a 7. lépésben említett lekérdezéssel ellenőrizheti.

  3. Mentse a módosításokat. Ezek dinamikus tulajdonságok, és nem igényelnek kiszolgáló-újraindítást.

  4. Az Azure Database for PostgreSQL rugalmas kiszolgálóügyféljéből csatlakozzon a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz. Például

    psql "host=myPGServer.postgres.database.azure.com port=5432 dbname=postgres user=myDemoUser password=<password> sslmode=require"
    
    psql (12.3 (Ubuntu 12.3-1.pgdg18.04+1), server 12.6)
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
  5. Ellenőrizze a jelszótitkosítást.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. Ezután frissítheti a felhasználók jelszavát.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. A felhasználói hitelesítési típusokat a függvény használatával azure_roles_authtype() ellenőrizheti.

    postgres=> SELECT * from azure_roles_authtype();
             rolename          | authtype
    ---------------------------+-----------
    azuresu                   | NOLOGIN
    pg_monitor                | NOLOGIN
    pg_read_all_settings      | NOLOGIN
    pg_read_all_stats         | NOLOGIN
    pg_stat_scan_tables       | NOLOGIN
    pg_read_server_files      | NOLOGIN
    pg_write_server_files     | NOLOGIN
    pg_execute_server_program | NOLOGIN
    pg_signal_backend         | NOLOGIN
    replication               | NOLOGIN
    myDemoUser                | SCRAM-256
    azure_pg_admin            | NOLOGIN
    srtest                    | SCRAM-256
    sr_md5                    | MD5
    (14 rows)
    
  8. Ezután csatlakozhat az SCRAM-hitelesítést támogató ügyfélről a kiszolgálóhoz.

    A SCRAM-hitelesítés akkor is támogatott, ha a beépített felügyelt PgBouncerhez csatlakozik.