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"
},
}



  • 관련 인덱스 값

    • 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 기능 지원