OAuth

다혜·2022년 4월 8일
0

Web

목록 보기
1/5
post-thumbnail

🔗 OAuth

인증을 위한 개방형 표준 프로토콜

  • Third-Party 프로그램에게 리소스 소유자를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공
    • Google, Facebook, Kakao 등

OAuth 2.0은 1.0에서 알려진 보안 문제 등을 개선한 버전



✅ OAuth 용어 정리


📌 역할

이름설명
Resource Owner리소스(개인정보) 소유자. 웹 서비스를 이용하려는 유저.
ClientResource Owner의 리소스를 사용하고자 접근을 요청하는 애플리케이션.
Resource ServerResource Owner의 정보가 저장돼있는 애플리케이션 회사 서버.
Authorization Serve권한서버. 인증을 해주는 서버. 클라이언트의 접근 자격을 확인하고 AccessToken을 발급하여 권한을 부여.

📌 주요 용어

이름설명
Access Token리소스 서버에게서 리소스 소유자의 정보를 획득할 때 사용되는 만료 기간이 있는 Token.
Refresh TokenAccess Token 만료 시 재발급 받기 위한 용도로 사용하는 Token
Authentication인증. 접근 자격이 있는지 검증하는 단계
Authorization인가. 리소스에 접근할 권한을 부여하고 리소스 접근 권한이 담긴 Access Token을 제공.



✅ 권한 부여 방식


① Authorization Code Grant

✔ 권한 부여 승인 코드 방식
✔ 권한 부여 승인을 위해 자체 생성한 Authorization Code를 전달하는 방식
✔ 많이 쓰이고 기본이 되는 방식

  • 간편 로그인 기능에서 사용되는 방식
  • 클라이언트가 사용자를 대신하여 특정 자원에 접근을 요청할 때 사용됨.
  • 타사의 클라이언트에게 보호된 자원을 제공하기 위한 인증에 사용.
  • Refresh Token의 사용 가능

1) 권한 부여 승인 요청 시 response_type을 code로 지정하여 요청
2) 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력
3) 로그인이 완료되면 권한 서버는 권한 부여 승인 코드 요청 시 전달받은 redirect_url로 Authorization Code를 전달
4) Authorization Code는 권한 서버에서 제공하는 API를 통해 Access Token으로 교환


② Implicit Grant

✔ 암묵적 승인 방식
✔ 자격증명을 안전하게 저장하기 힘든 클라이언트에게 최적화된 방식

  • 권한 부여 승인 코드 없이 바로 Access Token이 발급.
  • Access Token이 바로 발급되기 때문에 만료기간을 짧게 설정하여 누출 위험 방지.
  • Refresh Token의 사용 불가
  • Access Token 획득 절차가 간소화되어 응답성과 효율성이 높음.
  • Access Token이 URL로 전달된다.

1) 권한 부여 승인 요청 시 response_type을 token으로 설정하여 요청
2) 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력
3) 로그인이 완료되면 권한 서버는 Authorization Code가 아닌 Access Token를 redirect_url로 바로 전달


③Resource Owner Password Credentials Grant

✔ 자원 소유자 자격증명 승인 방식
✔ 간단하게 username, password로 Access Token을 받는 방식

  • 자신의 서비스에서 제공하는 애플리케이션일 경우에만 사용되는 방식.
  • Refresh Token의 사용 가능

  • 제공하는 API를 통해 username, password을 전달하여 Access Token을 받음

④ Client Credentials Grant

✔ 클라이언트 자격증명 승인 방식
✔ 클라이언트의 자격증명만으로 Access Token을 획득하는 방식

  • OAuth 2.0의 권한 부여 방식중 가장 간단한 방식
  • 클라이언트 자신이 관리하는 리소스 혹은 권한 서버에 해당 클라이언트를 위한 제한된 리소스 접근 권한이 설정되어 있는 경우 사용
  • Refresh Token의 사용 불가





💛 참고 :
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
https://charming-kyu.tistory.com/36

profile
봉식이를 위한 개발을 하고 싶오

0개의 댓글