Xác thực và uỷ quyền là những cơ chế dùng để xác minh danh tính và quyền truy cập vào tài nguyên tương ứng. Tài liệu này trình bày cách hoạt động của quy trình xác thực và uỷ quyền đối với ứng dụng Chat và yêu cầu API API.
Tổng quan về quy trình
Sơ đồ dưới đây cho thấy các bước xác thực và ủy quyền cấp cao đối với Google Chat:

Định cấu hình dự án Google Cloud, bật API Chat và định cấu hình ứng dụng Chat: Trong quá trình phát triển, bạn cần tạo một dự án Google Cloud. Trong dự án Google Cloud, bạn bật API Chat, định cấu hình ứng dụng Chat và thiết lập phương thức xác thực.
API Chat: Khi ứng dụng của bạn gọi API REST của Chat — thường xảy ra sau khi người dùng trong Google Chat gọi ứng dụng bằng cách nhắn tin cho ứng dụng đó, nhấp vào một nút trên thẻ hoặc ra lệnh dấu gạch chéo — ứng dụng sẽ gửi thông tin xác thực cho API Chat. Nếu ứng dụng của bạn xác thực bằng một tài khoản dịch vụ, thì thông tin đăng nhập sẽ được gửi trong mã của ứng dụng. Nếu ứng dụng của bạn xác thực với tư cách là người dùng thì người dùng đó có thể nhận được lời nhắc đăng nhập.
Yêu cầu tài nguyên: Ứng dụng của bạn yêu cầu quyền truy cập với các phạm vi mà bạn chỉ định khi thiết lập phương thức xác thực.
Yêu cầu sự đồng ý: Nếu ứng dụng của bạn đang xác thực với tư cách là người dùng, thì Google sẽ hiển thị một màn hình xin phép bằng OAuth để người dùng đó có thể quyết định có cấp cho ứng dụng của bạn quyền truy cập vào dữ liệu được yêu cầu hay không. Việc xác thực bằng tài khoản dịch vụ không yêu cầu người dùng phải đồng ý.
Gửi yêu cầu tài nguyên được phê duyệt: Nếu người dùng đồng ý với phạm vi uỷ quyền, ứng dụng của bạn sẽ nhóm thông tin xác thực và phạm vi được người dùng phê duyệt thành một yêu cầu. Yêu cầu được gửi đến máy chủ uỷ quyền của Google để lấy mã truy cập.
Google trả về một mã truy cập: Mã truy cập này chứa một danh sách phạm vi được cấp. Nếu danh sách phạm vi được trả về bị giới hạn nhiều hơn phạm vi được yêu cầu, thì ứng dụng của bạn sẽ tắt mọi tính năng bị mã thông báo giới hạn.
Truy cập vào các tài nguyên được yêu cầu: Ứng dụng của bạn sử dụng mã truy cập của Google để gọi API Chat và truy cập vào các tài nguyên API Chat.
Nhận mã làm mới (không bắt buộc): Nếu ứng dụng của bạn cần truy cập vào API Google Chat sau vòng đời của một mã truy cập, thì ứng dụng đó có thể nhận mã làm mới.
Yêu cầu thêm tài nguyên: Nếu ứng dụng của bạn cần có thêm quyền truy cập, thì ứng dụng sẽ yêu cầu người dùng cấp các phạm vi mới, dẫn đến một yêu cầu mới để lấy mã truy cập (các bước 3–6).
Khi ứng dụng Chat yêu cầu xác thực
Các ứng dụng trò chuyện có thể nhắn tin cho Google Chat một cách đồng bộ hoặc không đồng bộ. Họ cũng có thể thay mặt người dùng hoàn thành những việc như tạo phòng Chat.
Tin nhắn đồng bộ không yêu cầu xác thực, trừ phi ứng dụng Chat gọi API REST của Chat hoặc một API khác của Google trong khi xử lý phản hồi.
Để gửi tin nhắn không đồng bộ hoặc hoạt động thay mặt người dùng, ứng dụng Chat sẽ yêu cầu RESTful đến API REST của Chat. API này yêu cầu xác thực và uỷ quyền.
Thư đồng bộ không yêu cầu xác thực
Tin nhắn đồng bộ là phản hồi cho sự kiện trong Chat. Các ứng dụng Google Chat có thể nhận và phản hồi các sự kiện sau khi được định cấu hình và phát hành trên trang cấu hình ứng dụng Chat mà không cần phải xác thực hoặc uỷ quyền.
Ví dụ về các sự kiện đồng bộ hoá trên Chat gồm có:
- Một người dùng gửi tin nhắn đến một ứng dụng nhắn tin trong Google Chat.
- Một người dùng đề cập đến một ứng dụng nhắn tin.
- Người dùng gọi một trong các lệnh dấu gạch chéo của ứng dụng Chat.
Sơ đồ sau cho thấy trình tự phản hồi yêu cầu đồng bộ cơ bản giữa người dùng Chat và ứng dụng Chat:

