#15 (OAuth & Social Login)

Angelo·2020년 8월 1일
0

Codestates  IM Javascript

목록 보기
12/13
post-thumbnail

OAuth 2

OAuth의 모든것 링크

Oauth2.0 ?

  • 웹, 앱에서 흔히 찾아볼 수 있는 '소셜 로그인' 방식

  • 전통적인 방법은 직접 작성한 서버에서 인증을 처리, OAuth는 인증을 중개
    (ex : 구글, 깃헙등이 사용자의 인증을 대신해주고 접근권한에 대한 토큰을 발급, 서버 인증을 가능하게 한다.)

  • 정보와 리소스를 안전하고 신뢰된 방식으로 공유할 수 있게 해주는 프로토콜

Autehntication과 Authorization의 차이 ?

  • Authentication은 로그인하는 절차를 의미(사용 인증에 사용되는 암호, 패스워드)
  • Authorization은 로그인 후 유저를 구분하는 절차(접근 및 권한 인증에 사용되는 암호, 인증번호)
  • 장점 :
  1. 엑세스 토큰이 서버간에 교환됨으로 키가 탈취될 위험이 준다.
  2. 사용자가 A 사이트의 계정으로 다른 B, C 사이트들에 로그인 할 수 있으므로 해당 사용자는 A의 계정만 관리하면 되고, B, C들은 사용자의 개인정보를 못 가지게 되서 혹 B, C가 해킹 당할 경우에도 A의 개인정보를 바꿀 필요가 없다.
  3. 사용자가 직접 B, C의 접근 권한을 취소시킬 수 있다.
  • 프로세스 :
  1. app(service)가 user에게 인증 요청
  2. user가 app에 인증정보 입력 (id/pwd)
  3. app은 인증서버에 인증 정보 전달
  4. 인증 서버는 인증 토큰(access token) 부여
  • token은 랜덤 문자열, 접근의 유효성 확인
  1. app은 리소스 서버에 토큰 전달
  2. 리소스 서버는 보호된 리소스를 app에 전달
  • 서버에는 인증서버와 리소스 서버가 있는데, 인증 서버는 OAuth를 구현한 Open API 제공하는 서버이고 인증을 담당 한다.
    리소스 서버는 사용자의 정보를 가지고 있다

profile
나만의 학습 노트

0개의 댓글