Memecahkan masalah server LDAP

Dokumen ini berisi panduan pemecahan masalah untuk masalah server LDAP di GKE Identity Service.

Masalah konektivitas

Saat mengonfigurasi GKE Identity Service, Anda dapat mengalami masalah konektivitas saat mencoba terhubung ke server LDAP. Masalah konektivitas juga dapat terjadi jika sertifikat yang digunakan untuk mengidentifikasi server LDAP tidak cocok dengan sertifikat yang disebutkan di ClientConfig.

Pesan error

Pesan berikut berlaku untuk error yang terjadi saat perintah gcloud anthos auth login dieksekusi.

  • ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
  • ERROR: Configuring Anthos authentication failed

Solusi

Anda dapat menyelesaikan masalah ini dengan salah satu cara berikut:

  • Jika GKE Identity Service tidak dapat terhubung ke server LDAP, lakukan tindakan berikut:
    • Untuk memverifikasi apakah traffic jaringan dapat menjangkau server LDAP (penyedia identitas) dari cluster, gunakan telnet, nc, atau perintah serupa untuk terhubung ke server LDAP. Untuk terhubung ke server LDAP, Anda perlu menjalankan perintah di node atau pod tempat GKE Identity Service dijalankan.
    • Jika perintah berhasil, pod GKE Identity Service akan terhubung ke server LDAP.
    • Jika perintah gagal, hal ini menunjukkan bahwa ada masalah dengan konektivitas jaringan. Anda perlu memeriksa setelan jaringan atau menghubungi administrator jaringan untuk menyelesaikan masalah koneksi.
  • Pastikan sertifikat publik dalam konfigurasi diformat dengan benar dan cocok dengan server LDAP untuk kasus berikut:
    • Anda menggunakan LDAP dengan TLS.
    • Anda melakukan autentikasi ke LDAP dengan akun layanan. Anda menggunakan sertifikat untuk mengidentifikasi akun layanan dengan server LDAP.

Masalah autentikasi

Masalah autentikasi terjadi pada salah satu kasus berikut:

  • Setelan penyedia LDAP tidak dikonfigurasi dengan benar di ClientConfig untuk GKE Identity Service.
  • Kredensial pengguna yang Anda berikan tidak ada di server LDAP.
  • Server LDAP tidak aktif.

Pesan error

Pesan berikut berlaku untuk error yang terjadi saat perintah gcloud anthos auth login dieksekusi.

  • ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
  • ERROR: Configuring Anthos authentication failed

Solusi

Sebagai administrator cluster, tinjau log GKE Identity Service dan selesaikan masalah autentikasi dengan cara berikut:

  • Can't contact LDAP server: Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan masalah ini, lihat masalah konektivitas.
  • Attempting to bind as the LDAP service account: GKE Identity Service mencoba terhubung ke server LDAP menggunakan kredensial akun layanan yang diberikan di ClientConfig. Tidak adanya pesan log ini menunjukkan adanya masalah konektivitas.
  • Successfully completed BIND as LDAP service account: GKE Identity Service berhasil terhubung ke server LDAP dan menggunakan akun layanannya untuk autentikasi pengguna. Tidak adanya pesan log ini menunjukkan adanya masalah konfigurasi.
  • Successfully found an entry for the user in the database: Ada entri pengguna di server LDAP. Ini menyiratkan bahwa kolom baseDN, filter, dan loginAttribute dikonfigurasi dengan benar untuk mengambil pengguna. Pesan ini hanya ditampilkan jika panjang logging berada di atas level default. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan log, lihat Mengaktifkan log debug.
  • Attempting to BIND as the user to verify their credentials: GKE Identity Service mencoba memverifikasi kredensial pengguna.
  • Successfully completed LDAP authentication: Autentikasi pengguna berhasil. Tidak adanya pesan log ini mengindikasikan kredensial yang tidak valid.

Masa berlaku token autentikasi telah habis

Meskipun login berhasil, Anda dapat mengalami masalah saat token autentikasi telah habis masa berlakunya.

Pesan error

ERROR: You must be logged in to the server (Unauthorized)