- Người dùng gửi tin nhắn đến ứng dụng Chat trong Google Chat.
- Google Chat sẽ chuyển tiếp tin nhắn tới ứng dụng.
- Ứng dụng sẽ nhận, xử lý và trả lời tin nhắn cho Google Chat.
- Google Chat hiển thị phản hồi cho người dùng hoặc trong một không gian.
Trình tự này lặp lại cho mỗi sự kiện Chat.
Thông báo không đồng bộ yêu cầu xác thực
Thông báo không đồng bộ xảy ra khi ứng dụng Chat gửi yêu cầu tới API REST của Chat. Yêu cầu này yêu cầu xác thực và uỷ quyền.
Bằng cách gọi API REST, ứng dụng Chat có thể đăng tin nhắn lên Google Chat hoặc hoàn thành việc cần làm và truy cập dữ liệu thay mặt người dùng. Ví dụ: sau khi phát hiện sự cố ngừng hoạt động của máy chủ, ứng dụng Chat có thể gọi API trò chuyện để:
- Tạo một phòng Chat riêng để điều tra và khắc phục sự cố ngừng hoạt động.
- Thêm người vào phòng Chat.
- Đăng tin nhắn lên phòng Chat để cung cấp thông tin chi tiết về sự cố ngừng hoạt động.
Sơ đồ sau cho thấy trình tự tin nhắn không đồng bộ cơ bản giữa ứng dụng Chat và phòng Chat:

