Client Credentials Type의 OAuth 토큰 발급 API 구현
- API 명세서



1. 서비스 구현
- 패키지 구성

- Client_Credential
- docs
- ERROR : 에러 호출 시 JSON 변환 전 Response

- RESPONSE : 성공 호출 시 JSON 변환 전 Response

- srvc
- token : 메인 서비스
- OAuth 토큰 발급 서비스 ( token )

>> pub.client:http (HTTPS 호출 ( getToken 호출)) [메인 서비스]

url : https://192.168.1.143:3355/invoke/pub.oauth:getToken?grant_type=%grant_type%&scope=%scope%
method : post
Content-type : application/json
Authtorization : oauthheader (Request Header [ API 명세서 Authorization 헤더 값] )
trustStore : GW 서버에 등록한 Truststore Alias 명
useJSSE : YES
- 헤더 스왑을 위한 Set Header 서비스 ( swapHeader )

2. API Gateway 설정
- API 정책 설정

- Transport : HTTPS 호출 ( Extended Settings : pg_oauth2_isHTTPS = false 해도 안됨 )
- Request Processing : IS service 호출 / Header Transformation

빈 값 헤더를 추가하는 서비스 ("oauthheader" 헤더 추가)

oauthheader <-> authorization 헤더 swap
authorization = Basic QWRtaW5pc3RyYXRvcjptYW5hZ2U= ( Basic + BASE64Encode(Administrator + ":" + manage) )
- Keystores / Truststores 등록

- Port 등록 (HTTPS 호출 용)

- OAuth Scope 설정

- Scope Mapping 설정

=> 토큰만 발급되면 되는 것인지? / 해당 토큰으로 GW에서 인증처리가 필요한것인지 확인 필요
=> 인증 처리가 필요 할 시 , API Scope 변경 필요 (인증처리가 필요한 API 대상으로 Scope 변경)
- Application 설정

3. API 호출 테스트

Authorization
Username : Client Id 값
Password : Client Secret 값
=> Postman에서 자동으로 Authorization 헤더 등록 Basic + BASE64encode ( client_id + ":" + client_secret )
