API 지원 요청 (SAG API Portal에서 패키지 화면의 Plan을 클릭해서 액세스 토큰 요청할 때 호출하는 API와 파라미터)
- Gateway 설치
- 테스트용 api 1개 생성
- 테스트용 패키지 1개 생성
- SAG API Portal로 publish
- 구성
- 모든 포트는 기본포트로 설치 하였습니다.
- webMethods API Gateway - 192.168.1.143:9072
- webMethods API Portal - 192.168.1.66:18101
- GW 설정
- API : TESTAPI
- Package : TESTPACKAGE - TESTPLAN
- API AccessToken 요청 테스트

+ ) wireshark 용으로 PORTAL02 도 생성
- 생성된 Application

- Wireshark 분석
- 호출 순서 : Local (192.168.1.57) -> API Portal (192.168.1.66) -> API Gateway (192.168.1.143)
- Local -> API Portal : [POST] http://192.168.1.66:18101/abs/apirepository/accesstokens/external/customauth
- API Portal -> API Gateway : [POST] http://192.168.1.143:5555/rest/apigateway/accesstokens
- Local (192.168.1.57) -> API Portal (192.168.1.66) 호출 분석

192.168.1.57 : Local -> 192.168.1.66 : API Portal < 내부에서 한번 더 API Gateway 쪽으로 호출하여 Application 생성하는 API 인 듯 합니다>
Request Header : Authorization Basic + BASE64Encode(system + ":" + manager )
Cookie:
routing.abs=.abs0000000000;
locale=ko-KR;
routing.ecp=.ecp0000000000;
accesstoken=eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDI3NDU0NTgsImp0aSI6ImgxY3ZWTmNVTVU5NzhFWDlVSnZoZmRqdW9HV3BScmI5TDcyenpXckNxWlo0M0t3SyIsInN1YiI6InN5c3RlbSIsInRlbiI6ImRlZmF1bHQiLCJhcGkiOmZhbHNlfQ.5U1AmDTteoaw-9Cal_X_m (HS256 / JWT 토큰)

payload 값
{
"iat": 1642745458,
"jti": "h1cvVNcUMU978EX9UJvhfdjuoGWpRrb9L72zzWrCqZZ43KwK",
"sub": "system",
"ten": "default",
"api": false
}
Prameter
Form item: "consumer_appName" = "PORTAL01" >> Application 명
Form item: "consumer_appDesc" = ""
Form item: "consumer_app_redirect_uri" = ""
Form item: "api.id" = "c.package.API-Portal.23ZSkXqAEew9jh79IyKsng.-1" (??)
Form item: "plan.id" = "dbb02741-7a80-11ec-3d8e-1efd2322ac9e" (gateway index에 저장된 id 값과.. 다릅니다..)
Form item: "csrfToken" = "dNEKVmjN1XAiveV4ry7rWZoiASDdoq_IbqhUki9GIkM" (??) 자동생성 값인지 ..?
- API Portal 192.168.1.66 -> API Gateway 192.168.1.143 호출


