Salted Challenge Response Authentication Mechanism (SCRAM) は、パスワードベースの相互認証プロトコルです。 これは、いくつかのレベルのセキュリティを追加し、信頼されていない接続でのパスワード スニッフィングを防ぐチャレンジ応答スキームです。 SCRAM は、暗号化ハッシュ形式でサーバーにパスワードを格納することをサポートしており、高度なセキュリティを提供します。
注
SCRAM 認証方法を使用して Azure Database for PostgreSQL フレキシブル サーバー インスタンスにアクセスするには、クライアント ライブラリで SCRAM をサポートする必要があります。 SCRAM をサポートする ドライバーの一覧 を参照してください。
SCRAM 認証では、アプリケーション サーバーに余分な計算負荷が課されるため、各認証のクライアント証明を計算する必要があります。 SCRAM によって生じるパフォーマンスオーバーヘッドは、アプリケーションの接続プール内の接続の数を制限するか (アプリケーション内のチャットを減らす)、またはクライアントが許可する同時トランザクションの数 (より大きなトランザクション) を制限することで軽減される可能性があります。 SCRAM 認証に移行する前に、ワークロードをテストすることをお勧めします。
SCRAM 認証の構成
password_encryptionを SCRAM-SHA-256 に変更します。 現在、Azure Database for PostgreSQL では SHA-256 を使用した SCRAM のみがサポートされています。
認証方法として SCRAM-SHA-256 を許可します。
Important
SCRAM-SHA-256 方式のみを選択して、SCRAM のみの認証を適用することもできます。 これにより、MD5 認証を持つユーザーはサーバーに接続できるようになります。 そのため、SCRAM を適用する前に、すべてのユーザー パスワードを SCRAM-SHA-256 に更新するまで、認証方法として MD5 と SCRAM-SHA-256 の両方を使用します。 手順 7 で説明したクエリを使用して、ユーザーの認証の種類を確認できます。
変更を保存します。 これらは動的プロパティであり、サーバーの再起動は必要ありません。
Azure Database for PostgreSQL フレキシブル サーバー クライアントから、Azure Database for PostgreSQL フレキシブル サーバー インスタンスに接続します。 たとえば、
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.
パスワードの暗号化を確認します。
postgres=> show password_encryption; password_encryption --------------------- scram-sha-256 (1 row)
その後、ユーザーのパスワードを更新できます。
postgres=> \password myDemoUser Enter new password: Enter it again: postgres=>
azure_roles_authtype()
関数を使用して、ユーザー認証の種類を確認できます。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)
その後、SCRAM 認証をサポートするクライアントからサーバーに接続できます。
SCRAM 認証は、組み込みのマネージド PgBouncer に接続されている場合にもサポートされます。