Chuyển đến nội dung chính
Kết nối realm Keycloak của bạn để Oliver (Security Professional) có thể kiểm tra realm, kiểm toán client, xem xét người dùng và role, đồng thời phân tích cấu hình quản lý danh tính và quyền truy cập. Keycloak xác thực bằng client service-account bảo mật được gắn các role realm-management trên realm mục tiêu.

Nền tảng được hỗ trợ

Nền tảngHỗ trợ
Keycloak tự hostTất cả phiên bản
Phase TwoDịch vụ Keycloak được quản lý

Điều kiện tiên quyết

  • Một realm Keycloak mà bạn muốn CloudThinker kiểm tra.
  • Quyền admin để tạo client bảo mật và gán service-account roles — kcadm.sh (tự host) hoặc realm console (Phase Two).
  • Base URLtên realm của realm.
Kết nối được phạm vi hóa theo các role bạn cấp cho service account cloudthinker-svc. Hãy gán các role realm-management có đặc quyền tối thiểu đáp ứng nhu cầu của CloudThinker.

Thiết lập

Cả hai cách đều tạo ra cùng một artifact: một client bảo mật cloudthinker-svc với các role realm-management trên service account. Tự host dùng kcadm.sh; Phase Two dùng realm console.
Cung cấp client bằng kcadm.sh, CLI admin của Keycloak. Chạy từ bất kỳ shell nào có sẵn công cụ này.
1

Xác thực

kcadm.sh config credentials \
  --server http://localhost:8080 --realm master \
  --user admin --password '<admin-password>'
2

Tạo client

kcadm.sh create clients -r <your-realm> \
  -s clientId=cloudthinker-svc \
  -s publicClient=false \
  -s serviceAccountsEnabled=true \
  -s standardFlowEnabled=false \
  -s directAccessGrantsEnabled=false \
  -s 'redirectUris=[]'
3

Gán realm-management roles

kcadm.sh add-roles -r <your-realm> \
  --uusername service-account-cloudthinker-svc \
  --cclientid realm-management \
  --rolename realm-admin
Sử dụng các role hẹp hơn (ví dụ: view-realm, view-users) nếu bạn muốn đặc quyền tối thiểu.
4

Lấy client secret

CID=$(kcadm.sh get clients -r <your-realm> \
  -q clientId=cloudthinker-svc --fields id --format csv --noquotes | tail -n1)

kcadm.sh get clients/$CID/client-secret -r <your-realm> \
  --fields value --format csv --noquotes | tail -n1
5

Thêm kết nối trong CloudThinker

Điều hướng đến Connections → Keycloak và nhập:
  • KEYCLOAK_URL: http://<host-ip>:8080
  • KEYCLOAK_REALM: tên realm của bạn
  • KEYCLOAK_CLIENT_ID: cloudthinker-svc
  • KEYCLOAK_CLIENT_SECRET: secret từ bước trước
Nhấn Connect. CloudThinker hiển thị trạng thái Connected khi thành công.

Chi tiết kết nối

TrườngMô tảVí dụ
KEYCLOAK_URLBase URL của Keycloakhttp://<host-ip>:8080
KEYCLOAK_REALMTên realm mục tiêumy-realm
KEYCLOAK_CLIENT_IDClient ID của service accountcloudthinker-svc
KEYCLOAK_CLIENT_SECRETClient secret từ bước credentials

Quyền bắt buộc

Service account cloudthinker-svc cần các role realm-management trên realm mục tiêu. Các role phổ biến:
RoleMục đích
view-realmĐọc cài đặt realm
view-usersLiệt kê và kiểm tra người dùng
view-clientsLiệt kê và kiểm tra client
query-users, query-clients, query-groupsChạy các truy vấn tra cứu
manage-users, manage-clients, manage-realmThực hiện thay đổi (chỉ gán khi cần)
Để phân tích chỉ đọc, chỉ gán các role view-*query-*. Thêm role manage-* chỉ khi bạn cần Oliver thực hiện thay đổi.

Khả năng của agent

Sau khi kết nối, Oliver có thể:
Khả năngMô tả
Kiểm tra realmXem xét cài đặt và cấu hình realm
Kiểm toán clientLiệt kê client, xem xét flow và cài đặt authorization
Quản lý người dùngXem người dùng, phiên làm việc và trạng thái credentials
Xem xét role và groupKiểm tra role, composite và cấu trúc phân cấp group
Phân tích quyền truy cậpXác định service account có đặc quyền thừa và client không còn dùng

Xác minh kết nối

@oliver #report list all clients in the realm to verify the Keycloak connection

Ví dụ prompt

@oliver #report list all clients in the realm and flag any with direct access grants enabled
@oliver #report show service accounts with realm-admin and review whether each is needed
@oliver #recommend audit users without 2FA enabled

Khắc phục sự cố

  • Xác minh client secret được sao chép chính xác
  • Xác nhận Client authentication được bật trên client
  • Đảm bảo service account đã được gán các role realm-management
  • Service account thiếu role realm-management bắt buộc cho thao tác đó
  • Tự host: chạy lại add-roles với role còn thiếu
  • Phase Two: kiểm tra lại cả hai trang của danh sách gán role
  • Tự host: xác nhận base URL khớp với hostname Keycloak của bạn
  • Phase Two: sao chép URL chính xác từ trường Details → Host của realm
  • Client phải là bảo mật — publicClient=false (tự host) hoặc Client authentication được bật (Phase Two)
  • Client công khai không có secret

Bảo mật

  • Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
  • Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
  • Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
  • Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
  • Client riêng biệt — sử dụng cloudthinker-svc làm client service-account riêng biệt, không dùng chung client admin.
  • Xoay vòng secret — định kỳ xoay vòng client secret qua tab Credentials.

Liên quan

Oliver Agent

Agent bảo mật và tuân thủ

Tổng quan kết nối

Tất cả kết nối hiện có