인증 및 승인 알아보기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

인증과 승인은 각각 ID와 리소스에 대한 액세스를 확인하는 데 사용되는 메커니즘입니다. 이 문서에서는 앱에서 인증 및 승인을 구현하기 전에 알아야 할 주요 용어를 설명합니다.

참고: 이 개요에서는 Google Workspace API의 인증 및 승인에 중점을 둡니다. 이 문서의 일부 정보는 다른 Google API와 관련이 없을 수 있습니다.

프로세스 개요

다음 다이어그램은 Google Workspace API의 인증 및 승인에 대한 대략적인 단계를 보여줍니다.

대략적인 인증 및 승인 구현 단계
그림 1. 대략적인 인증 및 승인 구현 단계
  1. Google Cloud 프로젝트 및 앱 구성: 개발 중에 Google Cloud Console에서 앱을 등록하고, API 키, 최종 사용자 인증 정보 또는 서비스 계정 사용자 인증 정보로 앱을 인증하기 위해 승인 범위와 액세스 사용자 인증 정보를 정의합니다.

  2. 액세스를 위해 앱 인증: 앱이 실행될 때 등록된 액세스 사용자 인증 정보가 평가됩니다. 앱이 최종 사용자로 인증되는 경우 로그인 메시지가 표시될 수 있습니다.

  3. 리소스 요청: 앱에서 Google 리소스에 액세스해야 하는 경우 이전에 등록한 관련 액세스 범위를 사용하여 Google에 요청합니다.

  4. 사용자 동의 요청: 앱이 최종 사용자로 인증되는 경우, 사용자가 앱에 요청된 데이터에 대한 액세스 권한을 부여할지 결정할 수 있도록 Google이 OAuth 동의 화면을 표시합니다.

  5. 승인된 리소스 요청 전송: 사용자가 액세스 범위에 동의하면 앱이 사용자 인증 정보와 사용자가 승인한 액세스 범위를 요청에 번들로 묶습니다. 액세스 토큰을 얻기 위한 요청이 Google 승인 서버로 전송됩니다.

  6. Google에서 액세스 토큰 반환: 액세스 토큰에는 부여된 액세스 범위 목록이 포함됩니다. 반환된 범위 목록이 요청된 액세스 범위보다 제한적이면 앱은 토큰으로 제한된 모든 기능을 사용 중지합니다.

  7. 요청된 리소스 액세스: 앱은 Google의 액세스 토큰을 사용하여 관련 API를 호출하고 리소스에 액세스합니다.

  8. 갱신 토큰 가져오기 (선택사항): 앱이 단일 액세스 토큰의 전체 기간을 초과하여 Google API에 액세스해야 하는 경우 갱신 토큰을 가져올 수 있습니다.

  9. 추가 리소스 요청: 추가 액세스 권한이 필요한 경우 앱이 사용자에게 새로운 액세스 범위를 부여하도록 요청하고 그 결과 액세스 토큰을 받기 위한 새로운 요청이 생성됩니다 (3~6단계).

중요 용어

다음은 인증 및 승인과 관련된 용어 목록입니다.

인증

사용자 또는 사용자를 대신하는 앱이 될 수 있는 주 구성원이 본인인지 확인하는 행동입니다. Google Workspace 앱을 작성할 때 다음 유형의 인증을 알고 있어야 합니다.

사용자 인증
사용자가 앱에 인증 (로그인)하는 작업입니다. 사용자 인증은 일반적으로 사용자가 사용자 이름과 비밀번호 조합을 사용하여 앱에 대한 신원을 확인하는 로그인 프로세스를 통해 이루어집니다. 사용자 인증은 Google 계정으로 로그인을 사용하여 앱에 통합할 수 있습니다.
앱 인증
앱이 앱을 실행하는 사용자를 대신하여 Google 서비스에 직접 인증하는 작업입니다. 앱 인증은 일반적으로 앱 코드에서 사전 생성된 사용자 인증 정보를 사용하여 실행됩니다.
승인

주 구성원이 데이터에 액세스하거나 작업을 실행해야 하는 권한 또는 권위 승인 작업은 앱에서 작성하는 코드를 통해 수행됩니다. 이 코드는 앱이 사용자를 대신하여 작업을 수행하려고 한다는 것을 사용자에게 알리고, 허용되는 경우 앱의 고유 사용자 인증 정보를 사용하여 Google에서 데이터 액세스나 작업 실행에 사용하는 액세스 토큰을 가져옵니다.

사용자 인증 정보

소프트웨어 보안에 사용되는 신원 확인 방법입니다. 인증 측면에서 사용자 인증 정보는 대개 사용자 이름과 비밀번호를 조합한 것입니다. Google Workspace API 승인의 관점에서 사용자 인증 정보는 일반적으로 앱 개발자와 인증 서버 사이에만 알려진 고유한 보안 비밀 문자열과 같은 일종의 식별 방법입니다. Google은 API 키, OAuth 2.0 클라이언트 ID, 서비스 계정과 같은 사용자 인증 정보를 지원합니다.

API 키
지도 API를 사용하여 제공된 데이터 또는 Google Workspace 공유 설정 내의 '이 링크가 있는 모든 인터넷 사용자' 설정을 사용하여 공유된 Google Workspace 파일과 같이 공개 데이터에 대한 액세스를 요청하는 데 사용되는 사용자 인증 정보.
OAuth 2 클라이언트 ID
사용자 소유 데이터에 대한 액세스를 요청하는 데 사용되는 사용자 인증 정보입니다. Google Workspace API를 사용하여 데이터 액세스를 요청할 때 사용되는 기본 사용자 인증 정보입니다. 이 사용자 인증 정보를 사용하려면 사용자 동의가 필요합니다.
클라이언트 보안 비밀번호
애플리케이션과 승인 서버에서만 알 수 있는 문자열입니다. 클라이언트 보안 비밀번호는 승인된 요청자에게만 토큰을 부여하여 사용자의 데이터를 보호합니다. 클라이언트 클라이언트 비밀번호를 앱에 포함해서는 안 됩니다.
서비스 계정 키
서비스 계정에 대한 승인을 받기 위해 서비스 계정에서 사용됩니다.
서비스 계정
특정 데이터에 액세스하거나 작업을 실행하는 프로세스로 실행되는 얼굴 없는 앱과 같이 서버 간 상호작용에 사용되는 사용자 인증 정보입니다. 서비스 계정은 일반적으로 클라우드 기반 데이터 및 작업에 액세스하는 데 사용됩니다. 하지만 도메인 전체 권한 위임과 함께 사용하면 사용자 데이터에 액세스할 수 있습니다.
범위

앱에 부여된 리소스 또는 작업의 액세스 수준을 정의하는 OAuth 2.0 URI 문자열입니다. Google Workspace의 경우 승인 범위 URI에는 Google Workspace 앱 이름, 액세스하는 데이터 유형, 액세스 수준이 포함됩니다. 앱 사용자는 요청된 범위를 검토하고 부여할 액세스 권한을 선택할 수 있습니다. 그러면 Google의 인증 서버가 허용된 범위를 액세스 토큰으로 앱에 반환합니다. 자세한 내용은 앱 범위를 선택하는 방법을 참고하세요.

승인 서버

액세스 토큰을 사용하여 앱의 요청된 데이터와 작업에 대한 액세스 권한을 부여하는 Google 서버

승인 코드

액세스 토큰을 얻는 데 사용되는 승인 서버에서 전송된 코드입니다. 애플리케이션 유형이 웹 서버 앱 또는 설치된 앱인 경우에만 코드가 필요합니다.

액세스 토큰

Google Workspace API에 대한 액세스 권한을 부여하는 토큰입니다. 단일 액세스 토큰은 여러 API에 대한 액세스 권한(범위라고 함)을 부여할 수 있습니다. 앱의 승인 코드는 액세스 토큰을 요청하고 이를 사용하여 Google Workspace API를 호출합니다.

리소스 서버

앱에서 호출하려는 API를 호스팅하는 서버입니다.

OAuth 2.0 프레임워크

'안전한 위임된 액세스 권한'을 제공하거나 앱 사용자를 대신하여 데이터 및 작업에 액세스할 수 있도록 앱에서 사용할 수 있는 표준입니다. 앱에서 사용하는 인증 및 승인 메커니즘은 OAuth 2.0 프레임워크 구현을 나타냅니다.

주 구성원

리소스에 대한 액세스 권한을 부여할 수 있는 항목(ID라고도 함)입니다. Google Workspace API는 사용자 계정과 서비스 계정의 두 가지 유형의 주 구성원을 지원합니다. 자세한 내용은 주 구성원을 참조하세요.

데이터 유형

인증 및 승인에서 데이터 유형은 앱이 액세스하려고 하는 데이터를 소유한 항목을 의미합니다. 데이터 유형에는 세 가지가 있습니다.

공개 도메인 데이터
일부 Google 지도 데이터와 같이 누구나 액세스할 수 있는 데이터입니다. 이 데이터는 일반적으로 API 키를 사용하여 액세스합니다.
최종 사용자 데이터
특정 최종 사용자 또는 그룹에 속하는 데이터(예: 특정 사용자의 Google Drive 파일) 이 데이터 유형은 일반적으로 OAuth 2 클라이언트 ID 또는 서비스 계정을 사용하여 액세스합니다.
클라우드 데이터
Google Cloud 프로젝트 소유의 데이터입니다. 이 데이터 유형은 일반적으로 서비스 계정에서 액세스합니다.
사용자 동의

앱의 사용자에게 앱이 데이터에 액세스하고 사용자 대신 작업을 수행하도록 승인하는 승인 단계

애플리케이션 유형

만들려는 앱의 유형입니다. Google Cloud Console을 사용하여 사용자 인증 정보를 만들 때 애플리케이션 유형을 선택하라는 메시지가 표시됩니다. 애플리케이션 유형에는 웹 애플리케이션 (자바스크립트), Android, Chrome 앱, iOS, TV 및 제한된 입력 기기, 데스크톱 앱 (또는 '설치된 앱'이라고도 함), 범용 Windows 플랫폼 (UWP)이 있습니다.

서비스 계정

인증하고 데이터에 액세스할 수 있도록 승인을 받아야 하며 사람이 아닌 사용자를 나타내기 위한 특별한 유형의 Google 계정입니다. 애플리케이션은 서비스 계정의 ID를 사용하여 Google API를 호출하므로 사용자가 직접 개입하지 않습니다. 서비스 계정 자체는 사용자 데이터에 액세스하는 데 사용할 수 없습니다. 데이터는 일반적으로 Workspace API를 사용하여 액세스합니다. 하지만 서비스 계정은 도메인 전체 권한 위임을 구현하여 사용자 데이터에 액세스할 수 있습니다. 자세한 내용은 서비스 계정 이해를 참조하세요.

도메인 전체 권한 위임

애플리케이션이 Google Workspace 조직의 사용자를 대신하여 사용자 데이터에 액세스하도록 승인할 수 있는 관리 기능입니다. 도메인 전체 위임을 사용하여 사용자 데이터에 대해 관리자 관련 작업을 수행할 수 있습니다. 이러한 방식으로 권한을 위임하기 위해 Google Workspace 관리자는 OAuth 2.0이 적용된 서비스 계정을 사용합니다. 이 기능은 성능이 우수하므로 최고 관리자만 도메인 전체 권한 위임을 사용 설정할 수 있습니다. 자세한 내용은 서비스 계정에 도메인 전체 권한 위임을 참조하세요.

다음 단계

사용자가 앱의 데이터 액세스 권한을 이해하고 승인할 수 있도록 앱의 OAuth 동의 화면을 구성합니다.