인증 및 승인은 각각 ID와 리소스에 대한 액세스를 확인하는 데 사용되는 메커니즘입니다. 이 문서에서는 Chat 앱 및 Chat API 요청에 대한 인증 및 승인 작동 방식을 설명합니다.
프로세스 개요
다음 다이어그램은 Google Chat의 인증 및 승인 단계를 대략적으로 보여줍니다.

Google Cloud 프로젝트 구성, Chat API 사용 설정, Chat 앱 구성: 개발 중에 Google Cloud 프로젝트를 만듭니다. Google Cloud 프로젝트에서 Chat API를 사용 설정하고 Chat 앱을 구성하고 인증을 설정합니다. 자세한 내용은 Google Workspace에서 개발 및 Chat 앱 빌드를 참고하세요.
Chat API 호출: 앱에서 Chat API를 호출하면 사용자 인증 정보가 Chat API로 전송됩니다. 앱이 서비스 계정으로 인증하면 사용자 인증 정보가 앱 코드의 일부로 전송됩니다. 앱에서 아직 승인되지 않은 사용자 인증을 사용하여 Chat API를 호출해야 하는 경우 사용자에게 로그인하라는 메시지를 표시합니다.
리소스 요청: 앱에서 인증을 설정하는 동안 지정한 범위로 액세스를 요청합니다.
동의 요청: 앱이 사용자로 인증되고 있는 경우 Google에서 OAuth 동의 화면을 표시하여 사용자가 요청된 데이터에 대한 액세스 권한을 앱에 부여할지 결정할 수 있도록 합니다. 서비스 계정을 통한 인증에는 사용자 동의가 필요하지 않습니다.
승인된 리소스 요청 전송: 사용자가 승인 범위에 동의하면 앱은 사용자 인증 정보와 사용자가 승인한 범위를 요청에 번들로 묶습니다. 이 요청은 액세스 토큰을 얻기 위해 Google 승인 서버로 전송됩니다.
Google에서 액세스 토큰 반환: 액세스 토큰에는 부여된 범위 목록이 포함됩니다. 반환된 범위 목록이 요청된 범위보다 더 제한적인 경우 앱은 토큰으로 제한된 모든 기능을 사용 중지합니다.
요청된 리소스 액세스: 앱은 Google의 액세스 토큰을 사용하여 Chat API를 호출하고 Chat API 리소스에 액세스합니다.
갱신 토큰 가져오기 (선택사항): 앱이 단일 액세스 토큰의 유효 기간을 초과하여 Google Chat API에 액세스해야 하는 경우 갱신 토큰을 가져올 수 있습니다. 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스하기를 참고하세요.
추가 리소스 요청: 앱에 더 많은 액세스 권한이 필요한 경우 사용자에게 새 범위를 허용하도록 요청하여 액세스 토큰을 얻기 위한 새로운 요청을 수행합니다(3~6단계).
Chat 앱에 인증이 필요한 경우
채팅 앱은 Google Chat에 동기식 또는 비동기식으로 메시지를 보낼 수 있습니다. 사용자를 대신하여 Chat 스페이스를 만드는 등의 작업을 완료할 수도 있습니다.
채팅 앱에서 응답을 처리하는 동안 Chat API 또는 다른 Google API를 호출하지 않는 한 동기 메시지에는 인증이 필요하지 않습니다.
채팅 앱은 비동기 메시지를 보내거나 사용자를 대신하여 작업하기 위해 Chat API에 RESTful 요청을 전송합니다. 이 요청에는 인증과 승인이 필요합니다.
동기식 메시지는 인증이 필요하지 않습니다
동기 메시지는 Chat 이벤트에 대한 응답입니다. Google Chat 앱은 채팅 앱 구성 페이지에 구성 및 게시된 후 이벤트를 수신하고 응답할 수 있으며 인증 또는 승인이 필요하지 않습니다.
동기식 Chat 이벤트의 예는 다음과 같습니다.
- 사용자가 Google Chat의 Chat 앱에 메시지를 보냅니다.
- 사용자가 Chat 앱을 멘션
- 사용자가 Chat 앱의 슬래시 명령어 중 하나를 호출합니다.
다음 다이어그램은 Chat 사용자와 Chat 앱 간의 동기 요청-응답 시퀀스를 보여줍니다.

