오픈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기업은행을 통하지 않고 자체 사용자 인증수단을 사용하여 사용자 본인확인 및 동의를 진행해야 합니다.

- 1. 토크 발급요청 : 사용자는 이용기관 서비스 앱에서 - Cliient ID, Client Secret, Scope(sa)로 IBK로 토크 발급요청. IBK는 이용기관 Client ID/Secret 검증
- 2. 토큰 발급결과 반환 : IBK에서 Access Token 생성(Refresh 미지원) 후 이용기관 서비스 앱으로 토큰 발급결과를 반환. 이용기관 서비스 앱은 Access Token 저장(scope = sa)
- 3. 사용자 인증정보 전달 및 계좌등록 요청 : 이용기관 서비스 내 사용자 인증수단으로(본인확인, 본인인증, 계좌/카드등록요청) IBK에 사용자 인증정보 전달 및 계좌등록 요청. IBK는 계좌등록 처리.
- 4. 4. 계좌/카드정보 등록결과 반환 : IBK에서 이ㅛㅇㅇ기관 서비스 앱으로 계좌/카드정보 등록결과 반환하면 IBK API 이용.
토큰(Access Token) 발급
자체인증(2-legged)의 경우에는 scope=sa로 정의되며, 이용기관이 보유한 Client ID와 Client Secret을 이용하여 바로 토큰을 획득합니다.
토큰의 유효기간은 90일이며, 유효기간 경과 후 토큰 재발급 절차가 필요합니다.
Request
HTTP URL | https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/application/twoLeggedToken |
---|---|
HTTP Method | POST |
Content-Type | application/x-www-form-urlencoded |
항 목 | 값 | 필 수 | 설 명 |
---|---|---|---|
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
항 목 | 설 명 |
---|---|
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
HTTP URL | https://devapiportal.ibk.co.kr:9443/ibk/biz/oauth/twoLeggedRevoke |
---|---|
HTTP Method | POST |
Content-Type | application/x-www-form-urlencoded |
항 목 | 값 | 필 수 | 설 명 |
---|---|---|---|
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
항 목 | 설 명 |
---|---|
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."
로그인 안내
로그인하신 SNS계정과 연동된 아이디가 없습니다.
회원가입 하시겠습니까?