OAuth

mangojang·2023년 5월 19일
0

OAuth 란

  • like 구글 로그인 기능
  • 웹 서버에 구글 비밀번호를 제공하지 않고도, 구글 계정의 일부 접근 권한을 부여 할 수 있음.
  • SNS 간편 로그인 기능

안전하지 않은 로그인 방식

  1. 사용자가 서버에 구글 아이디와 패스워드를 보냄
  2. 서버에서 구글로 로그인 요청
  3. 구글 에서 서버로 정보 보내줌
  4. 서버에서 사용자에게 로그인 성공 응답

▶️ 서버에서 사용자의 구글 아이디, 패스워드를 담고 있어 털리면 보안에 위협

Access Token 사용

  1. 서버에서 구글로 Access Token 보내기
  2. 구글에서 서버로 정보 보내줌.

▶️ 아이디, 패스워드가 아닌 토큰을 보냄.

OAuth 2.0

구성요소

  • ResourceOwner : 사용자
  • Client : 서비스 = 서버, 구글의 입장에서는 client 이기 때문에 client라 함.
  • AuthorizationServer : 권한 부여 기능을 담당하는 서버 (=google, facebook)
  • ResourceServer : 사용자의 개인정보를 가지고 있는 서버 (= google, facebook)

과정

출처 - https://80000coding.oopy.io/79ced3f6-8683-47be-b882-1dc39fcebde7

  1. ResourceOwner→ Client : SNS 로그인
  2. Client → ResourceOwner : Client ID, Redirect URI
  3. ResourceOwner → AuthorizationServer : SNS 로그인 페이지 요청(Client ID, Redirect URI)
  4. AuthorizationServer→ResourceOwner : SNS 로그인 페이지 제공
  5. ResourceOwner → AuthorizationServer : SNS 로그인 수행 (ID, Password)
  6. AuthorizationServer→ ResourceOwner : Authorization Code 전달
  7. ResourceOwner → Client : Redirect URI 접속 with Authorization Code
  8. Client → AuthorizationServer : Authorization Code
  9. AuthorizationServer → Client : Access Token
  10. Client → ResourceServer : Access Token으로 API 호출
  11. ResourceServer → Client : 요청된 자원 전달
  12. Client → ResourceOwner : 서비스 제공

참고 문헌

profile
한 걸음 한 걸음 계속 걷는 자가 일류다

0개의 댓글