Xác thực và uỷ quyền là các cơ chế được 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 xác định các thuật ngữ chính mà bạn nên biết trước khi triển khai quy trình xác thực và uỷ quyền trong ứng dụng.
Xác thực xác định ai đang đưa ra yêu cầu. Uỷ quyền xác định những tài nguyên mà người yêu cầu có thể truy cập và cấp độ truy cập mà họ có. Xác thực là điều kiện tiên quyết để uỷ quyền. Bạn không thể xác định tài nguyên cần truy cập nếu chưa xác định danh tính của người yêu cầu. Để biết định nghĩa chi tiết hơn, hãy xem phần Thuật ngữ quan trọng.
Hãy xem xét ví dụ đơn giản sau đây về việc đặt phòng khách sạn. Khi bạn đến khách sạn, nhân viên lễ tân sẽ yêu cầu bạn xuất trình giấy tờ tuỳ thân để xác minh thông tin đặt phòng. Giấy tờ tuỳ thân của bạn sẽ giúp bạn xác thực với khách sạn. Nhân viên lễ tân đưa cho bạn chìa khoá khách sạn. Chìa khoá này giúp bạn truy cập vào một số tài nguyên tại khách sạn, chẳng hạn như phòng khách sạn, phòng tập thể dục và khu dịch vụ văn phòng. Khoá khách sạn cho phép bạn truy cập vào những tài nguyên đó.
Tổng quan về quy trình
Sơ đồ sau đây cho thấy các bước xác thực và uỷ quyền cấp cao cho các API của Google Workspace:

