[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개의 댓글

Powered by GraphCDN, the GraphQL CDN