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