[Authentication/Security] OAuth

Steve·2021년 6월 30일
0

웹개발 코스

목록 보기
53/59

What is OAuth?

OAuth is an open-standard authorization protocol or framework that provides applications the ability for “secure designated access.”

쉽게 말해 소셜 로그인.

굳이 회원가입해서 id 와 pw 를 기억할 필요가 없다.

주요 용어

  • Resource Owner : 액세스 중인 리소스의 유저
  • Client : Resource owner를 대신하여 보호된 리소스에 액세스하는 응용프로그램
  • Resource server : client의 요청을 수락하고 응답할 수 있는 서버
  • Authorization server : Resource server가 액세스 토큰을 발급받는 서버. 페이스북, 구글 서버.
  • Authorization grant : 클라이언트가 액세스 토큰을 얻을 때 사용하는 자격 증명의 유형.
  • Authorization code : access token을 발급받기 전에 필요한 code. client ID로 이 code를 받아온 후, client secret과 code를 이용해 Access token 을 받아옴.
  • Access token : 보호된 리소스에 액세스하는 데 사용되는 credentials
  • Scope : 토큰의 권한. 주어진 액세스 토큰을 사용하여 액세스할 수 있는 리소스의 범위.

authorization vs authentication

  • authorization - 권한 부여 (guest, admin 권한 등)
  • authentication - 인증

Social login logic flow

상황) 구글아이디로 로그인

  1. 구글아이디로 로그인하기 클릭
  2. 클라가 구글서버에 authorization code 요청
  3. 구글의 소셜로그인관련 사이트로 이동
  4. 권한 허용 클릭
  5. 구글서버가 redirect uri 를 통해 code 보냄
  6. 클라는 code 를 서버에 전달
  7. 서버는 구글서버에 code 를 보내서 access token 요청
  8. 구글서버는 서버에 access token 보냄
  9. 서버가 클라에 access token 전달
  10. 소셜로그인 완료
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글