HTTP 엔드포인트에 빌드된 Google Chat 앱의 경우 이 섹션에서는 엔드포인트의 요청이 Chat에서 발생하는지 확인하는 방법을 설명합니다.
채팅 앱의
엔드포인트가 있으면 Google이 서비스에 요청합니다. 요청이
채팅에는
Bearer 토큰
엔드포인트로 보내는 모든 HTTPS 요청의 Authorization
헤더에 있어야 합니다. 예를 들면 다음과 같습니다.
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
이전 예의 문자열 AbCdEf123456
는 Bearer 승인입니다.
토큰입니다. Google에서 생성한 암호화 토큰입니다. 운전자 토큰의 유형과 audience
필드의 값은 Chat 앱을 구성할 때 선택한 인증 대상 유형에 따라 다릅니다.
Cloud를 사용하여 채팅 앱을 구현한 경우 Functions 또는 Cloud Run을 사용하는 경우 Cloud IAM이 자동으로 토큰 확인을 처리합니다. 나 Google Chat 서비스 계정을 승인된 호출자로 추가하기만 하면 됩니다. 앱이 자체 HTTP 서버를 구현하는 경우 오픈소스 Google API 클라이언트 라이브러리를 사용하여 운전자 본인 인증 토큰을 확인할 수 있습니다.
- 자바: https://github.com/google/google-api-java-client
- Python: https://github.com/google/google-api-python-client
- Node.js: https://github.com/google/google-api-nodejs-client
- .NET: https://github.com/google/google-api-dotnet-client
채팅 앱에서 토큰이 확인되지 않으면
서비스는 HTTPS 응답 코드로 요청에 응답해야 함
401 (Unauthorized)
Cloud Functions 또는 Cloud Run을 사용하여 요청 인증
함수 로직이 Cloud Functions 또는 Cloud Run을 사용하여 구현된 경우 Chat 앱 연결 설정의 인증 대상 입력란에서 HTTP 엔드포인트 URL을 선택하고 구성의 HTTP 엔드포인트 URL이 Cloud Functions 또는 Cloud Run 엔드포인트의 URL과 일치하는지 확인해야 합니다.
그런 다음 Google Chat 서비스 계정을 승인해야 합니다.
chat@system.gserviceaccount.com
를 호출자로 정의합니다.
다음 단계에서는 Cloud Functions (1세대)를 사용하는 방법을 보여줍니다.
콘솔
함수를 Google Cloud에 배포한 후 다음을 실행합니다.
Google Cloud 콘솔에서 Cloud Functions 페이지로 이동합니다.
Cloud Functions 목록에서 수신 함수 옆에 있는 체크박스를 클릭합니다. 함수 자체를 클릭하지 마세요.
화면 상단의 권한을 클릭합니다. 권한 패널이 열립니다.
주 구성원 추가를 클릭합니다.
새 주 구성원 필드에
chat@system.gserviceaccount.com
를 입력합니다.역할 선택 드롭다운 메뉴에서 Cloud Functions > Cloud Functions 호출자 역할을 선택합니다.
저장을 클릭합니다.
gcloud
gcloud functions add-iam-policy-binding
명령어를 사용합니다.
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
RECEIVING_FUNCTION
을
채팅 앱의 기능
다음 단계에서는 Cloud Functions(2세대) 또는 Cloud Run 서비스를 사용하는 방법을 보여줍니다.
콘솔
함수 또는 서비스를 Google Cloud에 배포한 후 다음을 수행합니다.
Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.
Cloud Run 서비스 목록에서 수신 함수 옆에 있는 체크박스를 클릭합니다. 함수 자체를 클릭하지 마세요.
화면 상단의 권한을 클릭합니다. 권한 패널이 열립니다.
주 구성원 추가를 클릭합니다.
새 주 구성원 필드에
chat@system.gserviceaccount.com
를 입력합니다.역할 선택 드롭다운 메뉴에서 Cloud Run > Cloud Run 호출자 역할을 선택합니다.
저장을 클릭합니다.
gcloud
gcloud functions add-invoker-policy-binding
명령어를 사용합니다.
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
RECEIVING_FUNCTION
을
채팅 앱의 기능
ID 토큰으로 HTTP 요청 인증
채팅 앱의 인증 대상 필드
연결 설정이 다음과 같이 설정됩니다.
HTTP 엔드포인트 URL
요청의 Bearer 인증 토큰이 Google이 서명한 OpenID Connect인 경우
(OIDC) ID 토큰입니다.
email
필드는 chat@system.gserviceaccount.com
로 설정됩니다.
인증 대상 필드가 사용자가 구성한 URL로 설정됩니다.
Google Chat을 사용하여 채팅 앱에 요청을 보냅니다.
예를 들어 프로젝트의 구성된 엔드포인트가
채팅 앱이 https://example.com/app/
상태이고
ID 토큰의 인증 대상 필드가 https://example.com/app/
입니다.
다음 샘플은 Bearer 토큰이 다음을 통해 발급되었는지 확인하는 방법을 보여줍니다. Google Chat으로, Google OAuth 클라이언트 라이브러리를 사용하여 앱을 타겟팅합니다.
자바
Python
Node.js
프로젝트 번호 JWT로 요청 인증
채팅 앱의 인증 대상 필드
연결 설정이 Project
Number
로 설정된 경우 요청의 Bearer 인증 토큰이 자체 서명됨
JSON 웹 토큰 (JWT),
chat@system.gserviceaccount.com
에서 발급 및 서명합니다.
audience
필드는 Chat 앱을 빌드하는 데 사용한 Google Cloud 프로젝트 번호로 설정됩니다. 예를 들어 Chat 앱의 Cloud 프로젝트 번호가 1234567890
이면 JWT의 audience
필드는 1234567890
입니다.
다음 샘플은 Google Chat에서 발급되었으며 Google OAuth 클라이언트 라이브러리를 사용하여 프로젝트를 타겟팅하는 보유자 토큰을 확인하는 방법을 보여줍니다.
자바
Python
Node.js
관련 주제
- Google Workspace의 인증 및 승인에 대한 개요는 보기 인증 및 승인에 대해 알아보기
- Chat의 인증 및 승인에 관한 개요는 보기 인증 개요
- 다음을 사용하여 인증 및 승인 설정 사용자 인증 정보 또는 서비스 계정입니다.