- 사용자가 Google Chat의 Chat 앱에 메시지를 보냅니다.
- Google Chat은 메시지를 앱으로 전달합니다.
- 앱이 메시지를 받아 처리한 다음 Google Chat에 응답을 반환합니다.
- Google Chat에서 사용자 또는 스페이스의 응답을 렌더링합니다.
이 순서는 각 Chat 이벤트마다 반복됩니다.
비동기식 메시지에는 인증이 필요합니다.
비동기 메시지는 Chat 앱이 인증 및 승인이 필요한 Chat API를 요청할 때 발생합니다.
Chat 앱은 Chat API를 호출하여 Google Chat에 메시지를 게시하거나 작업을 완료하여 사용자 대신 데이터에 액세스할 수 있습니다. 예를 들어 서버 중단을 감지한 후 Chat 앱은 다음을 위해 Chat API를 호출할 수 있습니다.
- 서비스 중단을 조사하고 해결하기 위한 전용 Chat 스페이스를 만듭니다.
- Chat 스페이스에 사용자를 추가합니다.
- Chat 스페이스에 메시지를 게시하여 서비스 중단에 대한 세부정보를 제공합니다.
다음 다이어그램은 Chat 앱과 Chat 스페이스 간의 비동기 메시지 시퀀스를 보여줍니다.