Solusi

Anda dapat mengatasi masalah ini dengan login kembali ke server.

Masalah terkait binding peran RBAC ke pengguna atau grup

Masalah ini terjadi saat autentikasi berhasil, tetapi otorisasi gagal karena tidak ada peran RBAC yang mengikat pengguna atau grup. Misalnya, masalah ini terus berlanjut saat Anda mencoba memberikan perintah kubectl get pods.

Pesan error

Error from server (Forbidden): <SERVICE or PODS> is forbidden: <MORE DETAILS>

Solusi

Anda dapat mengatasi masalah ini dengan melakukan hal berikut:

  1. Login ke server LDAP untuk melihat grup pengguna target.
  2. Verifikasi apakah peran Kubernetes dan binding peran Anda ditetapkan dengan benar dan cocok dengan nilai di direktori LDAP. Administrator dapat membantu memverifikasi binding peran melalui Peniruan Identitas Pengguna Kubernetes.
  3. Perbarui binding peran sehingga grup pengguna target diizinkan untuk melakukan tindakan yang diperlukan.
  4. Pastikan nilai untuk baseDN serta filter dan identifierAttribute untuk grup sudah benar. GKE Identity Service menggunakan konfigurasi grup dari kolom ini untuk mengkueri semua grup tempat pengguna berada. Jika baseDN kosong, tidak ada grup yang akan disediakan ke server Kubernetes API. Tidak ada pesan yang dicatat dalam kasus tersebut. Jika baseDN tidak kosong, GKE Identity Service akan mengkueri database untuk grup pengguna.
    • Jika kueri berhasil, grup akan disediakan ke server Kubernetes API.
    • Jika kueri tidak berhasil, grup tidak akan disediakan ke server Kubernetes API. Dalam kasus ini, Anda perlu memperbaiki nilai konfigurasi baseDN dan filter untuk grup.

Pengguna berada di beberapa grup

Masalah ini terjadi saat pengguna berada di beberapa grup.

Pesan error

could not obtain an STS token: STS token exceeds allowed size limit. Possibility of too many groups associated with the credentials provided.

Solusi

Sebagai administrator cluster, Anda perlu mengonfigurasi kolom filter di ClientConfig untuk mengurangi jumlah grup yang ditampilkan oleh kueri ke server LDAP.

Masalah kompatibilitas versi

Masalah ini terjadi jika ada ketidakcocokan kompatibilitas versi antara GKE Identity Service dan versi Google Cloud CLI yang terinstal.

Pesan error

  • unable to parse STS Token Response
  • could not obtain an STS token: JSON parse error: The request was malformed.
  • could not obtain an STS token: Grant type must confirm that the request is intended for a token exchange.
  • could not obtain an STS token: Requested token type must correspond to an access token.
  • could not obtain an STS token: Subject token type must be a valid token type supported for token exchange.

Solusi

Anda perlu mengupgrade utilitas gcloud dan GKE Identity Service ke versi terbaru yang tersedia.

Kode status autentikasi 401 gagal

Masalah ini terjadi jika server Kubernetes API tidak dapat mengautentikasi layanan dan menampilkan kode error 401.

Pesan error

  • ERROR: LDAP login failed: STSToken() failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": DialContext() failed: podEndpoint() failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized

  • ERROR: Configuring Anthos authentication failed

Solusi

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

  • Periksa apakah pod GKE Identity Service berada dalam status running dengan menggunakan perintah berikut:
    kubectl get pods -l k8s-app=ais -n anthos-identity-service --kubeconfig USER_CLUSTER_KUBECONFIG
    
  • Periksa konfigurasi LDAP di ClientConfig menggunakan perintah berikut:
    kubectl get clientconfig -n kube-public -o jsonpath='{.items[].spec.authentication[].ldap}' --kubeconfig USER_CLUSTER_KUBECONFIG
    
  • Tinjau log untuk mendapatkan informasi mendetail terkait error tersebut. Untuk informasi selengkapnya tentang logging, lihat Menggunakan logging dan pemantauan untuk komponen sistem.