Tìm hiểu về quá trình xác thực và uỷ quyền

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 các 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 cần biết trước khi triển khai tính năng xác thực và uỷ quyền trong ứng dụng của mình.

Xác thực xác định người đư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 của họ. Xác thực là điều kiện tiên quyết để được uỷ 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 thiết lập trước danh tính của người yêu cầu. Để biết định nghĩa chi tiết hơn, vui lòng xem phần Các 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 cung cấp giấy tờ tuỳ thân để xác minh yêu cầu đặt phòng của bạn. Giấy tờ tuỳ thân của bạn xác thực bạn với khách sạn. Nhân viên lễ tân cung cấp 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á khách sạn cho phép bạn truy cập vào các tài nguyên đó.

Tổng quan về quy trình

Sơ đồ dưới đây cho thấy các bước xác thực và uỷ quyền cấp cao đối với các API Google Workspace:

Các bước cấp cao trong quá trình triển khai xác thực và
    uỷ quyền
Hình 1. Các bước cấp cao của việc triển khai xác thực và uỷ quyền
  1. Đị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 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ụ.

  2. Xác thực ứng dụng để truy cập: Khi ứng dụng chạy, thông tin xác thực quyền 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 người dùng cuối, thì lời nhắc đăng nhập có thể sẽ xuất hiện.

  3. Yêu cầu tài nguyên: Khi cần truy cập vào các tài nguyên của Google, ứng dụng sẽ yêu cầu Google sử dụng phạm vi truy cập liên quan mà bạn đã đăng ký trước đó.

  4. 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 người dùng cuối, thì Google sẽ hiện màn hình xin phép bằng OAuth để người dùng 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.

  5. Gửi yêu cầu cấp tài nguyên đã được phê duyệt: Nếu người dùng đồng ý với các phạm vi truy cập, ứng dụng 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 được gửi đến máy chủ uỷ quyền của Google để lấy mã truy cập.

  6. Google trả về một mã truy cập: Mã truy cập này 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ề giới hạn nhiều hơn phạm vi truy cập được yêu cầu, thì ứng dụng sẽ tắt mọi tính năng bị giới hạn bởi mã thông báo.

  7. Truy cập vào tài nguyên được yêu cầu: Ứng dụng của bạn dùng mã truy cập của Google để gọi các API liên quan và truy cập vào các tài nguyên đó.

  8. Tải 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 ngoài thời gian hoạt động của một mã truy cập, ứng dụng đó có thể lấy mã làm mới.

  9. 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 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 (bước 3–6).

Thuật ngữ quan trọng

Sau đây là danh sách các thuật ngữ có 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ính, có thể là người dùng hoặc ứng dụng đại diện cho người dùng, đúng là người như họ nói. Khi viết ứng dụng Google Workspace, bạn nên lưu ý về 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ọ đối với ứng dụng. Tính năng xác thực người dùng có thể được tích hợp vào ứng dụng bằng tính năng Đăng nhập bằng Google.
Xác thực ứng dụng
Hành động của ứ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 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ó sẵn trong mã của ứng dụng.
Uỷ quyền

Các quyền hoặc "uỷ quyền" mà đối tượng chính có để truy cập vào dữ liệu hoặc thực hiện 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 cho người dùng biết rằng ứng dụng muốn hành động thay mặt họ và nếu được phép, ứng dụng sẽ sử dụng thông tin xác thực duy nhất của ứng dụng để lấy mã truy cập từ Google dùng để truy cập vào dữ liệu hoặc thực hiện thao tác.

Thông tin xác thực

Một loại giấy tờ tuỳ thân dùng trong việc bảo mật phần mềm. Trong phương thức 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. Trong quá trình cấp phép cho các API 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ư 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ợ 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 đă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 API Maps hoặc các tệp trên 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 phần cài đặt cách chia sẻ của Google Workspace.
Mã ứng dụng khách 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 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 các API Google Workspace. Thông tin đăng nhập này cần có sự đồng ý của người dùng.
Mật khẩu ứng dụng khách
Một chuỗi ký tự mà chỉ ứng dụng của bạn và máy chủ uỷ quyền mới biết được. Mật khẩu ứng dụng khách giúp 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 nên đư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 bài viết 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 sử dụng một dịch vụ của Google.
Tài khoản dịch vụ
Thông tin đăng nhập dùng cho các hoạt động tương tác từ máy chủ đến máy chủ, chẳng hạn như một ứng dụng không có mặt 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à các hoạt động trên đám mây. Tuy nhiên, khi được sử dụng cùng với tính năng uỷ quyền trên toàn miền, bạn có thể sử dụng các quyền đó để 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 trong phạm vi uỷ quyền chứa tên ứng dụng trên 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ó thể xem các phạm vi được yêu cầu và chọn quyền truy cập để 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 cách sử dụng mã truy cập) vào dữ liệu và các hoạt động được yêu cầu của ứng dụng.

Mã uỷ quyền

Mã được gửi từ máy chủ uỷ quyền dùng để lấy mã thông báo 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 duy nhất có thể cấp quyền truy cập vào nhiều API ở nhiều mức độ, còn gọi là phạm vi. Mã uỷ quyền của ứng dụng yêu cầu mã truy cập và dùng các 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 để cấp cho ứng dụng “quyền truy cập được uỷ quyền bảo mật” hoặc thay mặt cho người dùng của ứng dụng truy cập vào dữ liệu và các thao tác. 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 bạn triển khai khung OAuth 2.0.

Hiệu trưởng

Một thực thể (còn gọi là mã nhận dạng) 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ợ hai loại tài khoản 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 bài viết Chính.

Kiểu dữ liệu

Trong ngữ cảnh xác thực và uỷ quyền, loại dữ liệu là 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 loại dữ liệu:

Dữ liệu thuộc phạm vi công cộng
Dữ liệu mà bất kỳ ai cũng 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 của 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 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 khách OAuth 2 hoặc tài khoản dịch vụ OAuth 2.
Dữ liệu đá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 tài khoản dịch vụ truy cập.
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 phải cho phép ứng dụng truy cập vào 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 bạn sẽ tạo. Khi tạo thông tin xác thực 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ị đầu vào 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ổ quát (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 người dùng không phải con người và cần xác thực và được uỷ quyền để truy cập 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 các API của Google để người dùng không liên quan trực tiếp. Bản thân các 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 được truy cập tuỳ chỉnh bằng các 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 chi tiết, 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 thay mặt người dùng trong tổ chức Google Workspace truy cập vào dữ liệu 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ị viên đối với dữ liệu người dùng. Để uỷ quyền theo cách này, quản trị viên Google Workspace sẽ sử dụng tài khoản dịch vụ với OAuth 2.0. Do sức mạnh của tính năng này, chỉ quản trị viên cấp cao mới có thể cho phép uỷ quyền trên toàn miền. Để biết thêm thông tin chi tiết, hãy tham khảo phần Uỷ quyền trên toàn miền cho một 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ọ.