[WEB] 0Auth 2.0에 대한 이해

Jay ·2023년 4월 6일
0
post-custom-banner

1. 0Auth 2.0 이란?

Open Authorization 2.0
웹사이트 또는 애플리케이션이 사용자를 대신하여 다른 웹 앱에서 호스팅하는 리소스에 액세스 할 수 있도록 설계된 표준 프로토콜이다.

0Auth를 통해 인터넷 사용자들은 비밀번호를 제공하지 않고, google과 같은 서비스의 계정정보에 대한 접근 권한을 부여받을 수 있다.

2012년 0Auth 1.0을 대체했으며 현재 업계 표준으로 사용되고 있다.

1.1 구성요소

Resource owner

리소스(개인정보) 소유자. 유저.

Authorization server

Authorization Server는 Resource Owner를 인증하고, Client가 authorized 될 경우 액세스 토큰을 발급해주는 서버

Resource server

리소스를 호스팅하느 서버. 유저가 접근하고자 하는 API.

Client

어플리케이션. 프론트와 백을 포함.

2. 작동 로직

  1. 유저가 구글 로그인 버튼을 누른다.
  2. 브라우저가 Authorization server로 리다이렉션 된다.
    (response_type , client_id , redirect_uri , scope 정보와 함께)
    3.Authorization URL로 이동된 Resource Owner는 제공된 로그인 페이지에서 ID와 PW 등을 입력하여 인증완료.
  3. 인증이 완료되면 미리 명시해놓은 Redirect URI로 발급된 Authorization code(credential)와 함께 유저가 리디렉션된다.
  4. 프론트에서 구글에서 받은 credential을 백엔드에 전송
  5. 백엔드는 credential을 사용해
  • Authrization server에게 access token을 요청 및 발급받음
  • access token을 활용하여 DB에 유저정보 저장.
  • front에게 로그인이 완료되었다고 응답(how?)
  1. 프론트는 받은 응답을 쿠키 등에 저장하여 활용.

Q

  1. Authorization Server로 리다이렉션 주체는 누가? 백엔드에서 해야하나?
  2. session vs jwt vs token?\

References

https://auth0.com/docs/authenticate/protocols/oauth

https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-OAuth-20-%EA%B0%9C%EB%85%90-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

profile
Jay입니다.
post-custom-banner

0개의 댓글