Token introspection với Spring Authorization Server

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Để kiểm tra một access token có còn valid hay không, có expired chưa, có bị revoke hay chưa, có phải do Authorization Server của chúng ta issue hay không, chúng ta sẽ sử dụng endpoint token introspection của Authorization Server để làm điều này.
Với Authorization Server được implement sử dụng Spring Authorization Server, các bạn có thể sử dụng endpoint token introspection là POST request http://localhost:8080/oauth2/introspect với request body có chứa parameter token với value là access token mình chúng ta muốn kiểm tra.
Xem thêm nhiều việc làm Spring Boot hấp dẫn trên Station D
Lưu ý là khi setup Authorization Server sử dụng Spring Authorization Server, các bạn cần cung cấp thông tin issuer bằng cách khai báo một bean của class ProviderSettings, ví dụ như sau:
@Bean public ProviderSettings providerSettings() { // @formatter:off return ProviderSettings.builder() .issuer("http://localhost:8080") .build(); // @formatter:on }
Giả sử bây giờ, các bạn lấy access token của một RegisteredClient được khai báo trong Authorization Server:
// @formatter:off RegisteredClient registeredClient1 = RegisteredClient.withId(UUID.randomUUID().toString()) .clientId("huongdanjava1") .clientSecret("{noop}123") .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST) .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .tokenSettings(tokenSettings()) .build(); // @formatter:on
sau đó request tới endpoint token introspection, các bạn sẽ thấy kết quả như sau:
Bạn có thể quan tâm
- Applicant Tracking System là gì? ATS hoạt động ra sao(Cẩm Nang Tuyển Dụng)
- Principle thiết kế của các sản phẩm nổi tiếng(Công Nghệ)
- Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream(Công Nghệ)