Thêm mới client hỗ trợ grant type Resource Owner Password Credentials của OAuth2 trong Keycloak

OAuth 2.0 Security Best Current Practice khuyên chúng ta không nên sử dụng grant type Resource Owner Password Credentials của OAuth2 nhưng nếu ứng dụng của các bạn có nhu cầu sử dụng grant type này thì hãy đọc bài viết này các bạn nhé! Mình sẽ hướng dẫn các bạn cách tạo mới, cấu hình client hỗ trợ grant type Resource Owner Password Credentials của OAuth2 và cách lấy access token với grant type này các bạn nhé!

Giả sử mình tạo mới một client trong Keycloak với tên là huongdanjava_resource_owner_password_credentials như sau:

Mặc định thì như mình nói trong bài viết trước, client này sẽ support Authorization Code và Resource Owner Password Credentials grant type của OAuth2 nên các bạn thấy field Standard flow và Direct access grants được chọn. Chúng ta sẽ disable Standard flow grant type đi rồi nhấn nút Save:

Giả sử mình có một user được khai báo trong Keycloak như sau:

 

Để lấy access token cho client này, chúng ta sẽ sử dụng một RESTful API của Keycloak với POST HTTP method như sau:

với host, port là thông tin của Keycloak server, realm là realm mà client này thuộc về.

Trong phần body của request này, các bạn cần phải truyền thêm các thông tin nữa, bao gồm client_id, username, password và grant_type=password.

Ở ví dụ của mình, thì mình sẽ request với URL như sau:

Trong phần body thì client_id sẽ là huongdanjava_resource_owner_password_credentials, username là huongdanjava, password của user huongdanjava và grant_type=password.

Cụ thể request sử dụng Postman sẽ như sau:

Kết quả sẽ như sau:

Add Comment