서로 다른 도메인간 로그인 정보 공유?
문득 어떤 생각이 들었다. 회원 DB를 통합으로 사용하는 A와 B라는 사이트에서 어느 한 사이트에서든 로그인을
했으면 그 정보가 다른 사이트에서 사용될 수 있도록 하는 것.. 각 사이트는 서로 다른 도메인을 사용하고 있을 때
이걸 어떻게 처리하면 좋을지.. 관련 자료를 찾아보긴 했는데 봐도 도무지 무슨 소리인지 몰라 방치하고 있었는데
문득 이런 식으로 처리하면 되지 않을까 하는 생각이 들었다.
테스트를 해보거나 한 것이 아니라서 확신을 할 수 없는데.. 일단 떠오른 생각을 정리해보도록 하겠다.
가령 A사이트에서 로그인을 하면 DB에 이 로그인 정보와 세션 관련 정보를 저장하는 것이다.
그리고 B 사이트에서 로그인을 시도하면 아이디와 비번 등의 관련 정보와 A에서 저장된 로그인 정보 등을 비교해서
세션 ID를 A사이트와 동일하게 해주고 로그인 되었다는 것을 처리해주는 것인데.. 지금 이 글을 쓰면서 드는 생각이
그것보다는 A사이트에서 로그인 체크 중에 B사이트에도 동일한 세션ID로 미리 세션을 생성하도록 하면 이게 더
쉬운 방법이 아닐까 싶다. 이런 식으로 하면 B사이트에서 다시 로그인 버튼을 클릭하는 행위는 필요없을 것이다.
음.. 후자의 방법이 올바른 방법인 것 같은데.. 이걸 구현하려면 어떻게 해야할까? 잠시 고민을 해봐야겠다.
그리고 문제가 될 수 있는 보안문제는 어떤 것이 있을지도 생각을 해봐야겠다.
ㅎㅎㅎ 하시고 싶은건 session fixation 이란 기법인데… 이건 원래 해킹기법 입니다. ㅋㅋㅋ
한국에서는 세션변조라는 이름으로 알려져 있지만, 사실 옳은 번역인 것 같지는 않구요…
굳이 이걸 하시고 싶으시면 예제 살펴보세요.
http://www.daniweb.com/web-development/php/threads/180252
cross site cookie 라던가 session spoofing 은 해킹커뮤니티에서 자세한 정보를 얻으실 수 있습니다.
제 사견입니다만, 이런 방식보다는 OpenID 사용을 하시는 것이 보안상 더 좋을 것 같습니다.
OpenID를 이용하면 좋겠지만 아무래도 사용하시는 분들이
나이가 좀 있으시고 인터넷쪽으로는 별로 관심이 없으신 분들이라
이상한(?) 것을 달아놓으면 한 소리듣습니다. 아무리 좋은 것이라도
클라이언트가 원하지 않는다면 저야 뭐 어쩔 수가 없죠.. ^^;
아…!! 그렇군요… ^^
저는 제 와이프 쇼핑카트 모듈을 직접 만들면서 paypal 하고 구글체크아웃 (몰랐는데 구글체크아웃이 이제 한글지원이되네요.) 달아줬다가 한소리 들었습니다. 그런거 복잡해서 누가쓰냐고… 카드결제 수수료도 월등히 더 싼데 왜 페이팔이나 구글체크아웃이 사용하기 복잡하다고 하는지… 사용하기 쉬운데…… -..-;;
그러셨군요.. 익숙한 사람들에게는 쉽고 더 좋은 것이어도
생소하신 분들에겐 그냥 불편한 것이 되는 것이겠죠.. ㅎㅎ