디벨로퍼스 ID : 12476
안녕하세요. 카카오 로그인 구현 중에 궁금증이 있어 질문 남깁니다. 토큰 발급 (REST API | Kakao Developers REST API ) 을 할 때 access token 이 네트워크 응답으로 노출되는데 괜찮을지 궁금합니다.
예전에 이와 같은 답변을 확인했는데 js sdk 나 rest api 나 access token 이 네트워크 응답으로 노출되는 것은 동일한데 어떤 이유로 보안상 rest api 가 더 낫다고 하시는 걸까요?
tim.l
10월 31, 2024, 5:50오전
2
안녕하세요.
앞선 안내에서
백엔드에서 REST-API로 액세스토큰 발급 하는 것을 권장드렸고
유저가 클라이언트를 통해 백엔드에 요청하고 백엔드 내부에서 카카오톡과 교신하면 네트워크 응답으로 노출될 수 없습니다.
제공하시는 백엔드 요청/응답만 노출되지요.
당연히 백엔드에서 격리하여 호출하는 것이 안전합니다.
accessToken 이 필요한 이유는 /v2/user/service_terms, /v2/user/me 와 같은 요청을 하려고 하는건데요. 유저 정보를 요청하는 과정도 백엔드에서 처리하는 것이 권장되는 것이죠?
tim.l
10월 31, 2024, 6:13오전
4
네, 맞습니다.
액세스 토큰 발급 받은 이후, 카카오 KAPI와의 교신을 백엔드에 일임하고
프론트에는 결과만 전달하시는 것을 권장드립니다.
관련하여
"제23조의6(연계정보의 안전조치 의무 등) "조항이 포함된 정보통신망법 개정안 [2024. 7. 24. 시행] 국가법령정보센터 에 따라 /v2/user/me에서 전달하는 CI 항목도 서버to서버 CI 전송구간 HTTPS 적용하여 REST API로 백엔드에서만 사용해야합니다. (프론트 전달 불가)
참고. 본인확인서비스 이용기관 취약점 자체점검 체크리스트
https://identity.kisa.or.kr/web/main/bbs/guide/44?cp=1&sortOrder=BA_REGDATE&sortDirection=DESC&bcId=guide&baNotice=false&baCommSelec=false&baOpenDay=false&baUse=true
이해했습니다. 말씀해주신 CI 항목에 대해서도 확인해보도록 할께요.
그럼 js sdk 를 사용하여 사용자 정보 요청할 때는 어쩔 수 없이 accessToken 이 노출되는 구조인거죠? 토큰 할당을 할 때도 서비스 서버에서 accessToken 을 받아야하니까요. 이 경우에 보안을 높일 수 있는 방법은 어떤 것이 있을까요?
tim.l
10월 31, 2024, 6:41오전
6
네, 프론트 웹브라우저에서 요청하는 것이므로 노출됩니다.
공개된 웹환경이라면
JS SDK로 사용자 정보를 요청 안하시는게 좋을 것 같은데요. 보안을 높히시려면 프론트에 관련 로직을 백엔드로 이관하시면 좋을 것 같습니다.
1개의 좋아요