기능 POST /oauth/token 요청은 클라이언트에게 access_token을 발급하는 기능을 한다. 발급된 access_token의 만료일시는 연장되지 않는다. 만료되면 재사용이 불가능하다. 만료일시가 다가올 경우 grant_type = refresh_token 파라메터를 요청하면 access_token이 새로 발급된다. 실행조건 grant_type이 authorization_code일 경우 GET /oauth/authorize 요청에 따라 사용자가 로그인 및 권한 위임 동의에 완료하여 redirect_uri를 통해 code 파라메터를 받은 상태이어야 한다. 더 정확히 기술하자면 code 파라메터를 받은지 몇 분 내의 시간이어야 한다. 요청사양 ### grant_type = 'authorizati..
기능 GET /oauth/authorize 요청은 클라이언트가 리소스 서버의 API를 사용하기 위해 사용자(리소스 소유자)에게 권한 위임 동의를 받기 위한 페이지를 출력하는 기능을 수행한다. 실행조건 사용자(Resource Owner)가 로그인되어 있어야 한다. 로그인되어 있지 않을 경우 GET /login로 리다이렉트한다. 요청사양 curl -X GET "http://localhost:8080/oauth/authorize" \ -G \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "scope={scope}" \ -d "grant_type={grant_type}" \ -d "response_type={response_type}..
초기화 Spring Boot OAuth의 초기화는 AuthorizationServerEndpointConfiguration, AuthorizationServerSecurityConfiguration 클래스가 담당한다. 클라이언트 클라이언트 오브젝트는 ClientDetails 인터페이스를 구현해야 한다. 기본 구현체로 BaseClientDetails 클래스가 제공된다. client_secret 값은 절대 클라이언트 외부에 노출되면 안되는 데이터이기 때문에 해시 값으로 변환되어 저장소에 저장되어야 한다. PasswordEncoder 인터페이스의 encode() 메써드를 사용한다. // 텍스트 그대로를 반환한다. 테스트 환경에서만 사용해야 하며 절대 운영 환경에서는 사용하면 안된다. NoOpPasswordEn..
개요 API 서버는 클라이언트에게 정보를 제공하기 위해 존재한다. 우리가 사는 집에는 열쇠가 있기 때문에 열쇠를 가진 사람만 드나들 수 있다. 마찬가지로 API 서버 또한 아무 클라이언트에게 모든 정보를 줄 수는 없다. 클라이언트가 열쇠를 제출하면 그 열쇠를 인증할 수 있는 수단이 필요하다. 이러한 수단에는 여러가지 방식이 있는데 가장 대중적이고 사실상 글로벌 표준처럼 취급되는 것이 바로 OAuth 2.0이다. 이번 글에서는 Spring Boot 기반의 프로젝트에서 OAuth 2.0 서버를 구현하는 방법을 설명하고자 한다. 사전 지식 API의 인증과 권한부여, OAuth 2.0과 Spring Security OAuth 2.0 서버 설계시 고려사항 정리 OAuth 2.0, Grant Type 개념 정리 O..
- Total
- Today
- Yesterday
- Spring MVC 3
- Docker
- java
- jstl
- Kendo UI
- kotlin
- 로드 바이크
- node.js
- 구동계
- 자전거
- chrome
- jpa
- DynamoDB
- JavaScript
- Tomcat
- bootstrap
- CentOS
- JHipster
- Spring Boot
- MySQL
- 평속
- 로드바이크
- spring
- maven
- Kendo UI Web Grid
- 알뜰폰
- jsp
- graylog
- 태그를 입력해 주세요.
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |