[Open API 프로젝트 #3] 금융권 사설인증서 도입

Nowod_K·2022년 4월 29일
0

Open API 프로젝트

목록 보기
3/3

도입과정

  1. 우리는 단순 API 사용자인가?
  2. API 사용 시 CI값 활용을 위한 암호화 방식은 어떻게 할 것인가?
  3. 인증외에 신규개발이 필요한 서명 기능을 제공받을 것인가?

앞서 1,2의 협의 내용은 개발적인 부분보다는 기획단계의 협의였다면 3번의 경우 개발적인 부분의 협의가 필요한 내용이였다.

인증외에 신규개발이 필요한 서명 기능을 제공받을 것인가?

일단 원래 사전 협의 및 미팅 때 실무담당자가 아닌 현업담당자들간의 협의를 진행하면서 인증과 서명기능 모두를 제공할 수 있다고 협의가 되었다. 그리고 이에 대한 개발을 진행하면서 개발자간의 미팅을 진행하였는데, 놀랍게도 서명기능은 아직 정식 오픈 예정이 없다고 하였다.

일단 먼저 인증 기능과 서명기능의 차이를 설명이 필요하다.
아래 카카오페이 인증관련한 설명자료가 우리가 개발할 사설인증서의 인증 및 서명 API를 완벽하게 설명하고 있다.

우리도 아래와 마찬가지로 앱 to 앱으로 인증과 서명을 진행한다.

(우리 App = MApp, 우리 서버 = MServer, 사설인증서 App = SApp, 사설인증서 서버 = SServer)
먼저 인증에 대해 간략히 설명하면,
1. 고객이 인증 시도 시 MApp에서 MServer로 인증요청을 한다.
2. MServer는 SServer로 인증요청을 보내고, 그에 대한 키값을 전달받아 MApp으로 보내준다.
3. MApp은 키값을 통해 SApp을 호출한다.
4. SApp에서 인증이 완료되면 다시 MApp이 호출되고 결과값에 따라 인증을 완료하거나 실패한다.

그리고 서명의 경우 인증의 프로세스를 진행한 후
5. 서명이 완료되면 MApp에서 MServer로 서명값 검증을 요청한다.
6. MServer에서 SServer로 서명값 검증을 요청한 후 결과를 받는다.
7. MServer에서 결과값에 대하여 MApp으로 보내준다.
8. 서명을 완료하거나 실패한다.


출처 : https://www.kakaocert.com/docs/process?lang=java&service=CMS

위 처럼 서명인증의 경우 추가적인 프로세스와 서명원문에 대하여 암호화에 대한 협의가 필요하기에 개발자간들의 협업이 추가적으로 필요했다.

결과적으로 우리의 요청으로 인증과 서명에 대한 서비스를 모두 Open하기로 했고, 이 모든 것에 대한 협의와 개발을 하는데 장장 6개월이 걸렸던 것이다.

도입결과

사실 내가 이 프로젝트를 리딩하게 될 줄은 전혀 몰랐다. 지금까지는 프로젝트나 개발업무의 일원으로 요청받은 내용을 개발하는게 다였는데, 협의부터 개발까지 다 진행을 하다보니 정말정말 힘들었던 것 같다...

그래도 이 모든 업무를 끝내고 정상적으로 기능이 도입되었을 때의 행복은 이루 말할 수 없다.

사용된 기술
1. 안드로이드, IOS : 앱 스킴 호출 및 결과값에 대한 핸들링
2. JavaScript : 우리 App은 웹뷰 형태라 실제 비즈니스 처리는 js를 사용. (인증, 서명, 내부 api 호출 등), 화면단은 html 이다.
3. Java (Spring) : 인증 API, 서명 API, 암호화 등 서버개발

profile
개발을 좋아하는 마음과 다양한 경험을 토대로 좋은 개발자가 되고자 노력합니다.

0개의 댓글