카카오 계정으로 로그인하기에 대한 생각..

일기/개발 일지2017. 11. 27. 01:11
안녕하세요. 개발자 드리머즈 입니다.

음..제 생각이 맞다면 아래의 질문은 지금 제가 만들고 있는 iOS app에서 느끼는 문제?에 관한 질문인 것 같습니다.

iOS용 kakao SDK를 사용하여.. [카카오계정으로 로그인]하기를 구현했지만
보안측의 문제를 발견했습니다.

iOS app에서 kakao SDK를 사용하여 사용자 인증을 성공하면,
app 내부에서 사용가능한 세션?, access token, refresh token을 얻습니다.
그런데 이 보안과 관련된 값들을 바로 서버에서 사용하지 못합니다.
무슨 말이냐면, 예를 들어 획득한 access token을 서버로 보내서,
서버에서 javascript SDK나 REST API를 사용하여 이 access token이
올바른 것인지 아닌지 알 수가 없습니다.
왜냐하면 kakao에서 보안상의 이유로? access token의 scope를 좁게 만들어서
iOS SDK에서 구한 access token은 javascript SDK나 REST API에선 의미가 없어 쓸모가 없습니다.

그래서 결국 app에서 인증된 유저라고 하면 그 걸 믿어야 하는데
거기다가 Android의 경우 디컴파일이 쉽다보니 조작의 가능성이 있어..
app에서 인증된 유저라고 하는 것을 믿어도 되는 것인지 보안 측면에서 우려가 되는 것입니다.

그래서 이상적이라면,
app에서 kakao SDK를 사용하여 사용자 인증에 성공하면 얻을 수 있는, 이 app에서 사용할 수 있는
카카오의 세션을 서버 쪽에서도 이용할 수 있어 인증에 이용할 수 있어야 하는게 아닌가 싶습니다.

제가 보안 쪽으로 아직 잘 몰라 지금의 상황에서 어떻게 구현해야 정석인지 모르겠습니다.
음.. 어쨋든 지금 제 생각은.. app에서 카카오 인증에 성공하면,
php 서버로 메세지를 보내 php 세션을 시작하게 만들어서 직접 세션을 관리하는 방향으로 가려고 합니다.



copiny7

커뮤니티를 구축중인데요
앱에서 로그인해서 accToken을 웹서버로 넘겨서
웹서버에서 accToken을 가지고 사용자 정보 요청을 했더니 권한이 없다면서 안되더군요.

아마 플랫폼별로 accToken이 다른거 같은데

이럴 경우 로그인을 android SDK가 아닌 웹뷰를 통해서 인증을 진행해야하는 것인가요?

만약 그런것이라면 사용자관리 SDK는 무용지물아닌가요?
소스가 모두 디컴파일되는 안드로이드에서 세션이 무슨 소용이죠?
서버에서 세션을 관리할 수 있어야 하는거 아닌가요?

예를 들어 안드로이드에서 로그인을 해서
웹서버에 글을 남기려고 할 때
웹서버가 이 사용자의 세션이 유효한지 판단을 내릴 수 있는 장치가 필요한거 아닌가요?
제가 방법을 모르고 있는건가요?

copiny7

제가 말한 보안이 취약하다는 의미가 단순히 토큰문제가 아닙니다.

지금의 유저관리 android SDK는 반쪽짜리입니다.
카카오스토리나 그외에 카카오 플랫폼에 연계된 앱을 개발할 때는 문제가 되지 않지만

현재 자체 커뮤니티에서 유저관리 부분만 카카오톡으로 관리하고 싶을 경우
android SDK는 무용지물이라는 얘기입니다

웹서버에서는 안드로이드에서 인증한 내용을 확인할 길이 없기 때문이죠

 


작성자

Posted by 드리머즈

관련 글

댓글 영역