Đối với các ứng dụng Google Chat được xây dựng trên điểm cuối HTTP, mục này giải thích cách xác minh rằng các yêu cầu gửi đến điểm cuối của bạn đến từ Chat.
Để gửi các sự kiện tương tác đến ứng dụng Chat
điểm cuối, Google sẽ gửi yêu cầu đến dịch vụ của bạn. Để xác minh rằng yêu cầu
của Google, Chat bao gồm
mã thông báo mang
trong tiêu đề Authorization
của mọi yêu cầu HTTPS đến điểm cuối của bạn. Ví dụ:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
Chuỗi AbCdEf123456
trong ví dụ trước là sự uỷ quyền hàm mang
mã thông báo. Đây là mã thông báo mật mã do Google tạo ra. Loại phương thức mang
và giá trị của mã
audience
phụ thuộc vào loại đối tượng xác thực mà bạn đã chọn khi
định cấu hình ứng dụng Chat.
Nếu bạn đã triển khai ứng dụng Chat bằng Đám mây Function hoặc Cloud Run, Cloud IAM sẽ tự động xử lý việc xác minh mã thông báo. Bạn chỉ cần thêm tài khoản dịch vụ Google Chat làm người gọi được uỷ quyền. Nếu ứng dụng của bạn triển khai máy chủ HTTP của riêng ứng dụng đó, thì bạn có thể xác minh mã thông báo của phương thức mang bằng thư viện ứng dụng Google API nguồn mở:
- Java: 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
Nếu mã thông báo không xác minh cho ứng dụng Chat,
dịch vụ phải phản hồi yêu cầu bằng mã phản hồi HTTPS
401 (Unauthorized)
.
Xác thực yêu cầu bằng Cloud Functions hoặc Cloud Run
Nếu logic hàm của bạn được triển khai bằng Cloud Functions hoặc Cloud Run, bạn
phải chọn App URL
trong trường Đối tượng xác thực của
ứng dụng Chat
cài đặt kết nối và đảm bảo rằng
URL ứng dụng trong cấu hình tương ứng với URL của Hàm đám mây hoặc
điểm cuối Cloud Run.
Sau đó, bạn cần cấp quyền cho tài khoản dịch vụ Google Chat
chat@system.gserviceaccount.com
làm phương thức gọi.
Các bước sau đây cho biết cách sử dụng Cloud Functions (thế hệ thứ 1):
Giao diện dòng lệnh
Sau khi triển khai chức năng lên Google Cloud:
Trong bảng điều khiển Google Cloud, hãy truy cập vào trang Cloud Functions:
Trong danh sách Cloud Functions, hãy nhấp vào hộp đánh dấu bên cạnh tuỳ chọn nhận . (Đừng nhấp vào chính hàm đó.)
Nhấp vào Quyền ở đầu màn hình. Bảng điều khiển Quyền sẽ mở ra.
Nhấp vào Thêm người chính.
Trong trường New principals (Người dùng mới), hãy nhập
chat@system.gserviceaccount.com
.Chọn vai trò Cloud Functions > Cloud Functions Invoker (Trình gọi hàm đám mây) từ Trình đơn thả xuống Chọn vai trò.
Nhấp vào Lưu.
gcloud
Sử dụng lệnh gcloud functions add-iam-policy-binding
:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
Thay thế RECEIVING_FUNCTION
bằng tên của
Chức năng của ứng dụng Chat.
Các bước sau đây cho biết cách sử dụng Cloud Functions (thế hệ thứ 2) hoặc dịch vụ Cloud Run:
Giao diện dòng lệnh
Sau khi triển khai chức năng hoặc dịch vụ của bạn trên Google Cloud:
Trong bảng điều khiển Google Cloud, hãy truy cập vào trang Cloud Run:
Trong danh sách dịch vụ Cloud Run, hãy nhấp vào hộp đánh dấu bên cạnh dịch vụ nhận . (Đừng nhấp vào chính hàm đó.)
Nhấp vào Quyền ở đầu màn hình. Bảng điều khiển Quyền sẽ mở ra.
Nhấp vào Thêm người chính.
Trong trường New principals (Người dùng mới), hãy nhập
chat@system.gserviceaccount.com
.Chọn vai trò Cloud Run > Cloud Run Invoker từ Trình đơn thả xuống Chọn vai trò.
Nhấp vào Lưu.
gcloud
Sử dụng lệnh gcloud functions add-invoker-policy-binding
:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Thay thế RECEIVING_FUNCTION
bằng tên của
Chức năng của ứng dụng Chat.
Xác thực yêu cầu bằng Mã thông báo mã nhận dạng URL ứng dụng
Nếu trường Đối tượng xác thực của ứng dụng Chat
chế độ cài đặt kết nối được đặt thành App URL
,
mã thông báo uỷ quyền người dùng trong yêu cầu là một OpenID Connect do Google ký
Mã thông báo giá trị nhận dạng (OIDC).
Trường email
được đặt thành chat@system.gserviceaccount.com
.
Trường audience
được đặt thành URL mà bạn đã định cấu hình để Google Chat gửi
gửi đến ứng dụng Chat. Ví dụ: nếu
điểm cuối được định cấu hình của ứng dụng Chat là
https://example.com/app/
, thì trường audience
trong mã thông báo mã nhận dạng là
https://example.com/app/
.
Các mẫu sau đây cho biết cách xác minh rằng mã thông báo mang được phát hành bởi Google Chat và nhắm đến ứng dụng của bạn bằng thư viện ứng dụng OAuth của Google.
Java
Python
Node.js
Xác thực yêu cầu bằng Mã số dự án JWT
Nếu trường Đối tượng xác thực của ứng dụng Chat
chế độ cài đặt kết nối được đặt thành Project
Number
, mã thông báo uỷ quyền truyền tải trong yêu cầu là mã tự ký
Mã thông báo web JSON (JWT),
do chat@system.gserviceaccount.com
phát hành và ký.
Trường audience
được đặt thành số dự án trên Google Cloud mà bạn sử dụng
để tạo ứng dụng Chat. Ví dụ: nếu
Số dự án trên đám mây của ứng dụng Chat là
1234567890
, thì trường audience
trong JWT là 1234567890
.
Các mẫu sau đây cho biết cách xác minh rằng mã thông báo mang được phát hành bởi Google Chat và nhắm đến dự án của bạn bằng thư viện ứng dụng OAuth của Google.
Java
Python
Node.js
Chủ đề có liên quan
- Để biết thông tin tổng quan về tính năng xác thực và uỷ quyền trong Google Workspace, xem Tìm hiểu về tính năng xác thực và uỷ quyền.
- Để biết thông tin tổng quan về việc xác thực và uỷ quyền trong Chat, xem Tổng quan về việc xác thực.
- Thiết lập tính năng xác thực và uỷ quyền bằng thông tin đăng nhập của người dùng hoặc tài khoản dịch vụ.