오픈API

자체인증 (2-legged)

자체인증 (2-legged)

  • 오픈API 포털에서 제공하는 잔액조회, 거래내역조회, 카드 승인내역 조회 등의 사용자 금융정보 조회 서비스 개발이 필요한 이용기관은 사용자 본인확인 및
    사용자 동의절차 등 사용자 인증 후 관련 API서비스를 제공해야 합니다.
  • 사용자 인증 방식은 IBK인증과, 자체인증으로 나뉩니다.

자체인증 (2-legged)이란?

Oauth 2.0의 Client Credentials Grant 절차를 준용한 인증절차입니다.

IBK가 제공하는 오픈API를 이용기관이 사용하기 위해서는 인증 토큰(Access Token)이 필요합니다.
사용자의 개입 없이 단순히 이용기관이 자신에 대한 인증정보(이용기관의 앱 KEY인 Client ID, Client Secret)를 가지고 인증함으로써, IBK로부터 이용기관에 대한 Access Token을 획득할 수 있습니다.

자체인증 이용절차

자체인증 이용기관은 Access Token을 발급받고 모든 API 거래를 해당 토큰으로 수행합니다.
자체인증 이용기관은 IBK기업은행을 통하지 않고 자체 사용자 인증수단을 사용하여 사용자 본인확인 및 동의를 진행해야 합니다.

자체인증 이용절차 설명 아래참고

토큰(Access Token) 발급

자체인증(2-legged)의 경우에는 scope=sa로 정의되며, 이용기관이 보유한 Client ID와 Client Secret을 이용하여 바로 토큰을 획득합니다.
토큰의 유효기간은 90일이며, 유효기간 경과 후 토큰 재발급 절차가 필요합니다.

Request

토큰(Access Token) 발급 Request(HTTP URL, HTTP Method, Content-Type) 표
HTTP URL https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/application/twoLeggedToken
HTTP Method POST
Content-Type application/x-www-form-urlencoded
토큰(Access Token) 발급 Request (항목, 값, 필수, 설명) 표
항 목 필 수 설 명
client_id <Client_ID> 주1) Y IBK에서 발급한 이용기관 앱의 Client ID
client_secret <Client_Secret> 주1) Y IBK에서 발급한 이용기관 앱의 Client Secret
scope 고정값 : sa Y Access Token 권한 범위
grant_type 고정값 : client credentials Y 2-legged 인증을 위한 권한부여 방식 지정

주1) 포털에서 앱 등록 시 자동 발급

### 토큰(Access Token) 발급

curl -X POST \
https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/application/twoLeggedToken
-H 'Content-Type: application/x-www-form-urlencoded' \
-u '{{Client_Id}}:{{Client_Secret}}' \
-d 'grant_type=client_credentials&scope=sa'

Response

토큰(Access Token) 발급 Response (항목, 설명) 표
항 목 설 명
token_type Access Token 유형
- 고정값 : Bearer
access_token IBK에서 발행된 Access Token
scope Access Token 권한 범위
- 고정값 : sa
expires_in Access Token 유효기간(초)
- 고정값 : 7776000 (90일)
consented_on Access Token 유효기간
- UNIX 시간 기준
### 토큰(Access Token) 수신

"token_type": "Bearer",
"access_token": "AAIgY2YyNzg0N2Q4Y2YyNGQ2ZjU5NGYzYTg5ZjJlMDM4ODGZOGe59qZhjqfO43-F-2QgU3w2ldPZXSZvrZCMMkXAR4YQG6rxzDYldx326bzmc789g-gAhjEYjuTP13fJXzZIsa5zORYB9aEaga6zHegYAGeB3UIqTlehOEkLBuk-rVQ",
"scope": "sa",
"expires_in": 7776000,
"consented_on": 1620015664

토큰(Access Token) 폐기

발급받은 토큰을 유효기간이 만료되기 전에 폐기하고자 하는 경우, 기존 토큰정보와 Client ID, Client Secret을 이용하여 토큰을 폐기 처리합니다.

Request

토큰(Access Token) 폐기 Request(HTTP URL, HTTP Method, Content-Type) 표
HTTP URL https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/twoLeggedRevoke
HTTP Method POST
Content-Type application/x-www-form-urlencoded
토큰(Access Token) 폐기 Request(항목, 값, 필수, 설명) 표
항 목 필 수 설 명
client_id <Client_ID> 주1) Y IBK에서 발급한 이용기관 앱의 Client ID
client_secret <Client_Secret> 주1) Y IBK에서 발급한 이용기관 앱의 Client Secret
token_type_hint 고정값 : access_token Y OAuth 2.0 Token 방식 정의
token Access_Token Y 이용기관이 폐기할 토큰

주1) 포털에서 앱 등록 시 자동 발급

### 토큰(Access Token) 폐기

curl -X POST \
https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/twoLeggedRevoke \
-H 'Content-Type: application/x-www-form-urlencoded' \
-u '{{Client_Id}}:{{Client_Secret}}' \
-d 'token_type_hint = access_token&token = {{Access_Token}}&client_id = {{Client_ID}}&client_secret = {{Client_Secret}}'

Response

토큰(Access Token) 폐기 Response(항목, 설명) 표
항 목 설 명
status 정상 처리 여부(success/failure)
- 폐기된 토큰을 재폐기시 failure
- 길이 STR(7)
### 토큰(Access Token) 폐기 결과

“status”: “success”

[참고] 토큰 폐기 후 API 서비스 호출 시

- 오류 코드(401)와 보안오류(Cannot pass the security) 응답

"httpCode": "401",
"httpMessage": "Unauthorized",
"moreInformation": "Cannot pass the security checks that are required by the target API or operation, Enable debug headers for more details."