Server

OAuth2.0이란?

테런 2023. 4. 2. 13:48
  • OAuth2.0 개념
OAuth2.0은 인증 및 권한 부여를 위한 개방형 표준 프로토콜입니다. OAuth2.0은 사용자가 자신의 데이터를 제3자에게 제공할 수 있도록 허용합니다. 이를 위해 사용자는 자신의 데이터에 대한 액세스 권한을 제3자에게 부여할 수 있습니다. 이 권한은 OAuth2.0을 사용하여 인증 및 권한 부여를 수행함으로써 부여됩니다.

OAuth2.0은 다양한 인증 방법을 지원합니다. 예를 들어, 사용자는 Facebook 또는 Google 계정을 사용하여 인증할 수 있습니다. 이러한 인증 방법은 OAuth2.0을 사용하여 구현됩니다.

 

  • OAuth2.0을 사용하는 이유
보안: OAuth2.0은 사용자의 자격 증명을 공유하지 않고도 제3자 애플리케이션에 대한 액세스 권한을 부여할 수 있습니다.
편의성: OAuth2.0은 사용자가 자신의 데이터를 제3자에게 제공할 수 있도록 허용합니다.
유연성: OAuth2.0은 다양한 인증 방법을 지원합니다.

 

  • OAuth2.0 작동 원리
OAuth2.0은 인증 및 권한 부여를 위한 프로토콜입니다. OAuth2.0을 사용하여 인증 및 권한 부여를 수행하려면 다음과 같은 단계를 거쳐야 합니다.

1. 클라이언트는 사용자에게 인증을 요청합니다.
2. 사용자는 클라이언트에게 인증을 부여합니다.
3. 클라이언트는 인증 서버에게 액세스 토큰을 요청합니다.
4. 인증 서버는 클라이언트에게 액세스 토큰을 제공합니다.
5. 클라이언트는 액세스 토큰을 사용하여 리소스 서버에서 데이터에 액세스합니다.

 

  • OAuth2.0 구현 방법
1. 클라이언트는 인증 서버에게 인증 코드를 요청합니다.
2. 인증 서버는 사용자에게 로그인 페이지를 제공합니다.
3. 사용자는 로그인 페이지에서 자신의 자격 증명을 입력합니다.
4. 인증 서버는 사용자의 자격 증명을 확인하고 클라이언트에게 인증 코드를 제공합니다.
5. 클라이언트는 인증 코드를 사용하여 액세스 토큰을 요청합니다.
6. 인증 서버는 액세스 토큰을 제공합니다.

 

  • OAuth 1.0과 OAuth 2.0의 차이점
OAuth 1.0은 서명된 요청을 사용하여 인증하고, OAuth 2.0은 토큰을 사용하여 인증합니다. 또한 OAuth 2.0은 OAuth 1.0보다 더 많은 기능을 제공합니다. 예를 들어, OAuth 2.0에서는 Access Token의 Life-time을 지정할 수 있도록 했습니다.

OAuth 1.0은 웹 워크플로우만 처리했지만 OAuth 2.0은 비웹 클라이언트도 고려합니다. OAuth 2.0은 리소스 요청 처리와 사용자 인증 처리를 분리할 수 있습니다. OAuth 2.0은 더 유연하지만 더 안전하게 구축하기는 더 어렵습니다.

 

  • OAuth 1.0과 OAuth 2.0의 장단점
OAuth 1.0의 장점은 전송에 독립적입니다. OAuth 1.0은 SSL을 기반으로 보안을 제공합니다.

OAuth 2.0의 장점은 API 서버가 응용 프로그램의 ID와 비밀번호에 접근 할 수 있도록 요구하지 않습니다. OAuth 2.0은 사용자 인증 및 취급 API 호출을 수신하는 역할을 지원합니다. OAuth 2.0 Access tokens는 "short-lived"입니다.

 

  • OAuth 1.0과 OAuth 2.0의 보안 취약점
OAuth 1.0의 보안 취약점은 API 서버가 응용 프로그램의 ID와 비밀번호에 접근 할 수 있도록 요구합니다. OAuth 1.0은 oauth_callback 매개 변수를 사용하여 공격자가 인증 코드를 훔치는 것을 허용합니다.

OAuth 2.0의 보안 취약점은 사용자가 앱에 대한 권한을 부여 할 때 공격자가 중간에서 인증 코드를 가로채는 것을 허용합니다.