Hướng dẫn sử dụng Keycloak client với Signed JWTs
Mục lục:
- Giới thiệu về Keycloak
- Hướng dẫn thêm client OpenID Connect vào Keycloak
- 2.1. Truy cập giao diện quản lý của Keycloak
- 2.2. Tạo mới một client với Client ID và Client Protocol
- 2.3. Cấu hình Access Type và OAuth Flows
- 2.4. Thiết lập các Scope và Roles
- 2.5. Xác thực với Client ID và Secret
- 2.6. Sử dụng Signed JWTs để xác thực
- 2.7. Thêm khóa công khai cho Client
- 2.8. Trích xuất khóa riêng tư từ PKCS12
- Kết luận
Hướng dẫn thêm client OpenID Connect vào Keycloak
Keycloak là một nền tảng quản lý xác thực và ủy quyền mã nguồn mở, và hỗ trợ việc tích hợp các ứng dụng với các chuẩn xác thực phổ biến như OpenID Connect. Trong bài viết này, chúng ta sẽ tìm hiểu cách thêm một client OpenID Connect vào Keycloak.
1. Giới thiệu về Keycloak
Keycloak là một công cụ quản lý xác thực và ủy quyền mã nguồn mở. Nó cung cấp các tính năng như xác thực đơn sign-on, phân quyền và quản lý người dùng cho ứng dụng web và dịch vụ web. Keycloak tuân thủ các chuẩn xác thực phổ biến như OpenID Connect, OAuth 2.0 và SAML.
2. Hướng dẫn thêm client OpenID Connect vào Keycloak
2.1. Truy cập giao diện quản lý của Keycloak
Đầu tiên, chúng ta cần truy cập giao diện quản lý của Keycloak để tạo mới một client OpenID Connect. Đảm bảo rằng chúng ta đã đăng nhập vào Keycloak với quyền quản trị.
2.2. Tạo mới một client với Client ID và Client Protocol
Trên giao diện quản lý Keycloak, chúng ta chọn realm chứa client và chọn mục "Clients" để tạo mới một client.
Trong màn hình tạo mới, chúng ta nhập Client ID một cách có ý nghĩa và chọn Client Protocol là "OpenID Connect". Sau khi lưu lại, chúng ta quay lại màn hình cấu hình ban đầu cho client của chúng ta.
2.3. Cấu hình Access Type và OAuth Flows
Ở đây, chúng ta cần thiết lập Access Type là "Confidential" để bật các tính năng liên quan đến kiểu truy cập này. Sau đó, chúng ta tắt các luồng OAuth không cần thiết và bật luồng OAuth cho phép sử dụng service accounts.
2.4. Thiết lập các Scope và Roles
Tiếp theo, chúng ta cần đảm bảo các token được phát hành cho client của chúng ta có các Scope mà chúng ta muốn. Điều này tùy thuộc vào nhiệm vụ của client. Chúng ta cũng cần đảm bảo rằng các token cũng chứa thông tin về vai trò của người dùng.
2.5. Xác thực với Client ID và Secret
Nếu chúng ta sử dụng xác thực bằng Client ID và Secret, thì ở bước này chúng ta đã hoàn thành. Client Secret sẽ là mã bí mật và Client ID là mã xác định khách hàng. Chúng ta có thể thay đổi mã bí mật bất kỳ lúc nào.
2.6. Sử dụng Signed JWTs để xác thực
Nếu chúng ta muốn sử dụng Signed JWTs để xác thực, thì Keycloak cần biết khóa công khai của chúng ta, hoặc khóa công khai của client. Chúng ta có thể nhập khóa công khai hiện có hoặc tạo mới khóa mới.
2.7. Thêm khóa công khai cho Client
Chúng ta có thể nhập khóa công khai hiện có từ một tệp tin hoặc tạo khóa mới được lưu trữ trong một tệp PKCS12. Nếu chọn tạo mới, ta cần cung cấp mật khẩu lưu trữ và mật khẩu khóa.
2.8. Trích xuất khóa riêng tư từ PKCS12
Nếu chúng ta muốn sử dụng khóa riêng tư được mã hóa PKCS12, ta có thể sử dụng công cụ openssl để trích xuất khóa riêng tư trong định dạng PEM. Ta cũng cần nhập mật khẩu lưu trữ và mật khẩu cho khóa riêng tư.
3. Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách thêm một client OpenID Connect vào Keycloak. Việc tích hợp này giúp ứng dụng của chúng ta có thể sử dụng các tính năng xác thực và ủy quyền được cung cấp bởi Keycloak.