개요: 우리 회사 api 솔루션을 고객사에게 보내줄때 같이 주는 명세서를 보다가, refreshToken으로 accessToken 새롭게 발급받는 restAPI 요청이 있었음. 그냥 회사 key로 계속 accessToken을 받으면 되는데 의문이 생겨서 질문함
우선 refreshToken이 뭔지 설명하자면,
- 보안 강화로 인해, accessToken에 만료기간이 있음(회사마다 다르지만, 우리회사 만료기간은 1시간임)
- 이 accessToken을 새롭게 발급받고, 만료기간을 늘리기 위한 용도로 refreshToken이 존재
싸피 프로젝트나, 개인적인 라이브러리(공공데이터 등)에서 이용시에 사용하는 accessToken은 만료기간이 없거나, 매우 길었는데(약 1개월에서 1년사이) 타 b2b 사업은 모르겠지만 우리회사껀 만료기간도 짧고 refreshToken 존재한다는게 의아했음.
그래서 물어봄
왜 refreshToken을 사용하나요?
- b2b 사업상, 회사별로 secretKey를 부여하는데, secretKey를 개발 또는 여러 부서에서 함께 사용하게 된다면, 보안 상 문제가 생긴다. => (맞는말. 보험 플랫폼이기 때문에, key를 이용해서 보험정보, 보험가입정보가 누설될 수 있음)
- refreshToken을 이용하게 된다면, secretKey로 계속 accessToken 을 받기 위한 api 요청을 보내지 않아도 되고, secretKey를 이용한 api 요청이 줄어들면, 그만큼 그만큼 보안이 강화된다
추가적으로 왜 accessToken 기간이 1시간인가?
- 만약 A회사에서 우리회사 api를 호출건 당 100원으로 이용을 하고 있다고 가정해보자. (또한 accessToken 만료기한이 없다고 가정)
- A회사 직원이 B회사로 이직을 하게 되면서, A회사에서 제작하던 제품을 똑같이 만들게 되고, A회사의 accessToken을 이용한다면?
- A회사 + B회사의 api 호출금액을 A회사에서 전부 지불하게 되고, 정보보호에 좋지 않을 뿐만 아니라 경제적인 측면에서도 좋지 않다는 결론에 도달할 수 있다.
- 하지만 accessToken이 1시간이라면? => 고객정보보호 강화에 도움이 되고, 타 회사 산업스파이가 accessToken을 알아내더라도 1시간 내에 이용할 수 없게 되어버리기 때문에 기술 보안에도 큰 도움이 된다!
개발빼고 다 재밌음
'CS' 카테고리의 다른 글
Singleton 이란 (0) | 2024.07.08 |
---|---|
pending 이란? (0) | 2024.07.08 |
TLS (0) | 2024.05.22 |
OAuth 2.0 프레임워크 (0) | 2024.05.22 |
Bearer 인증 (1) | 2024.05.22 |
댓글