인증 및 승인 알아보기

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

인증은 요청을 수행하는 사용자를 식별합니다. 승인은 요청자가 액세스할 수 있는 리소스와 액세스 수준을 무엇인지 식별합니다. 인증은 승인의 기본 요건입니다. 요청자의 ID를 먼저 설정하지 않고는 액세스할 리소스를 확인할 수 없습니다. 자세한 정의는 중요한 용어 섹션을 참고하세요.

다음은 호텔 예약의 단순화된 예입니다. 호텔에 도착하면 프런트 데스크 직원이 예약 확인을 위해 신분증을 요청합니다. 신분증은 호텔에서 사용자를 인증합니다. 프런트 데스크 직원이 호텔 키를 건네줍니다. 이 키를 사용하면 호텔 객실, 헬스장, 비즈니스 센터와 같은 특정 리소스에 액세스할 수 있습니다. 호텔 키는 이러한 리소스에 액세스할 수 있는 권한을 부여합니다.

프로세스 개요

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

인증 및 승인 구현의 개략적인 단계
그림 1. 인증 및 승인 구현의 개략적인 단계
  1. Google Cloud 프로젝트 및 앱 구성: 개발 중에 Google Cloud 콘솔에 앱을 등록하여 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를 사용하여 데이터에 대한 액세스를 요청할 때 사용되는 기본 사용자 인증 정보입니다. 이 사용자 인증 정보에는 사용자 동의가 필요합니다.
클라이언트 보안 비밀번호
애플리케이션과 승인 서버만 알아야 하는 문자열입니다. 클라이언트 보안 비밀은 승인된 요청자에게만 토큰을 부여하여 사용자의 데이터를 보호합니다. 암호화되지 않은 클라이언트 비밀번호를 앱에 포함하면 안 됩니다. 클라이언트 비밀번호를 안전하게 저장하는 것이 좋습니다. 자세한 내용은 클라이언트 사용자 인증 정보를 안전하게 처리하기를 참고하세요.
서비스 계정 키
서비스 계정에서 Google 서비스에 대한 승인을 얻는 데 사용됩니다.
서비스 계정
일부 데이터에 액세스하거나 일부 작업을 실행하기 위해 프로세스로 실행되는 얼굴 없는 앱과 같은 서버 간 상호작용에 사용되는 사용자 인증 정보입니다. 서비스 계정은 일반적으로 클라우드 기반 데이터 및 작업에 액세스하는 데 사용됩니다. 하지만 도메인 전체 권한 위임과 함께 사용하면 사용자 데이터에 액세스하는 데 사용할 수 있습니다.
범위

앱에 부여된 리소스 또는 작업에 대한 액세스 수준을 정의하는 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 콘솔을 사용하여 사용자 인증 정보를 만들 때 애플리케이션 유형을 선택하라는 메시지가 표시됩니다. 애플리케이션 유형은 웹 애플리케이션 (JavaScript), Android, Chrome 앱, iOS, TV 및 제한된 입력 기기, 데스크톱 앱('설치된 앱'이라고도 함), 유니버설 Windows 플랫폼 (UWP)입니다.

서비스 계정

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

도메인 전체 권한 위임

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

다음 단계

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