< 참고자료 >
- For Securing APIs using OAuth 2 in API Gateway Tutorialrefer https://tech.forums.softwareag.com/t/securing-apis-using-oauth-2-in-api-gateway/237217
- For securing APIs using 3rd party OAuth 2 provider in API Gateway for versions 10.3 and above please refer https://tech.forums.softwareag.com/t/securing-apis-using-3rd-party-oauth-2-provider-in-api-gateway
- For securing APIs using OAuth2 in API Gateway for versions below 10.2 and below please refer https://tech.forums.softwareag.com/t/securing-apis-using-oauth2-in-api-gateway-10-2-and-below
- For securing APIs using thirdparty OAuth2 identity provider in API Gateway for versions below 10.3 please refer https://tech.forums.softwareag.com/t/securing-apis-using-thirdparty-oauth2-identity-provider-in-api-gateway-10-1-10-2
- For securing APIs using JSON Web Token in API Gateway for versions 10.3 and above please refer https://tech.forums.softwareag.com/t/securing-apis-using-json-web-token-in-api-gateway
- Authorize Data 저장 용 Index 생성 ex) gateway_authorize_data_1



- OAuth - JWT Token Mapping Index ( 10.7 authCode 에 활용 가능한지 확인 해볼 필요 ) ex) gateway_authroize_oauth_jwt_mapping


-> CI 정보 ? org_code index mpaaings에 추가해야 하는지..?
- Application Strategy 설정

- AUTH-001 (개별인증-001) 서비스

- Redirect URL validation 추가

- pub.client:http
- strategies 인덱스에서 입력 받은 clientId로 Strategy 검색
- pub.string:compareStrings
- 검색 된 strategy 내부 저장되어 있는 (application 생성 시 저장 된) redirect uri 와 비교
- true / false ( 문제.. => Loop 라서 false가 여러번 나온다던가.. 첫 비교 값이 false일 때 ?? 체크해봐야 할 듯 )
- true : authroize - approve flow service 수행
- false : debugLog 수행
=> 12-1. 추가 노트 정리
- AUTH-002 (개별인증-002) 서비스
5-1 . OAuth 발급

- #5, #6 에 해당되는 base64urlEncode JavaService

- AUTH-001 ~ 002 호출 테스트

org_code = org_code_test
CI = 10 으로 테스트
Access Token URL : http://192.168.1.227:5555/invoke/AUTH_002.service/AUTH_002?CI=10


###############################################################################################
- gateway_default_oauth2authcode Index 테스트
Request에 따른 차이인 듯


Postman에서 호출 시에 ClientAuthentication 을 Send as Basic Auth header 로 하면 AuthCode 저장 됨
5-2 . OAuth-JWT Swap -> JWT 발급 (수정)

- #4. jwt 토큰 ( Signature 없는 JWT ) 을 access_token에 매핑 하여 OutputDocument 생성
- documentToJSONString
- setResponse2 에서 output setting
- 결과
- JWT 토큰 발급

###############################################################################################
- AUTH-003 (개별인증-003) 테스트 (????)
- Refresh token 설정
- Token refresh limit 설정 후 토큰 발행 시 refresh token 발급 됨 ( AUTH-002 )


해당 값은 gateway_default_oauth2materializedtoken-000001 에 저장 된다. ( 10.7 기준 )

10.5 기준 발급

Token Name test_pstm_auth
Access Token 196be622817c4137bf1b1d761d39fa65
Token Type Bearer
refresh_token 795d8488f82144a6afac325239faf11c
expires_in 3600
scope Test_Scope_AS
############# Refresh Token 발급 (HTTPS)

3355 포트 열어서 테스트 진행 5543(default) 내부 설정 바꾸고 테스트 하면 안되는데.. 이유를 알 수 없음

POSTMAN 토큰 발급


- grant_type : "refresh_token" 고정 값
- refresh_token : getAccessToken 시 발급 받은 refresh_token
- scope : (생략 가능)


10.5 IS 서비스가 있음, https 가 아니어도 실행 됨

- AUTH-004 (개별인증-004) 테스트
- 추가해야 할 부분
- token_type_hint(토큰 유형) = refresh Token 일 때
- client_secret, org_code 처리 방식

- 입력 받은 token 값으로 gateway_default_oauth2materializedtoken Index에서 Search
- 입력 받은 token, client_id 값과 Index에 저장 된 AccessTokenId , clientId 값 비교해서 동일한지 확인
- 값이 같으면 pub.oauth:revokeToken
- 테스트
- 토큰 발급 (Token : a031919ed42249e2a0319cafd95f22db)

- gateway_default_oauth2materializedtoken 에 저장되어있는 토큰

- Postman 호출

- Permission을 전부 Anonymous 로 했음에도 Authroization 에서 Basic Auth 를 사용하지 않으면 아래 해당 에러 발생


- Revoke 확인
