w.llama 2024. 8. 7. 21:03

OAuth 란?

  • 사용자가 비밀번호를 제공하지 않고도 서비스 제공업체에 정보에 대한 액세스 권한을 부여할 수 있는 안전한 방법입니다. 이프로토콜은 서버 소유자를 대신하여 클라이언트에게 서버 리소스에 대한 보안 위임 액세스를 제공합니다. 클아이언트는 비밀번호 대신 액세스 토큰을 사용하여 보호된 리소스에 접근합니다.
  • 구성 요소
    • 사용자 : 리소스의 소유자
    • 클라이언트 : 리소스 서버에서 제공하는 자원을 사용하는 애플리케이션
    • 리소스 서버 : 보호된 자원을 호스팅하는 서버
    • 인가 서버 : 클라이언트가 액세스 토큰을 얻기 위해 인증을 요청하는 서버
  • 동작 방식
    1. 사용자가 클라이언트 애플리케이션에 로그인 요청을 합니다.
    2. 클라이언트는 인가 서버에 인증을 요청합니다.
    3. 인가 서버는 사용자에게 인증을 요청하고, 사용자가 이를 승인하면 인가 코드를 클라이언트에게 전달합니다.
    4. 클라이언트는 이 인가 코드를 사용해 인가 서버로부터 액세스 토큰을 요청합니다.
    5. 인가 서버는 액세스 토큰을 발급합니다.
    6. 클라이언트는 이 액세스 토큰을 사용해 리소스 서버에 접근합니다.
  • OAuth 1.0 과 2.0
    • 2.0은 1.0 에서 알려진 보안 문제 등을 개선한 버전이며, 기능의 단순화와 확장성을 지원하며, HTTPS를 필수로 사용하여 보안을 강화했습니다. 또한 다양한 인증 방식을 지원한다