Hướng Dẫn Cài Đặt và Cấu Hình Keycloak trên Ubuntu 20.04
Keycloak là một giải pháp mã nguồn mở để quản lý xác thực và quyền truy cập người dùng, cung cấp tính năng như đăng nhập một lần (SSO), xác thực người dùng, phân quyền và bảo mật API. Dưới đây là hướng dẫn cài đặt và cấu hình Keycloak trên Ubuntu 20.04.
Bước 1: Cài Đặt Java (Yêu Cầu Hệ Thống)
Keycloak yêu cầu Java 11 hoặc phiên bản cao hơn để chạy. Trước tiên, bạn cần cài đặt OpenJDK trên hệ thống.
Cập nhật hệ thống:sudo apt update && sudo apt upgrade -y
Cài đặt OpenJDK 11:
Keycloak hỗ trợ OpenJDK 11, vì vậy bạn cần cài đặt nó:sudo apt install openjdk-11-jdk -y
Kiểm tra phiên bản Java:
Sau khi cài đặt, kiểm tra phiên bản Java để đảm bảo rằng nó đã được cài đặt chính xác:java -version
Bạn sẽ thấy đầu ra tương tự như sau nếu Java đã được cài đặt thành công:openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-1ubuntu2)
OpenJDK 64-Bit Server VM (build 11.0.11+9-1ubuntu2, mixed mode)
Bước 2: Tải và Cài Đặt Keycloak
Tải Keycloak:
Truy cập vào trang chính của Keycloak để tải về phiên bản mới nhất. Sử dụng wget để tải tệp .tar.gz của Keycloak từ kho chính thức:wget https://github.com/keycloak/keycloak/releases/download/15.0.2/keycloak-15.0.2.tar.gz
- (Lưu ý: Đảm bảo bạn tải phiên bản mới nhất bằng cách thay đổi số phiên bản trong URL nếu cần.)
Giải nén tệp tải về:
Sau khi tải xong, giải nén tệp tar.gz:tar -xvzf keycloak-15.0.2.tar.gz
Di chuyển Keycloak vào thư mục thích hợp:
Để thuận tiện trong việc quản lý, bạn có thể di chuyển Keycloak vào thư mục /opt:sudo mv keycloak-15.0.2 /opt/keycloak
Bước 3: Cấu Hình Keycloak
Tạo người dùng hệ thống cho Keycloak:
Tạo một người dùng và nhóm hệ thống mới để chạy Keycloak (để tăng cường bảo mật):sudo useradd -r -s /bin/false keycloak
Cấp quyền cho thư mục Keycloak:
Đảm bảo rằng người dùng keycloak có quyền truy cập vào thư mục cài đặt Keycloak:sudo chown -R keycloak:keycloak /opt/keycloak
Cấu hình Keycloak để chạy dưới quyền người dùng Keycloak:
Keycloak cung cấp một tệp cấu hình mặc định nằm trong thư mục standalone/configuration của thư mục cài đặt. Bạn có thể cấu hình các thông số như cổng hoặc kết nối cơ sở dữ liệu trong các tệp này.
Bạn cũng có thể cấu hình Keycloak để sử dụng cơ sở dữ liệu bên ngoài thay vì cơ sở dữ liệu mặc định H2, nhưng trong hướng dẫn này, ta sẽ sử dụng cơ sở dữ liệu H2 cho mục đích đơn giản.
Bước 4: Khởi Động Keycloak
Chạy Keycloak bằng lệnh Standalone:
Chạy Keycloak trong chế độ “standalone” bằng cách sử dụng script có sẵn trong thư mục bin:sudo -u keycloak /opt/keycloak/bin/standalone.sh
- Lệnh trên sẽ khởi động Keycloak và nó sẽ sử dụng cấu hình mặc định. Bạn sẽ thấy các thông báo log trong terminal.
Khởi động Keycloak trong chế độ nền (background):
Để Keycloak chạy ở chế độ nền, bạn có thể sử dụng nohup hoặc tạo một dịch vụ systemd. Để chạy Keycloak dưới nền với nohup, bạn có thể thực hiện như sau:sudo -u keycloak nohup /opt/keycloak/bin/standalone.sh &
- Lệnh trên sẽ chạy Keycloak và lưu log vào tệp nohup.out.
Bước 5: Cấu Hình Dịch Vụ Systemd (Tùy Chọn)
Để tự động khởi động Keycloak khi máy chủ khởi động lại, bạn có thể tạo một tệp dịch vụ systemd.
Tạo tệp dịch vụ Keycloak:
Tạo một tệp dịch vụ trong thư mục /etc/systemd/system:sudo nano /etc/systemd/system/keycloak.service
Thêm nội dung sau vào tệp dịch vụ:
Description=Keycloak Server
After=network.target
[Service]
User=keycloak
ExecStart=/opt/keycloak/bin/standalone.sh
ExecStop=/opt/keycloak/bin/jboss-cli.sh --connect --command=:shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Nạp lại systemd và khởi động dịch vụ:
Sau khi tạo tệp dịch vụ, nạp lại systemd và khởi động dịch vụ Keycloak:sudo systemctl daemon-reload
sudo systemctl start keycloak
Thiết lập Keycloak tự khởi động khi boot:
Để Keycloak tự động khởi động khi máy chủ khởi động lại, hãy bật dịch vụ:sudo systemctl enable keycloak
Bước 6: Truy Cập Keycloak qua Trình Duyệt
Mở trình duyệt và truy cập Keycloak:
Sau khi Keycloak đã được khởi động, bạn có thể truy cập giao diện web của Keycloak tại địa chỉ:http://<your-server-ip>:8080
- Đăng nhập lần đầu tiên:
- Khi lần đầu tiên truy cập vào giao diện web của Keycloak, bạn sẽ cần phải tạo một tài khoản quản trị viên. Sử dụng lệnh sau để tạo tài khoản quản trị viên:
sudo -u keycloak /opt/keycloak/bin/add-user-keycloak.sh -u admin -p admin
- Lệnh trên sẽ tạo tài khoản quản trị viên với tên người dùng admin và mật khẩu admin. Bạn có thể thay đổi tên người dùng và mật khẩu này nếu cần.
- Truy cập bằng tài khoản quản trị viên:
Sau khi tài khoản đã được tạo, bạn có thể đăng nhập vào giao diện quản trị của Keycloak tại http://<your-server-ip>:8080/auth/ với tên người dùng và mật khẩu đã thiết lập.
Bước 7: Cấu Hình Keycloak
Bây giờ, bạn đã có thể đăng nhập vào giao diện quản trị của Keycloak và bắt đầu cấu hình các realms, client, user, và roles cho hệ thống của mình.
Kết luận
Với các bước trên, bạn đã hoàn tất việc cài đặt và cấu hình Keycloak trên Ubuntu 20.04. Keycloak cung cấp một giao diện quản lý dễ sử dụng và các tính năng mạnh mẽ để xử lý xác thực và phân quyền người dùng trong ứng dụng của bạn. Chúc bạn thành công với việc sử dụng Keycl