Dokumen ini memberikan panduan pemecahan masalah untuk masalah server LDAP saat mengakses cluster anggota fleet Anda. Dokumen ini hanya berlaku untuk jenis cluster yang didukung.
Masalah konektivitas
Anda mungkin 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 dalam 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: UnauthorizedERROR: Configuring Anthos authentication failed
Solusi
Anda dapat mengatasi masalah ini dengan salah satu cara berikut:
- Jika cluster tidak dapat terhubung ke server LDAP, lakukan hal 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 harus menjalankan perintah di node atau Pod tempat Pod layanan identitas berjalan. - Jika perintah berhasil, Pod layanan identitas akan terhubung ke server LDAP.
- Jika perintah gagal, hal ini menunjukkan bahwa ada masalah dengan konektivitas jaringan. Anda harus memeriksa setelan jaringan atau menghubungi administrator jaringan untuk mengatasi masalah koneksi.
- Untuk memverifikasi apakah traffic jaringan dapat menjangkau server LDAP (penyedia identitas) dari cluster, gunakan
- Pastikan sertifikat publik dalam konfigurasi diformat dengan benar dan cocok dengan server LDAP Anda 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 dalam salah satu kasus berikut:
- Setelan penyedia LDAP dikonfigurasi dengan salah di ClientConfig.
- Kredensial pengguna yang Anda berikan tidak ada di server LDAP.
- Server LDAP tidak berfungsi.
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: UnauthorizedERROR: Configuring Anthos authentication failed
Solusi
Sebagai administrator cluster, tinjau log Pod layanan identitas dan atasi masalah autentikasi dengan cara berikut:
Can't contact LDAP server: untuk mengetahui informasi selengkapnya tentang cara mengatasi masalah ini, lihat masalah konektivitas.Attempting to bind as the LDAP service account: cluster mencoba terhubung ke server LDAP menggunakan kredensial akun layanan yang disediakan di ClientConfig. Tidak adanya pesan log ini menunjukkan adanya masalah konektivitas.Successfully completed BIND as LDAP service account: cluster dapat 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: entri pengguna ada di server LDAP. Hal ini menunjukkan bahwa kolombaseDN,filter, danloginAttributedikonfigurasi dengan benar untuk mengambil pengguna. Pesan ini hanya ditampilkan jika verbositas 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: cluster mencoba memverifikasi kredensial pengguna.Successfully completed LDAP authentication: autentikasi pengguna berhasil. Tidak adanya pesan log ini menunjukkan kredensial tidak valid.
Token autentikasi telah habis masa berlakunya
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 dengan binding peran RBAC ke pengguna atau grup
Masalah ini terjadi jika autentikasi Anda berhasil, tetapi otorisasi gagal karena tidak adanya binding peran RBAC ke pengguna atau grup. Misalnya, masalah ini terus terjadi saat Anda mencoba mengeluarkan 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:
- Login ke server LDAP untuk melihat grup pengguna target.
- Verifikasi apakah peran dan binding peran Kubernetes Anda ditentukan dengan benar dan cocok dengan nilai di direktori LDAP Anda. Administrator dapat membantu memverifikasi binding peran melalui Kubernetes Peniruan Identitas Pengguna.
- Perbarui binding peran sehingga grup pengguna target diizinkan untuk melakukan tindakan yang diperlukan.
- Pastikan nilai untuk
baseDNdan secara opsionalfiltersertaidentifierAttributeuntuk grup sudah benar. Cluster menggunakan konfigurasi grup dari kolom ini untuk membuat kueri semua grup yang diikuti pengguna. JikabaseDNkosong, tidak ada grup yang diberikan ke server API Kubernetes. Tidak ada pesan yang dicatat dalam kasus ini. JikabaseDNtidak kosong, cluster akan membuat kueri database untuk grup pengguna.- Jika kueri berhasil, grup akan diberikan ke server API Kubernetes.
- Jika kueri tidak berhasil, grup tidak akan diberikan ke server API Kubernetes. Dalam hal ini, Anda harus memperbaiki nilai konfigurasi
baseDNdanfilteruntuk grup.
Pengguna menjadi anggota beberapa grup
Masalah ini terjadi jika pengguna menjadi anggota 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 harus 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 komponen layanan identitas dan versi Google Cloud CLI yang diinstal.
Pesan error
unable to parse STS Token Responsecould 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 harus mengupgrade utilitas gcloud dan cluster ke versi terbaru yang tersedia.
Kode status autentikasi 401 gagal
Masalah ini terjadi jika server API Kubernetes 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: UnauthorizedERROR: Configuring Anthos authentication failed
Solusi
Anda dapat mengatasi masalah ini dengan salah satu cara berikut:
- Periksa apakah Pod layanan identitas dalam status
runningmenggunakan 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 mengetahui informasi mendetail terkait error. Untuk mengetahui informasi selengkapnya tentang logging, lihat Menggunakan logging dan pemantauan untuk komponen sistem.