- Ứng dụng nhắn tin tạo một thông báo bằng cách gọi API REST của Chat bằng phương thức spaces.notifications.create và bao gồm thông tin xác thực tài khoản dịch vụ trong yêu cầu HTTP.
- Google Chat xác thực ứng dụng nhắn tin bằng tài khoản dịch vụ hoặc thông tin xác thực của người dùng.
- Google Chat sẽ hiển thị tin nhắn của ứng dụng với một phòng Chat được chỉ định.
Phạm vi API trò chuyện
Để xác định cấp truy cập được cấp cho ứng dụng của mình, bạn cần xác định và khai báo phạm vi uỷ quyền. Phạm vi uỷ quyền là một chuỗi URI OAuth 2.0, chứa tên ứng dụng Google Workspace, loại dữ liệu mà mã này truy cập và cấp truy cập.
Google Chat hỗ trợ các phạm vi sau:
Phạm vi API Google Chat | Nội dung mô tả |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Cho phép các ứng dụng nhắn tin xem cuộc trò chuyện và gửi tin nhắn. |
https://www.googleapis.com/auth/chat.delete
|
Xoá các cuộc trò chuyện và không gian, đồng thời xoá quyền truy cập vào các tệp được liên kết trong Google Chat. |
Hội viên | |
https://www.googleapis.com/auth/chat.memberships
|
Xem, thêm và xoá thành viên khỏi cuộc trò chuyện trong Google Chat. |
https://www.googleapis.com/auth/chat.memberships.app
|
Cho phép ứng dụng Chat tự thêm và xoá chính ứng dụng này (chứ không phải các ứng dụng khác) vào và khỏi cuộc trò chuyện trong Google Chat. |
Tin nhắn | |
https://www.googleapis.com/auth/chat.messages
|
Tạo, nhận, cập nhật, xoá và liệt kê tin nhắn trong Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Xem, thêm và xoá các phản ứng đối với tin nhắn trong Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Thêm các biểu tượng cảm xúc vào tin nhắn trong Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Xem phản ứng đối với tin nhắn trong Google Chat. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Nhận và liệt kê tin nhắn trong Google Chat. |
Không gian | |
https://www.googleapis.com/auth/chat.spaces
|
Tạo cuộc trò chuyện và không gian cũng như xem hoặc cập nhật siêu dữ liệu (bao gồm cả chế độ cài đặt nhật ký) trong Google Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
Tạo cuộc trò chuyện trong Google Chat. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Xem cuộc trò chuyện và các không gian trong Google Chat. |
Để tìm hiểu thêm về phạm vi cho API Google Workspace, hãy xem bài viết Cách chọn phạm vi cho ứng dụng.
Để biết danh sách các phạm vi có sẵn, hãy xem phần Phạm vi OAuth 2.0 cho API Google.
Các loại xác thực bắt buộc
Có 2 cách để ứng dụng Chat có thể xác thực và ủy quyền bằng API Chat: thông tin đăng nhập của người dùng hoặc tài khoản dịch vụ.
Khi được người dùng uỷ quyền, thông tin đăng nhập của ứng dụng Chat có thể truy cập vào dữ liệu người dùng đã chỉ định và hoàn thành những thao tác cụ thể thay mặt người dùng. Dữ liệu và hành động được ủy quyền được chỉ định theo phạm vi.
Khi được uỷ quyền tài khoản dịch vụ, ứng dụng Chat sẽ truy cập API dưới dạng một ứng dụng sử dụng thông tin đăng nhập của tài khoản dịch vụ.
Nếu là quản trị viên miền, bạn có thể cấp uỷ quyền trên toàn miền để cho phép tài khoản dịch vụ của một ứng dụng truy cập dữ liệu của người dùng mà không cần yêu cầu từng người dùng đồng ý. Sau khi định cấu hình việc ủy quyền trên toàn miền, bạn có thể thực hiện các lệnh gọi API bằng tài khoản dịch vụ của mình để mạo danh tài khoản người dùng. Mặc dù tài khoản dịch vụ được dùng để xác thực, nhưng việc uỷ quyền trên toàn miền mạo danh người dùng và do đó được coi là xác thực người dùng. Bất kỳ chức năng nào yêu cầu xác thực người dùng, bạn đều có thể sử dụng tính năng uỷ quyền trên toàn miền.
Bảng sau đây liệt kê các trường hợp phổ biến mà các ứng dụng Chat gặp phải, ứng dụng Chat có yêu cầu xác thực hay không và nếu có thì thuộc loại nào:
Trường hợp | Không yêu cầu xác thực | Hỗ trợ Xác thực người dùng | Hỗ trợ tài khoản dịch vụ | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nhận tin nhắn từ: |
|
|||||||||||||||
Trả lời tin nhắn: |
|
|||||||||||||||
Gửi tin nhắn mới |
|
|||||||||||||||
Cách tạo phòng Chat: |
|
|||||||||||||||
Thêm người dùng và ứng dụng vào phòng Chat: |
|
Thông tin có liên quan
- Để biết thông tin tổng quan về việc xác thực và uỷ quyền trong Google Workspace, hãy xem bài viết Tìm hiểu về việc xác thực và uỷ quyền trong Google Workspace for Developers.
- Để biết thông tin tổng quan về việc xác thực và uỷ quyền trong Google Cloud, hãy xem phần Tổng quan về quy trình xác thực trong tài liệu về Google Cloud.
- Để tìm hiểu thêm về tài khoản dịch vụ, hãy xem tài khoản Dịch vụ trên Google Cloud Identity và tài liệu Quản lý quyền truy cập (IAM).
- Để tìm hiểu thêm về cách các API của Google tận dụng OAuth 2.0, hãy xem phần Sử dụng OAuth 2.0 để truy cập API của Google trong tài liệu về Google Identity.
Bước tiếp theo
Thiết lập phương thức xác thực và uỷ quyền bằng thông tin xác thực của người dùng hoặc một tài khoản dịch vụ.