Logo Logo
GitHub Designed by Logto

인증 요청 (Authorization request)이란 무엇인가?

문맥에 따라 “인증 요청 (Authorization request)“이라는 용어는 서로 다른 의미를 가질 수 있습니다. 이 글에서는 OAuth 2.0 명세서에 정의된 내용을 중점적으로 다룰 것입니다.

OAuth 2.0에서는 클라이언트 (Client) 가 사용자의 보호된 리소스에 액세스할 권한을 얻는 방법을 정의하는 몇 가지 인증 유형(흐름)이 있습니다.

![참고] “인증 요청 (Authorization requests)“은 OpenID Connect (OIDC) 문맥에서 “인증 요청 (Authentication requests)“과 혼동되는 경우가 많습니다. OIDC에 대한 구체적인 내용은 인증 요청 (Authentication request) 를 참조하세요.

인증 요청 (Authorization request)은 어떻게 작동하나요?

클라이언트(애플리케이션)가 사용자 대신 보호된 리소스에 액세스하려고 할 때, 인증 서버 (Authorization server) 에 인증 요청을 시작합니다. 클라이언트는 필요한 매개변수와 함께 요청된 인증 유형을 명시해야 합니다.

OAuth 2.0에서 최종 사용자 인증을 위한 일반적인 인증 유형(흐름)은 다음과 같습니다:

제한된 입력 기능을 가진 장치를 위한 디바이스 플로우 (Device flow) 같은 다른 확장 기능도 있습니다. 각 흐름은 고유한 특성과 용도가 있습니다. 대부분의 웹 애플리케이션에서는 인증 코드 플로우가 권장됩니다.

기계 대 기계 (Machine-to-machine) 인증은 일반적으로 사용자 상호작용을 포함하지 않는 클라이언트 자격 증명 흐름 (Client credentials flow) 로 수행됩니다.

예를 들어, 클라이언트(애플리케이션)는 사용자의 Google Drive 파일에 액세스하기 위한 인증을 요청할 수 있습니다. 아래는 인증 코드 흐름의 간단한 순서도입니다:

액세스 토큰 획득 후, 클라이언트는 사용자 대신 Google Drive 파일에 접근할 수 있습니다.

인증 요청 (Authorization request)의 주요 매개변수

OAuth 2.0 인증 요청은 일반적으로 다음 매개변수를 포함합니다:

  • response_type: 클라이언트가 기대하는 응답 유형입니다. 일반적인 값은 authorization code flow를 위한 code와 implicit flow를 위한 token입니다.
  • client_id: 인증 서버에서 발급한 클라이언트 식별자입니다.
  • redirect_uri: 인증 과정이 끝난 후 사용자를 보내는 URI입니다.
  • scope: 액세스 토큰에 대한 요청된 스코프(권한) 입니다.
  • resource: 요청된 리소스에 대한 리소스 인디케이터 (Resource indicator) 를 지정하는 선택적 매개변수입니다. 이 매개변수를 사용하려면 인증 서버가 RFC 8707 을 지원해야 합니다.

위의 매개변수는 포괄적이지 않습니다. 실제 매개변수와 그 값은 인증 유형과 애플리케이션의 구체적인 요구 사항에 따라 달라집니다.

참고