Định cấu hình dự án và ứng dụng trên Google Cloud: Trong quá trình phát triển, bạn đăng ký ứng dụng của mình trong Google Cloud Console, xác định phạm vi uỷ quyền và thông tin đăng nhập để xác thực ứng dụng bằng khoá API, thông tin đăng nhập của người dùng cuối hoặc thông tin đăng nhập của tài khoản dịch vụ.
Xác thực ứng dụng để truy cập: Khi ứng dụng của bạn chạy, các thông tin đăng nhập truy cập đã đăng ký sẽ được đánh giá. Nếu ứng dụng của bạn đang xác thực với tư cách là người dùng cuối, thì lời nhắc đăng nhập có thể xuất hiện.
Yêu cầu tài nguyên: Khi cần quyền truy cập vào các tài nguyên của Google, ứng dụng của bạn sẽ yêu cầu Google cung cấp các phạm vi truy cập có liên quan mà bạn đã đăng ký trước đó.
Yêu cầu người dùng đồ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 cuối, thì Google sẽ hiển thị màn hình yêu cầu sự đồng ý theo OAuth để người dùng có thể quyết định xem 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.
Gửi yêu cầu đã phê duyệt cho các tài nguyên: Nếu người dùng đồng ý với các phạm vi truy cập, ứng dụng của bạn sẽ gói thông tin đăng nhập và các phạm vi truy cập mà người dùng đã phê duyệt vào 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ã truy cập: Mã truy cập chứa danh sách các phạm vi truy cập được cấp. Nếu danh sách phạm vi được trả về hạn chế hơn phạm vi truy cập được yêu cầu, thì ứng dụng của bạn sẽ tắt mọi tính năng bị giới hạn bởi mã thông báo.
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 từ Google để gọi các API liên quan và truy cập vào các tài nguyên.
Nhận mã làm mới (không bắt buộc): Nếu cần truy cập vào một API của Google ngoài thời gian tồn tại của một mã truy cập duy nhất, thì ứng dụng của bạn có thể lấy mã làm mới.
Yêu cầu thêm tài nguyên: Nếu cần thêm quyền truy cập, ứng dụng của bạn sẽ yêu cầu người dùng cấp quyền truy cập vào 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).
Thuật ngữ quan trọng
Sau đây là danh sách các thuật ngữ liên quan đến việc xác thực và uỷ quyền:
- Xác thực
Hành động đảm bảo rằng một chủ thể (có thể là người dùng hoặc ứng dụng hành động thay mặt cho người dùng) là người mà họ nói. Khi viết các ứng dụng Google Workspace, bạn nên biết những loại xác thực sau:
- Xác thực người dùng
- Hành động xác thực (đăng nhập) của người dùng vào ứng dụng của bạn. Thông thường, quá trình xác thực người dùng được thực hiện thông qua quy trình đăng nhập, trong đó người dùng sử dụng tổ hợp tên người dùng và mật khẩu để xác minh danh tính của họ với ứng dụng. Bạn có thể kết hợp quy trình xác thực người dùng vào một ứng dụng bằng cách sử dụng tính năng Đăng nhập bằng Google.
- Xác thực ứng dụng
- Hành động xác thực trực tiếp của một ứng dụng đối với các dịch vụ của Google thay cho người dùng đang chạy ứng dụng. Hoạt động xác thực ứng dụng thường được thực hiện bằng thông tin đăng nhập được tạo trước trong mã của ứng dụng.
- Uỷ quyền
Các quyền hoặc "quyền hạn" mà người dùng chính có để truy cập vào dữ liệu hoặc thực hiện các thao tác. Quy trình uỷ quyền được thực hiện thông qua mã mà bạn viết trong ứng dụng của mình. Mã này thông báo cho người dùng rằng ứng dụng muốn thay mặt họ hành động và nếu được phép, mã này sẽ sử dụng thông tin đăng nhập duy nhất của ứng dụng để lấy mã truy cập từ Google. Mã truy cập này được dùng để truy cập vào dữ liệu hoặc thực hiện các thao tác.
- Thông tin xác thực
Một hình thức nhận dạng được dùng trong bảo mật phần mềm. Về phương thức xác thực, thông tin đăng nhập thường là sự kết hợp giữa tên người dùng và mật khẩu. Về việc uỷ quyền cho các API Google Workspace, thông thường, thông tin đăng nhập là một hình thức nhận dạng nào đó, chẳng hạn như một chuỗi bí mật duy nhất, chỉ được biết giữa nhà phát triển ứng dụng và máy chủ xác thực. Google hỗ trợ những thông tin xác thực sau: khoá API, mã ứng dụng OAuth 2.0 và tài khoản dịch vụ.
- Khoá API
- Thông tin đăng nhập dùng để yêu cầu quyền truy cập vào dữ liệu công khai, chẳng hạn như dữ liệu được cung cấp bằng Maps API hoặc các tệp Google Workspace được chia sẻ bằng chế độ cài đặt "Bất kỳ ai có đường liên kết trên Internet" trong phần cài đặt chia sẻ của Google Workspace.
- Mã ứng dụng OAuth 2
- Thông tin đăng nhập dùng để yêu cầu quyền truy cập vào dữ liệu do người dùng sở hữu. Đây là thông tin đăng nhập chính được dùng khi yêu cầu quyền truy cập vào dữ liệu bằng API Google Workspace. Thông tin đăng nhập này yêu cầu phải có sự đồng ý của người dùng.
- Khoá bí mật của ứng dụng khách
- Một chuỗi ký tự mà chỉ ứng dụng và máy chủ uỷ quyền của bạn mới biết. Khoá bí mật của ứng dụng bảo vệ dữ liệu của người dùng bằng cách chỉ cấp mã thông báo cho những bên yêu cầu được uỷ quyền. Bạn không bao giờ được đưa khoá bí mật của ứng dụng khách chưa mã hoá vào ứng dụng. Bạn nên lưu trữ khoá bí mật của ứng dụng khách một cách an toàn. Để biết thêm thông tin, hãy xem bài viết Xử lý thông tin đăng nhập của ứng dụng một cách an toàn.
- Khoá tài khoản dịch vụ
- Được tài khoản dịch vụ dùng để được uỷ quyền truy cập vào một dịch vụ của Google.
- Tài khoản dịch vụ
- Thông tin đăng nhập được dùng cho các hoạt động tương tác giữa các máy chủ, chẳng hạn như một ứng dụng không có giao diện chạy dưới dạng một quy trình để truy cập vào một số dữ liệu hoặc thực hiện một số thao tác. Tài khoản dịch vụ thường được dùng để truy cập vào dữ liệu và các hoạt động trên đám mây. Tuy nhiên, khi được dùng với quyền uỷ quyền trên toàn miền, các khoá này có thể được dùng để truy cập vào dữ liệu người dùng.
- Phạm vi
Một chuỗi URI OAuth 2.0 xác định cấp độ truy cập vào các tài nguyên hoặc hành động được cấp cho một ứng dụng. Đối với Google Workspace, URI phạm vi uỷ quyền chứa tên ứng dụng Google Workspace, loại dữ liệu mà ứng dụng đó truy cập và cấp độ truy cập. Người dùng ứng dụng của bạn có thể xem xét các phạm vi được yêu cầu và chọn quyền truy cập cần cấp, sau đó máy chủ xác thực của Google sẽ trả về các phạm vi được phép cho ứng dụng của bạn trong một mã truy cập. Để biết thêm thông tin chi tiết, hãy tham khảo bài viết Cách chọn phạm vi cho ứng dụng.
- Máy chủ uỷ quyền
Máy chủ của Google để cấp quyền truy cập (bằng mã truy cập) vào dữ liệu và các thao tác mà ứng dụng yêu cầu.
- Mã uỷ quyền
Một mã do máy chủ uỷ quyền gửi để lấy mã truy cập. Bạn chỉ cần mã khi loại ứng dụng của bạn là ứng dụng máy chủ web hoặc ứng dụng đã cài đặt.
- Mã truy cập
Mã thông báo cấp quyền truy cập vào một API Google Workspace. Một mã truy cập duy nhất có thể cấp nhiều mức độ truy cập (còn gọi là phạm vi) cho nhiều API. Yêu cầu mã uỷ quyền của ứng dụng sẽ yêu cầu mã truy cập và sử dụng mã này để gọi các API Google Workspace.
- Máy chủ tài nguyên
Máy chủ lưu trữ API mà ứng dụng của bạn muốn gọi.
- Khung OAuth 2.0
Một tiêu chuẩn mà ứng dụng của bạn có thể sử dụng để cung cấp cho ứng dụng "quyền truy cập được uỷ quyền an toàn" hoặc quyền truy cập vào dữ liệu và các thao tác thay mặt cho người dùng ứng dụng. Cơ chế xác thực và uỷ quyền mà bạn sử dụng trong ứng dụng thể hiện việc triển khai khuôn khổ OAuth 2.0.
- Principal
Một thực thể (còn gọi là danh tính) có thể được cấp quyền truy cập vào một tài nguyên. Các API Google Workspace hỗ trợ 2 loại thực thể chính: tài khoản người dùng và tài khoản dịch vụ. Để biết thêm thông tin chi tiết, hãy tham khảo Các thực thể.
- Kiểu dữ liệu
Trong bối cảnh xác thực và uỷ quyền, kiểu dữ liệu đề cập đến thực thể sở hữu dữ liệu mà ứng dụng của bạn đang cố gắng truy cập. Có 3 kiểu dữ liệu:
- Dữ liệu thuộc phạm vi công cộng
- Dữ liệu mà mọi người đều có thể truy cập, chẳng hạn như một số dữ liệu trên Google Maps. Dữ liệu này thường được truy cập bằng khoá API.
- Dữ liệu người dùng cuối
- Dữ liệu thuộc về một người dùng cuối hoặc nhóm cụ thể, chẳng hạn như các tệp Google Drive của một người dùng cụ thể. Loại dữ liệu này thường được truy cập bằng mã ứng dụng OAuth 2 hoặc tài khoản dịch vụ.
- Dữ liệu trên đám mây
- Dữ liệu thuộc sở hữu của một dự án trên Google Cloud. Loại dữ liệu này thường được truy cập bằng tài khoản dịch vụ.
- Sự đồng ý của người dùng
Một bước uỷ quyền yêu cầu người dùng ứng dụng của bạn uỷ quyền cho ứng dụng truy cập dữ liệu và thực hiện các thao tác thay mặt người dùng.
- Loại ứng dụng
Loại ứng dụng mà bạn sẽ tạo. Khi tạo thông tin đăng nhập bằng bảng điều khiển Google Cloud, bạn sẽ được yêu cầu chọn loại ứng dụng. Các loại ứng dụng là: Ứng dụng web (JavaScript), Android, Ứng dụng Chrome, iOS, TV và Thiết bị có chế độ đầu vào hạn chế, Ứng dụng dành cho máy tính (còn gọi là "ứng dụng đã cài đặt") và Nền tảng Windows đa năng (UWP).
- Tài khoản dịch vụ
Một loại Tài khoản Google đặc biệt được dùng để đại diện cho một người dùng không phải là con người cần xác thực và được phép truy cập vào dữ liệu. Ứng dụng của bạn giả định danh tính của tài khoản dịch vụ để gọi API của Google, nhờ đó người dùng không trực tiếp tham gia. Bản thân tài khoản dịch vụ không thể dùng để truy cập vào dữ liệu người dùng; dữ liệu thường được truy cập bằng API Workspace. Tuy nhiên, tài khoản dịch vụ có thể truy cập vào dữ liệu người dùng bằng cách triển khai tính năng uỷ quyền trên toàn miền. Để biết thêm thông tin, hãy tham khảo bài viết Tìm hiểu về tài khoản dịch vụ.
- Uỷ quyền trên toàn miền
Một tính năng quản trị có thể cho phép một ứng dụng truy cập vào dữ liệu người dùng thay mặt cho người dùng trong tổ chức Google Workspace. Bạn có thể dùng tính năng uỷ quyền trên toàn miền để thực hiện các tác vụ liên quan đến quản trị trên dữ liệu người dùng. Để uỷ quyền theo cách này, quản trị viên Google Workspace sử dụng tài khoản dịch vụ có OAuth 2.0. Do tính năng này có nhiều quyền hạn, nên chỉ quản trị viên cấp cao mới có thể bật tính năng uỷ quyền trên toàn miền. Để biết thêm thông tin, hãy tham khảo bài viết Uỷ quyền trên toàn miền cho tài khoản dịch vụ.
Bước tiếp theo
Định cấu hình màn hình yêu cầu sự đồng ý OAuth của ứng dụng để đảm bảo người dùng có thể hiểu và phê duyệt quyền truy cập của ứng dụng vào dữ liệu của họ.