Request Header : Authorization = Basic + base64encode (Administrator:manage)
Request Body (?) (application/json)
{
- "executor":{
- "firstname":"Administrator",
- "name":"system",
- "lastname":"System",
- "email":null,
- "id":"54b53072-540e-3eb8-b8e9-343e71f28176"
},
- "source":{
- "id":"dc006a20-7a80-11ec-3d8e-1efd2322ac9e"
},
- "contextdata":{
- "consumer_appName":"PORTAL02",
- "consumer_appDesc":"",
- "consumer_app_redirect_uri":"",
- "domain_id":"db765291-7a80-11ec-3d8e-1efd2322ac9e",
- "plan_id":"dbb02741-7a80-11ec-3d8e-1efd2322ac9e",
- "provider_id":"f5e8b785-5789-4124-b7de-29d4bb658037", // gateway_default_portalgateways 인덱스에 저장 되어 있는 값.
- "redirect_uris":[
],
- "tenant":"default"
},
- "type":"REQUEST_SUBSCRIPTION",
- "eventid":"39fe3490-7a86-11ec-3d8e-1efd2322ac9e",
- "status":"NEW",
- "portalURL":"https://192.168.1.66:18102/#default/home",
- "creationdate":"2022-01-21 01:49:06"
}
- 관련 인덱스 값
- plan 인덱스
{
"_index": "gateway_default_plans-000001",
"_type": "_doc",
"_id": "7d78044f-a08a-4456-aa6b-abecbdcd068e",
"_score": 1.0,
"_source": {
"id": "7d78044f-a08a-4456-aa6b-abecbdcd068e",
"name": "TESTPLAN",
"version": "1.0",
"deprecated": false,
"isProtected": false,
"terms": "TERM",
"license": "LICENSE",
"policies": [
"11a9f346-decd-44a3-88ed-4dbf9a838638"
],
"cost": {
"currency": null,
"value": "COST",
"duration": null
},
"quota": {
"enforcementPolicy": "f3f73ec0-9aeb-4fe7-8301-aa0a01566e89"
},
"creationDate": 1642745228378,
"modifiedDate": 1642745307486,
"protected": false
}
}
- application 인덱스
{
"_index": "gateway_default_applications-000001",
"_type": "_doc",
"_id": "0290acd8-d2db-4104-86af-29e5e5cd11e1",
"_score": 1.0,
"_source": {
"applicationID": "0290acd8-d2db-4104-86af-29e5e5cd11e1",
"name": "PORTAL01",
"description": "",
"owner": "54b53072-540e-3eb8-b8e9-343e71f28176",
"identifiers": [],
"accessTokens": {
"apiAccessKey": {
"apiAccessKey": "********************************",
"expirationInterval": null,
"expirationDate": null
},
"oauth2Token": null
},
"creationDate": "2022-01-21 06:15:30 GMT",
"lastUpdated": 1642745730626,
"siteURLs": [],
"jsOrigins": [],
"version": "1.0",
"packageName": "TESTPACKAGE",
"packageId": "7d0497b0-cc71-4378-9966-29ee2b22d559",
"planName": "TESTPLAN",
"planId": "7d78044f-a08a-4456-aa6b-abecbdcd068e",
"provider": "APIPORTAL",
"isSuspended": false,
"authStrategyIds": [
"38a40086-0e73-462e-9bae-e524c91ef23d"
],
"primaryNode": {
"hostId": "c04cf1f0-2fa0-42ad-818c-390a3cf41e06",
"replica": 0
},
"subscription": true,
"shell": false
}
},
{
"_index": "gateway_default_applications-000001",
"_type": "_doc",
"_id": "deb6e221-4153-4121-972d-8f6955358665",
"_score": 1.0,
"_source": {
"applicationID": "deb6e221-4153-4121-972d-8f6955358665",
"name": "PORTAL02",
"description": "",
"owner": "54b53072-540e-3eb8-b8e9-343e71f28176",
"identifiers": [],
"accessTokens": {
"apiAccessKey": {
"apiAccessKey": "********************************",
"expirationInterval": null,
"expirationDate": null
},
"oauth2Token": null
},
"creationDate": "2022-01-21 06:49:06 GMT",
"lastUpdated": 1642747746581,
"siteURLs": [],
"jsOrigins": [],
"version": "1.0",
"packageName": "TESTPACKAGE",
"packageId": "7d0497b0-cc71-4378-9966-29ee2b22d559",
"planName": "TESTPLAN",
"planId": "7d78044f-a08a-4456-aa6b-abecbdcd068e",
"provider": "APIPORTAL",
"isSuspended": false,
"authStrategyIds": [
"8251d6ad-bbc1-4cc2-8018-28cbb122b3c3"
],
"primaryNode": {
"hostId": "c04cf1f0-2fa0-42ad-818c-390a3cf41e06",
"replica": 0
},
"subscription": true,
"shell": false
}
}
- Plan Id

- SR 답변

10.7 기능 지원 X / 10.11 기능 지원