데이터 표준 API 인증규격
-
OAuth 2.0 :
1정보주체
의 개인신용정보 전송요구에 따른 업권별 정보제공 API 호출(정보주체의 개인신용정보 전송요구)을 위한 인가‧인증 또는2지원API
호출/제공을 위한 인증 절차는 표준 규격인 OAuth 2.0*을 준용함* IETF RFC 6749 – The OAuth 2.0 Authorization Framework
IETF RFC 7009 – OAuth 2.0 Token Revocation
-
발급주체 : 발급주체, 활용주체 등에 따라 접근토큰 별 상이
- 정보제공 API 호출용
정보주체의 전송요구 및 인증이 완료되면 정보제공자 또는 중계기관이 API 호출을 위한 접근토큰을 발급하여 마이데이터사업자에게 전달- 지원 API 호출용
마이데이터사업자, 정보제공자 또는 중계기관이 지원API를 호출(종합포털이 API제공)하기 위한 접근토큰으로, 종합포털이 접근토큰을 발급하여 해당 기관에 전달- 지원 API 제공용
종합포털이 지원API를 호출(마이데이터사업자, 정보제공자 또는 중계기관이 API제공)하기 위한 접근토큰으로 해당 기관이 접근토큰을, 종합포털이 접근토큰을 발급하여 해당 기관에 전달- 통합인증 API 호출용
정보제공자 또는 중계기관이 통합인증 API를 호출(통합인증기관 제공)하기 위한 접근토큰으로 통합인증 기관이 접근토큰을 발급하여 해당 기관에 전달접근토큰 구분 활용주체
(접근토큰 발급요청)발급주체
(접근토큰 발급)발급시기/용도 정보제공 API 호출용 마이데이터사업자 정보제공자 또는 중계기관 정보주체의 전송요구 및
인증 완료 시지원 API 호출용 마이데이터사업자, 정보제공자, 중계기관 또는 통합인증기관 종합포털 종합포털이 API제공 지원 API 제공용 종합포털 마이데이터사업자,
정보제공자 또는 중계기관종합포털이 API호출 통합인증 API 호출용 정보제공자 또는 제공기관 통합인증기관 통합인증기관이 API 제공 -
규격 : 접근토큰 규격은 접근토큰 무결성 보장이 가능한 JWS* 접근토큰 표준 규격을 사용함
* IETF RFC 7515 - JSON Web Signature(JWS)
** (참고) 오픈뱅킹API의 경우도 금융위 보안성 검토 결과 JWS를 준용
Header, Payload, Signature로 구성되며, Payload 영역에 발급자, 유효기간 등 발급정보를 저장하고, Signature 영역의 전자서명을 통해 위변조 여부를 확인JWS 접근토큰 구성Header : 서명 알고리즘 및 접근토큰 유형 등을 명시하기 위한 객체
예시 : { "alg": "HS256", "typ": "JWT" }Payload : 다양한 정보(Claim)들을 저장하기 위한 객체
이름 설명 비고 iss 접근토큰 발급자 접근토큰을 발급하는 기관의 기관코드 - 정보제공 API 호출용 : 정보제공자 또는 중계기관 기관코드
- 지원 API 호출용 : 종합포털 기관코드
- 지원 API 제공용 : 마이데이터사업자, 정보제공자 또는 중계기관 기관코드
aud 접근토큰 수신자 접근토큰을 발급받는 기관 식별자 - 정보제공 API 호출용 : 데이터수신자(마이데이터사업자) 기관코드
- 지원 API 호출용 : 마이데이터사업자, 정보제공자 또는 중계기관 기관코드
- 지원 API 제공용 : 종합포털 기관코드
jti 접근토큰 식별자 발급주체가 토큰을 식별할 수 있는 ID(임의지정) exp 접근토큰 만료시간
(Expiration)토큰이 만료될 시간 scope OAuth 2.0 접근권한 개인신용정보 제공 범위
(예: "bank.account bank.loan")Signature : Header 및 Payload의 서명값
- 접근토큰 발급주체는 Header 및 Payload를 Base64 인코딩 후 암호화 기술을 이용하여 서명함으로써 접근토큰의 무결성 검증
- ASCII(BASE64URL(UTF8(Header) || ‘.’ || BASE64URL(Payload))을 서명
JWS 접근토큰
- JWS 접근토큰 = BASE64URL(UTF8(Header)) || ‘.’ || BASE64URL(Payload) || ‘.’ || BASE64URL(Signature)
-
정보제공 API 호출용 : 업권별 정보제공 API에 대한 접근권한 관리를 위해서 필요한 정보로서 자산목록 scope와 전송요구 scope로 구분
자산목록 scope : 전송요구에 앞서 본인의 자산목록(계좌목록, 카드목록 등)을 조회할 수 있는 권한을 지정한 scope
업권 분류 전송항목 제공 API (resource만 표기) 업권 은행 계좌 목록 계좌(수신/투자상품/대출상품) 목록 조회 /accounts bank.list 개인형 IRP 계좌 목록 조회 /irps 카드 목록 선불카드 목골 조회 /prepaid DC 목록 DC형 퇴직연금정보 목골 조회 /dc 카드 카드 목록 카드 목록 조회 /cards card.list 선불카드 목록 조회 /prepaid 금융투자 계좌목록 계좌 목록 조회 /accounts inverst.list 개인형 IRP 계좌목록 조회 /irps DC 목록 DC형 퇴직연금정보 목록 조회 /dc 보험 보험증권등 목록 보험증권 목록 조회 /insurances insu.list 대출계좌 목록 조회 /loans 개인형 IRP 계좌 목록 조회 /irps 피보험자 보험 목록 조회 /insured DC형 목록 DC형 퇴직연금정보 목록 조회 /dc 전자금융 전자지급수단 목록 전자지급수단 목록 조회 /prepaid efin.list 계정 목록 계정 목록 조회 /paid 할부금융 계좌 목록 계좌(대출/운용리스) 목록 조회 /loans capital.list 보증보험 보증보험 증권 목록 보증보험 증권 목록 조회 /insurances ginsu.list 통신 계약 목록 통신 계약 목록 조회 /telecoms telecom.list P2P P2P 대출 목록 P2P 대출 목록 조회 /leadings p2p.list P2P 투자 목록 P2P 대출 목록 조회 /invest 인수채권 인수채권/금전
대부 목록인수채권/금전대부 목록 조회 /bonds bond.list 대부 인수채권/금전
대부 목록인수채권/금전대부 목록 조회 /bonds usury.list 개별인증 : 정보주체가 전송요구할 자산을 선택할 수 있는 화면을 정보제공자가 직접 제공한 후, 정보주체가 전송요구를 완료하면 마이데이터사업자가 개인신용정보 전송요구 내역을 본 API들을 이용하여 조회(3.2.1.1-3 참조)하기 때문에 반드시 "자산목록 scope"가 다중 scope 내에 기본적으로 포함되어 있어야 함(아래 "다중 scope 예시" 참조)
통합인증 : 정보주체가 전송요구할 자산을 선택할 수 있는 화면을 마이데이터사업자가 제공하기 때문에 정보주체가 전송요구할 개인신용정보를 특정(선택)하기 위해서는 우선 마이데이터사업자에게 자산목록을 조회할 수 있는 권한 필요
전송요구 scope : 마이데이터사업자가 수집 가능한 정보주체의 개인신용정보 상세 범위 및 권한을 지정한 scope (정보주체가 전송요구 시 선택한 자산에 따라 scope가 결정)
- 정보주체가 전송요구할 개인신용정보를 특정(선택)하면 전송요구 scope가 정해지게 되며, 정보제공자 및 마이데이터사업자는 해당 scope를 기준으로 권한을 통제
업권 분류 정보주체의 전송대상 선택 항목
(화면 UI 구성 항목)전송항목 제공 API (resource)만 표기 scope 은행 수신계좌
정보- 수신계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 계좌에
대한 기본정보,
추가정보 및
거래내역/accounts/deposit/basic bank.deposit /accounts/deposit/detail /accounts/deposit/transactions /accounts/deposit/scheduled 투자상품
정보- 투자상품계좌 목록에서 전송 요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택시 해당 scope 지정)
/accounts/invest/basic bank.invest /accounts/invest/detail /accounts/invest/transactions 대출상품
정보- 대출계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/accounts/loan/basic bank.loan /accounts/loan/detail /accounts/loan/transactions 신탁/ISA
상품 정보- 신탁/ISA 목로에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/accounts/isa/basic bank.isa /accounts/isa/transactions /accounts/isa/detail 개인형IRP
정보- 개인형IRP 계좌 목록에서 전송요구를 원하는 계좌번호를 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/irps/basic bank.irp /irps/detail /irps/transactions 선불카드
정보- 선불카드 목록에서 전송요구를 원하는 계좌번호를 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/prepaid/balance bank.prepaid /prepaid/transactions /prepaid/detail DB 정보 - DB 정보 전송 여/부 선택 ('여' 선택시 해당 scope 지정)
DB 정보 /db/basic bank.db DC
정보- DC 정보 목록에서 전송요구를 원하는 계좌번호를 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 DC형 퇴직연금에
대한 기본정보,
추가정보 및
거래내역/dc/basic bank.dc /dc/transactions /dc/detail 카드 카드
정보- 카드 목록에서 전송요구를 원하는 카드번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 카드에
대한 기본정보 및
승인정보 및 매입정보/cards/{card_id} card.card /cards/{card_id}/approval-domestic /cards/{card_id}/approval-overseas /cards/{card_id}/purchase-domestic /cards/{card_id}/purchase-overseas 포인트
정보- 포인트 정보 전송여/부 선택 ('여' 선택 시 해당 scope 지정)
포인트 정보 cards/point card.point 청구 및 결제
정보- 청구 및 결제정보 전송 여/부 선택 (‘여’ 선택 시 해당 scope 지정)
청구 기본정보,
상세정보 및 결제정보/cards/bills card.bill /cards/bills/detail /cards/payments /cards/payments/revolving 대출상품
정보- 대출상품 정보 전송 여/부 선택 ('여' 선택 시 해당 scope 지정)
단기대출,
장기대출 정보/loans card.loan /loans/short-term /loans/long-term /loans/long-term/transactions 금융
투자계좌
정보- 계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 계좌에
대한 기본정보,
추가정보 및 거래내역/accounts/basic invest.account /accounts/transactions /accounts/products /accounts/pension /accounts/scheduled 개인형IRP
정보- 개인형IRP 계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/irps/basic invest.irp /irps/detail /irps/transactions DB 정보 - DB 정보 전송 여/부 선택 ('여' 선택 시 해당 scope 지정)
DB정보 /db/basic invest.db DC 정보 - DC 정보 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 DC형 퇴직연금에 대한 기본정보, 거래내역 정보, 추가정보 /dc/basic invest.dc /dc/transactions /dc/detail 보험 보험정보 - 보험증권 목록에서 전송요구를 원하는 증권번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 보험증권에 대한 기본정보, 추가정보 및 납입내역 /insurances/basic insu.insurance /insurances/contracts /insurances/car /insurances/payment /insurances/transactions /insurances/car/transactions /insurances/coverages /insurances/general/basic /insurances/general/contracts /insurances/general/payment /insurances/general/transactions /insurances/general/coverages 대출상품
정보- 대출계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
대출 기본정보, 추가정보 및 납입내역 /loans/basic insu.loan /loans/detail /loans/transactions 개인형IRP
정보- 개인형IRP 계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 계좌에 대한 기본정보,
추가정보/irps/basic insu.irp /irps/detail /irps/transactions 피보험자 보험 정보 - 보험증권 목로에서 전송요구를 원하는 증권번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
/insured/basic insu.insured /insured/contracts /insured/car /insured/coverages /insured/general/basic /insured/general/contracts /insured/general/coverages DB 정보 - DB 정보 전송 여/부 선택 ('여' 선택 시 해당 scope 지정)
DB 정보 /db/basic insu.db DC 정보 - DC 정보 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 DC형 퇴직연금에 대한 기본정보, 거래내역 정보, 추가정보 /dc/basic insu.dc /dc/transactions /dc/detail 전자
금융전자지급수단
정보- 전자지급수단 목록에서 전송 요구를 원하는 전자지급 수단 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
전자지급수단,
기본정보,
잔액정보,
자동충전정보 및 거래내역/prepaid/balance efin.prepaid /prepaid/charge /prepaid/transactions 결제 정보 - 계정 목록에서 전송요구를 원하는 계정 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
결제내역,
결제수단,
정보/paid/methods efin.paid /paid/transactions 할부
금융대출상품
또는
운용리스
정보- 대출상품 또는 운용리스 계좌 목록에서 전송요구를 원하는 계좌번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 계좌에
대한 기본정보,추가정보 및
거래내역/loans/basic capital.loan /loans/detail /loans/transactions /loans/oplease/basic /loans/oplease/transactions 보증
보험보증보험
정보- 보증보험 증권 목록에서 전송 요구를 원하는 증권번호 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 보증보험 증권에 대한 기본정보 및 납입내역 /insurances/basic ginsu.insurance /insurances/transactions 통신 통신
정보- 통신 계약 목록에서 전송요구를 원하는 계약 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 통신 계약에 대한 청구정보, 납부정보 및 결제정보 /telecoms/bills telecom.mgmt /telecoms/tranctions /telecoms/paid-transactions P2P P2P 대출
정보- P2P 대출 목록에서 전송요구를 원하는 계약 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 대출에 대한 청구정보, 납부정보 및 결제정보 /lendings/basic p2p.lending /lendings/detail /lendings/transactions P2P 투자 정보 - P2P 투자목록에서 전송요구를 원하는 투자계약 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 투자에 대한 기본정보 및 거래내역 /invest p2p.invest /invest/basic /invest/transactions 인수채권 인수채권/금전대부 정보 - 인수채권/금전대부 목록에서 전송요구를 원하는 계약 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 인수채권/금전대부에 대한 잔액정보 및 거래내역 /bonds/detail bond.bond /bond/tranctions 대부 인수채권/금전대부 정보 - 인수채권/금전대부 목록에서 전송요구를 원하는 계약 선택
- 복수 개 선택 가능 (하나라도 선택 시 해당 scope 지정)
선택한 인수채권/금전대부에 대한 잔액정보 및 거래내역 /bonds/detail usury.bond /bond/tranctions 다중 scope : 정보주체가 전송요구할 개인신용정보를 복수 개 선택 시 다중 scope를 지정하여 권한을 설정하며, scope 값 사이를 공백(space)로 구분
- 중계기과의 경우 정보주체별 및 정보제공자(중계기관 이용기관)별 scope 관리 필요
다중 scope 예시-
1. 정보주체가 은행A에게 투자상품정보, 개인형IRP정보에 대한 전송요구 시 scope :
- "bank.list bank.invest bank.irp" -
2. 정보주체가 카드사B에게 카드정보, 포인트정보 및 대출상품정보에 대한 전송요구 시 scope :
- "card.list card.card card.point card.loan" -
3. 정보주체가 보험사C에게 어떤 정보도 전송요구를 하지 않은 경우 scope :
- "insu.list" - ※ 정보제공자(또는 중계기관)는 어떤 경우라도 scope에 해당 업권의 "자산목록 scope"(<industry>.list)를 반드시 포함하여 접근토큰을 발급(개별인증-002 API)해주어야 마이데이터사업자가 정보주체의 개인신용정보 전송요구 내역 조회가 가능
지원 API 호출용/제공용 : 고정값('manage') 사용
통합인증 API 호출용 : 고정값('ca')사용
- 정보제공 API 호출용 : 접근토큰의 유효기간은 최장 90일, 리프레시 토큰의 유효기간은 최장 1년으로, 최초 발급된 후 최장 1년 이내에는 정보주체 재동의 없이 리프레시 토큰을 이용하여 접근토큰 갱신이 가능
- 지원 API 호출용/제공용, 통합인증 API 호출용 : 접근토큰의 유효기간은 최장 1년이며, 리프레시 토큰은 지원 안 함