Hướng dẫn đăng nhập Kubernetes Cluster bằng OIDC
Tính năng tích hợp OIDC cho phép người dùng xác thực và truy cập vào Kubernetes Cluster (BKE) thông qua một nhà cung cấp danh tính bên thứ ba (OIDC Provider) như Google, Keycloak, Dex, v.v.
1. Yêu cầu hệ thống (Prerequisites)
Để sử dụng OIDC kubeconfig, máy cá nhân của bạn cần cài đặt sẵn công cụ kubelogin (plugin hỗ trợ xác thực OIDC cho kubectl).
Cài đặt (Sử dụng Krew - plugin manager của kubectl):
kubectl krew install oidc-login
Hoặc cài đặt trực tiếp trên macOS (Homebrew):
brew install int128/kubelogin
2. Tải File Kubeconfig
- Đăng nhập vào hệ thống quản trị Cluster (Bizfly Cloud Dashboard / BKE API).
- Vào phần tải Kubeconfig của Cluster và chọn loại Kubeconfig là OIDC.
- Hệ thống sẽ trả về file
kubeconfigchứa cấu hình OIDC tự động bao gồmissuer-url,client-id, cùng các scopes cần thiết (nhưemail,profile).
3. Cấu hình thêm Client Secret (Đối với các OIDC Provider yêu cầu)
Vì lý do bảo mật, hệ thống không lưu hoặc không đính kèm client-secret vào file kubeconfig khi tải xuống. Một số Provider (ví dụ: Google Identity) yêu cầu bắt buộc phải có client-secret để cấp đổi token.
Nếu Provider của bạn nằm trong trường hợp này, bạn cần tự thêm client-secret thủ công vào file kubeconfig vừa tải.
Các bước thực hiện:
- Mở file
kubeconfigvừa tải về bằng bất kỳ trình soạn thảo văn bản nào. - Tìm đến block cấu hình
users->exec->argscủa user có tên kết thúc bằngoidc. - Bổ sung thêm dòng
--oidc-client-secret=<secret của b>vào danh sáchargs.
Ví dụ minh họa:
Trước khi sửa:
users:
- name: admin-oidc
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
command: kubectl
args:
- oidc-login
- get-token
- --oidc-issuer-url=https://accounts.google.com
- --oidc-client-id=YOUR_CLIENT_ID
- --oidc-extra-scope=email
- --oidc-extra-scope=profile
provideClusterInfo: false
Sau khi sửa (Thêm client-secret):
users:
- name: admin-oidc
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
command: kubectl
args:
- oidc-login
- get-token
- --oidc-issuer-url=https://accounts.google.com
- --oidc-client-id=YOUR_CLIENT_ID
- --oidc-client-secret=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 # <-- BẠN THÊM DÒNG NÀY
- --oidc-extra-scope=email
- --oidc-extra-scope=profile
provideClusterInfo: false
4. Xác thực và Truy cập Cluster
Sau khi đã hoàn tất cấu hình, bạn có thể thực hiện kiểm tra quyền truy cập vào Cluster bằng câu lệnh:
export KUBECONFIG=/đường/dẫn/đến/file/kubeconfig
kubectl get pods -A
Quá trình đăng nhập diễn ra như sau:
- Khi chạy lệnh
kubectl, pluginoidc-loginsẽ tự động mở trình duyệt web của bạn. - Bạn sẽ được chuyển hướng tới trang đăng nhập của OIDC Provider (VD: Google).
- Sau khi xác thực thành công, trình duyệt sẽ báo bạn có thể đóng tab.
- Token sẽ được cấp và lưu cục bộ trên máy của bạn,
kubectlsẽ ngay lập tức được xác thực và thực thi lệnh.