Mengintegrasikan Active Directory dengan AlloyDB Omni

Pilih versi dokumentasi:

Halaman ini menjelaskan cara mengintegrasikan AlloyDB Omni dengan implementasi Active Directory yang ada sehingga Anda dapat menggunakan nama pengguna dan sandi yang ada untuk mengakses database AlloyDB Omni. Integrasi Active Directory menyediakan Kerberos sebagai mekanisme autentikasi default untuk berkomunikasi dengan AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Active Directory.

Konfigurasi Active Directory di AlloyDB Omni bersifat opsional dan dinonaktifkan secara default. Hanya lingkungan yang menggunakan Server Active Directory untuk autentikasi yang dapat menggunakan mekanisme konfigurasi ini.

Sebelum memulai

Mengaktifkan autentikasi Active Directory

Untuk mengaktifkan autentikasi Active Directory di AlloyDB Omni, ikuti langkah-langkah berikut, yang mencakup konfigurasi Generic Security Service Application Program Interface (GSSAPI), yang merupakan antarmuka pemrograman aplikasi yang memungkinkan program mengakses layanan keamanan.

  1. Tambahkan entri berikut ke file /var/lib/postgresql/data/pg_hba.conf, sebelum entri
    host all all all scram-sha-256.

    1. Jalankan perintah Docker berikut untuk menambahkan gss di dalam container:

      docker exec CONTAINER_NAME sed -i 's;^host all all all scram-sha-256$;hostgssenc all all 0.0.0.0/0 gss map=gssmap\n&;' /var/lib/postgresql/data/pg_hba.conf
      
    2. Jalankan perintah Docker berikut untuk memverifikasi bahwa file pg_hba.conf ada di dalam container:

      docker exec CONTAINER_NAME cat /var/lib/postgresql/data/pg_hba.conf
      
    3. Verifikasi bahwa entri berikut ada dalam file:

      hostgssenc all all 0.0.0.0/0 gss map=gssmap
      

      Untuk mengetahui informasi selengkapnya, lihat File pg_hba.conf.

  2. Salin file tab kunci ke direktori data di dalam image AlloyDB Omni.

    docker cp PATH TO KEYTAB FILE CONTAINER_NAME:/var/lib/postgresql/data/alloydb.keytab
    docker exec CONTAINER_NAME chmod 600 /var/lib/postgresql/data/alloydb.keytab
    docker exec CONTAINER_NAME chown postgres:postgres /var/lib/postgresql/data/alloydb.keytab
    

    File keytab dibuat oleh Kerberos untuk server PostgreSQL. Untuk mempelajari autentikasi lebih lanjut, lihat Autentikasi GSSAPI.

  3. Tambahkan entri untuk file keytab ke file /var/lib/postgresql/data/DATA_DIR/postgresql.conf.

    1. Jalankan perintah Docker berikut untuk menambahkan entri di dalam container:

      docker exec CONTAINER_NAME sed -i '$akrb_server_keyfile='"'"'/var/lib/postgresql/data/alloydb.keytab'"'" /var/lib/postgresql/data/postgresql.conf
      
    2. Jalankan perintah Docker berikut untuk memverifikasi file postgresql.conf di dalam container:

      docker exec CONTAINER_NAME tail  /var/lib/postgresql/data/postgresql.conf
      
    3. Pastikan entri berikut ada dalam file:

      krb_server_keyfile=/var/lib/postgresql/data/alloydb.keytab
      

      Untuk mengetahui informasi selengkapnya, lihat krb_server_keyfile.

  4. Opsional: Tambahkan entri ke file /var/lib/postgresql/data/DATA_DIR/pg_ident.conf.

    Saat Anda menggunakan sistem autentikasi eksternal seperti GSSAPI, nama pengguna sistem operasi yang memulai koneksi mungkin tidak sama dengan pengguna (peran) database yang ingin Anda gunakan.

    Dalam hal ini, tentukan pemetaan pengguna sistem ke pengguna PostgreSQL dalam file /var/lib/postgresql/data/DATA_DIR/pg_ident.conf:

    docker exec -it CONTAINER_NAME bash
    $ echo -e "
    gssmap              /^(.*)@EXAMPLE\.COM$     \1
    gssmap              /^(.*)@example\.com$     \1
    " | column -t | tee -a /var/lib/postgresql/data/pg_ident.conf
    

    Untuk menerapkan pemetaan nama pengguna, tentukan map=gssmap di kolom opsi dalam file pg_hba.conf.

    Untuk mengetahui informasi selengkapnya tentang autentikasi berbasis identitas, lihat Peta Identitas.

  5. Muat ulang konfigurasi PostgreSQL menggunakan perintah berikut:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
    psql (16.3)
    Type "help" for help.
    postgres=# select pg_reload_conf();
    

Menguji autentikasi Active Directory

Untuk memverifikasi bahwa autentikasi Active Directory berfungsi, ikuti langkah-langkah berikut:

  1. Login ke Active Directory menggunakan kinit.
  2. Jalankan perintah psql berikut dari mesin tempat Anda biasanya menjalankan kinit:

    root@4f6414ad02ef:/# kinit AD_USER_NAME
    Password for user1@YOUR.REALM:
    
    root@4f6414ad02ef:/# psql --h ALLOYDB_SERVER_HOST_NAME -U AD_USER_NAME
    psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 16.3)
    GSSAPI-encrypted connection
    Type "help" for help.
    
    user1=#
    

Menonaktifkan autentikasi Active Directory

Untuk menonaktifkan autentikasi Active Directory di AlloyDB Omni, ikuti langkah-langkah berikut, yang akan menonaktifkan GSSAPI:

  1. Hapus entri dalam file pg_hba.conf yang mengarah ke metode autentikasi gss:

    docker exec CONTAINER_NAME sed -i '/hostgssenc all all 0.0.0.0\/0 gss map=gssmap/d' /var/lib/postgresql/data/pg_hba.conf
    
  2. Muat ulang konfigurasi PostgreSQL menggunakan perintah berikut:

    docker exec -it CONTAINER_NAME psql -h localhost -U postgres
    psql (16.3)
    Type "help" for help.
    postgres=# select pg_reload_conf();
    

Langkah berikutnya