#OAuth
'당신의 비밀번호는 안녕하십니까?'
이메일, 비밀번호 유출은 매우 빈번하다.
어디 조금만 가입해도 이상한 스팸메일이 날라오며
잊을만 하면
유명한 사이트에서 고객정보 유출 사건이 한번씩 터진다.
유명한 사이트도 개인정보 유출과 관련해서 사건사고가 많은데
잘 알지도 못하는 사이트에 개인정보를 입력하고 싶은가???
몇몇 사람들은 비슷하거나 똑같은 비밀번호를 사용하고
이메일도 주로 하나 또는 두 개만을 사용한다.
그런데 보안이 제대로 지켜지는 지도 모르는 사이트에
덜컥 회원가입을 하고 로그인 한다면
당신의 이메일과 비밀번호는 안전하겠는가???
이런 문제를 방지할 수 있는 것이
바로 OAuth이다.
위키피디아에 따르면
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고
다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나
애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는
접근 위임을 위한 개방형 표준이다.
내가 생각하는 OAuth란 쉽게 말해서
인증과 허가를 대신해주는 것이라 생각한다.
예를 들어,
쇼핑몰 홈페이지가 있다고 가정해보자.
이 쇼핑몰에서 옷을 구매하여 포인트를 적립하고 싶지만
로그인을 해야한다.
게다가 기억력이 안 좋아서
항상 동일한 비밀번호를 사용하기만 한다.
그렇다고 잘 알지도 모르는 사이트에
내 비밀번호를 입력하는 것도 망설여진다.
이때 소셜 로그인을 하면
굳이 잘 알지도 모르는 사이트에
비밀번호 입력을 하지 않아도 되고
로그인이 간편해진다.
OAuth를 이용한 인증방식에 대해 알아보자.
1. 고객이 카카오 로그인을 선택하면 쇼핑몰 서버는 카카오 로그인 페이지를 전송해준다.
2. 고객은 ID와 비밀번호를 입력해 본인을 인증한다.
3. 카카오 서버는 고객을 인증완료 페이지로 redirect 시킨다.
4. 카카오 서버는 redirect하면서 authorize_code 값을 포함시키고 쇼핑몰 서버는 이것을 수집한다.
5. 쇼핑몰 서버는 authorize_code로 카카오 서버에 access token을 요청한다.
6. 카카오 서버는 쇼핑몰 서버에 access token을 발급해준다.
7. 쇼핑몰 서버는 카카오 API 서버에 access token으로 사용자 정보를 불러온다.
정리하자면,
사용자는 카카오에서 로그인을 함으로써 본인을 인증하고
카카오는 인증을 확인하고 사용자 정보 접근을 허가하는 token 값을 발급한다.
이 token 값으로 쇼핑몰 서버는 사용자 정보를 카카오에서 갖고 오게 된다.
쉽게 말해 쇼핑몰과 사용자 사이에 카카오라는 중간자 역할을 둔 것이다.
참고자료
https://ko.wikipedia.org/wiki/OAuth
http://tech.devgear.co.kr/delphi_news/449506
https://d2.naver.com/helloworld/24942
To be continued.........
Made by 꿩
'IT > 보안' 카테고리의 다른 글
[방화벽] 인바운드 & 아웃바운드 (0) | 2022.01.31 |
---|---|
[Spring] Google reCAPTCHA v3 (6) | 2019.07.07 |
SSL인증서 (0) | 2019.03.21 |
CSRF (0) | 2018.12.25 |
XSS 공격과 방어 (2) | 2018.10.25 |