- Chat 앱은
spaces.messages.create method
를 사용하여 Chat API를 호출하여 메시지를 만들고 HTTP 요청에 사용자 인증 정보를 포함합니다. - Google Chat은 서비스 계정 또는 사용자 인증 정보로 Chat 앱을 인증합니다.
- Google Chat은 앱의 메시지를 지정된 Chat 스페이스로 렌더링합니다.
Chat API 범위
앱에 부여된 액세스 수준을 정의하려면 승인 범위를 식별하고 선언해야 합니다. 승인 범위는 Google Workspace 앱 이름, 액세스하는 데이터의 종류, 액세스 수준이 포함된 OAuth 2.0 URI 문자열입니다.
Google Chat은 다음 범위를 지원합니다.
Google Chat API 범위 | 설명 |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Chat 앱에서 채팅을 확인하고 메시지를 보낼 수 있습니다. Chat 앱에 사용할 수 있는 모든 기능에 액세스할 수 있습니다. |
https://www.googleapis.com/auth/chat.delete
|
대화 및 스페이스를 삭제하고 Google Chat에서 관련 파일에 대한 액세스 권한을 삭제합니다. |
멤버십 | |
https://www.googleapis.com/auth/chat.memberships
|
Google Chat 대화에서 참여자 확인, 추가, 삭제 |
https://www.googleapis.com/auth/chat.memberships.app
|
Chat 앱을 사용하여 Google Chat의 대화에 앱을 추가하거나 삭제할 수 있습니다(다른 앱은 제외). |
https://www.googleapis.com/auth/chat.memberships.readonly
|
스페이스의 멤버십 세부정보를 확인하고 멤버십을 나열합니다. |
메시지 | |
https://www.googleapis.com/auth/chat.messages
|
Google Chat에서 메시지를 만들고, 가져오고, 업데이트하고, 삭제하고, 나열합니다. |
https://www.googleapis.com/auth/chat.messages.create
|
Google Chat에서 메시지를 만들고 첨부파일을 업로드하세요. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Google Chat에서 메시지에 대한 반응을 보고 추가하고 삭제합니다. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Google Chat 메시지에 반응을 추가합니다. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Google Chat의 메시지에 대한 반응을 봅니다. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Google Chat에서 메시지 가져오기 및 나열하기 |
스페이스 | |
https://www.googleapis.com/auth/chat.spaces
|
Google Chat에서 대화와 스페이스를 만들고 메타데이터(기록 설정 포함)를 보거나 업데이트할 수 있습니다. |
https://www.googleapis.com/auth/chat.spaces.create
|
Google Chat에서 대화를 만듭니다. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Google Chat에서 채팅 및 스페이스 보기 |
Google Workspace API의 범위에 대해 자세히 알아보려면 앱 범위를 선택하는 방법을 참고하세요.
사용 가능한 범위 목록은 Google API용 OAuth 2.0 범위를 참고하세요.
필수 인증 유형
Chat 앱은 사용자 인증 정보 또는 서비스 계정이라는 두 가지 방법으로 Chat API를 인증하고 승인할 수 있습니다.
Chat 앱은 사용자 인증 정보 승인을 통해 사용자 데이터에 액세스하고 사용자를 대신하여 작업을 완료할 수 있습니다. OAuth 범위는 승인된 데이터 및 작업을 지정합니다. 그러나 이러한 Chat 앱은 공개적으로 게시할 수 없습니다. 자세한 내용은 Google Chat 앱 게시하기를 참고하세요.
앱 승인을 통해 Chat 앱은 서비스 계정 사용자 인증 정보를 사용하여 API로 앱에 액세스합니다. 앱 승인은 항상 chat.bot
승인 범위를 사용합니다.
도메인 관리자인 경우 도메인 전체 권한 위임을 부여하여 각 사용자의 동의 없이 애플리케이션의 서비스 계정이 사용자의 데이터에 액세스하도록 승인할 수 있습니다. 도메인 전체 위임을 구성한 후에는 서비스 계정으로 API를 호출하여 사용자 계정을 가장할 수 있습니다. 인증에는 서비스 계정이 사용되지만 도메인 전체 위임은 사용자를 가장하므로 사용자 인증으로 간주됩니다. 사용자 인증이 필요한 모든 기능은 도메인 전체 위임을 사용할 수 있습니다.
특정 API 요청에 사용할 사용자 인증 정보 유형을 결정할 때 일부 API 메서드는 특정 유형의 사용자 인증 정보만 지원한다는 점에 유의하세요. API 메서드가 두 사용자 인증 정보를 모두 지원하는 경우 호출에 사용된 사용자 인증 정보 유형이 반환되는 결과에 영향을 미칩니다.
- 앱 승인을 사용하면 메서드는 앱에서 액세스할 수 있는 리소스만 반환합니다.
- 사용자 승인을 통해 메서드는 사용자가 채팅 UI에서 액세스할 수 있는 리소스만 반환합니다.
예를 들어 앱 승인으로 ListSpaces
메서드를 호출하면 앱이 속한 공간 목록이 반환됩니다. 사용자 승인을 통해 ListSpaces
를 호출하면 사용자가 속한 스페이스 목록이 반환됩니다. 실제로 앱에서 원하는 기능에 따라 Chat API를 호출할 때 두 가지 유형의 승인을 모두 사용할 수 있습니다.
비동기 Chat API 호출의 경우
다음 표에는 Chat API 메서드와 지원되는 승인 범위가 나와 있습니다.
메서드 | 사용자 인증 지원됨 | 앱 인증 지원됨 | 지원되는 승인 범위 | |
---|---|---|---|---|
스페이스 | ||||
스페이스 만들기 | — |
|
||
스페이스 설정하기 | — |
|
||
공간 확보하기 |
사용자 인증:
|
|||
스페이스 나열하기 |
사용자 인증:
|
|||
스페이스 업데이트하기 | — |
|
||
스페이스 삭제하기 | — |
|
||
채팅 메시지 찾기 |
사용자 인증:
|
|||
구성원 | ||||
회원 만들기 | — |
|
||
회원 가입하기 |
사용자 인증:
|
|||
목록 회원 |
사용자 인증:
|
|||
구성원 삭제 | — |
|
||
메시지 | ||||
메시지 만들기 |
사용자 인증:
|
|||
메시지 받기 |
사용자 인증:
|
|||
메시지 나열 | — |
|
||
메시지 업데이트하기 |
사용자 인증:
|
|||
메시지 삭제하기 |
사용자 인증:
|
|||
리액션 | ||||
반응 만들기 | — |
|
||
목록 반응 | — |
|
||
반응 삭제 | — |
|
||
미디어 및 첨부파일 | ||||
미디어를 첨부파일로 업로드 | — |
|
||
미디어 다운로드 |
사용자 인증:
|
|||
메시지 첨부파일 가져오기 | — |
|
동기식으로 사용자 상호작용을 수신하고 응답하기 위해
다음 표에는 사용자가 Chat 앱과 상호작용하는 일반적인 방법과 인증이 필요한지 또는 지원되는지가 나열되어 있습니다.
시나리오 | 인증이 필요하지 않음 | 사용자 인증 지원됨 | 앱 인증 지원됨 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
다음에서 메시지 수신: |
|
|||||||||||||||
메시지에 응답: |
|
|||||||||||||||
새 메시지 보내기: |
|
관련 주제
- Google Workspace의 인증 및 승인에 관한 개요는 인증 및 승인 알아보기를 참고하세요.
- Google Cloud의 인증 및 승인에 대한 개요는 인증 개요를 참조하세요.
- 서비스 계정에 대한 자세한 내용은 서비스 계정을 참조하세요.
- Google API에서 OAuth 2.0을 활용하는 방법에 대한 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스를 참조하세요.
- 사용자 인증 정보 또는 서비스 계정을 사용하여 인증 및 승인을 설정합니다.