مصادقة SCRAM في قاعدة بيانات Azure لـ PostgreSQL flexible server

آلية مصادقة الاستجابة للتحدي المملح (SCRAM) هي بروتوكول مصادقة متبادل قائم على كلمة المرور. إنه مخطط استجابة للتحدي يضيف عدة مستويات من الأمان ويمنع استنشاق كلمة المرور على الاتصالات غير الموثوق بها. يدعم SCRAM تخزين كلمات المرور على الخادم في شكل مشفر ، مما يوفر أمانا متقدما

ملاحظة

للوصول إلى خادم مرن قاعدة بيانات Azure لـ PostgreSQL باستخدام أسلوب SCRAM للمصادقة، تحتاج مكتبات العميل إلى دعم SCRAM. لمزيد من المعلومات، راجع قائمة التعريفات التي تدعم SCRAM.

تضيف مصادقة SCRAM عبئا حسابيا إضافيا على خوادم التطبيقات، والتي تحتاج إلى حساب إثبات العميل لكل مصادقة. قد تقلل من عبء الأداء الذي يقدمه SCRAM عن طريق تقليل عدد الاتصالات في تجمع الاتصالات في تطبيقك (تقليل الدردشة في تطبيقك) أو تقليل عدد المعاملات المتزامنة التي يسمح بها العميل (معاملات أكبر). اختبر أعباء عملك قبل الانتقال إلى مصادقة SCRAM.

تكوين مصادقة SCRAM

اذهب إلى المعلمات

لتكوين مصادقة SCRAM، قم بالوصول إلى صفحة المعاملات في بوابة Azure:

  1. قم بتسجيل الدخول إلى بوابة Azure.
  2. انتقل إلى خادم قاعدة بيانات Azure لـ PostgreSQL المرن.
  3. في القائمة اليسرى تحت الإعدادات، اختر المعلمات.
  4. استخدم مربع البحث للعثور على المعايير المذكورة في الخطوات التالية.

خطوات الإعداد

  1. قم بتغيير password_encryption إلى SCRAM-SHA-256 حاليا، يدعم قاعدة بيانات Azure لـ PostgreSQL SCRAM فقط باستخدام SHA-256.

    لقطة شاشة لصفحة التشفير ل SCRAM.

  2. استخدم SCRAM-SHA-256 كطريقة للمصادقة.

    لقطة شاشة للمصادقة التي تم الوصول إليها بواسطة SCRAM.

    Important

    يمكنك فرض مصادقة SCRAM فقط عن طريق تحديد الأسلوب فقط SCRAM-SHA-256 . عند فرض هذا الأسلوب، لا يمكن للمستخدمين الذين لديهم مصادقة MD5 الاتصال بالخادم. قبل فرض SCRAM، تأكد من أن كل من MD5 و SCRAM-SHA-256 هي أساليب مصادقة حتى تقوم بتحديث جميع كلمات مرور المستخدم إلى SCRAM-SHA-256. يمكنك التحقق من نوع المصادقة للمستخدمين باستخدام الاستعلام المذكور في الخطوة 7.

  3. ا‏‏حفظ التغييرات. هذه الخصائص ديناميكية ولا تتطلب إعادة تشغيل الخادم.

  4. من عميل الخادم المرن قاعدة بيانات Azure لـ PostgreSQL، اتصل بالخادم المرن قاعدة بيانات Azure لـ 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.
    
  5. تحقق من تشفير كلمة المرور.

    postgres=> show password_encryption;
       password_encryption
    ---------------------
    scram-sha-256
    (1 row)
    
  6. قم بتحديث كلمة المرور للمستخدمين.

    postgres=> \password myDemoUser
    Enter new password:
    Enter it again:
    postgres=>
    
  7. تحقق من أنواع مصادقة المستخدم باستخدام الدالة 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)
    
  8. الاتصال من العميل الذي يدعم مصادقة SCRAM إلى الخادم الخاص بك.

    يتم دعم مصادقة SCRAM أيضا عند الاتصال ب PgBouncer المدار المدمج.