Các phương pháp hay nhất

Trang này trình bày một số phương pháp hay nhất chung để tích hợp với OAuth 2.0. Hãy cân nhắc các phương pháp hay nhất này ngoài mọi hướng dẫn cụ thể cho loại ứng dụng và nền tảng phát triển của bạn. Ngoài ra, hãy tham khảo lời khuyên để chuẩn bị ứng dụng cho bản phát hành công khaichính sách của Google về OAuth 2.0.

Xử lý thông tin đăng nhập của ứng dụng một cách an toàn

Thông tin đăng nhập ứng dụng OAuth giúp xác định danh tính của ứng dụng và cần được xử lý cẩn thận. Chỉ lưu trữ các thông tin xác thực này trong bộ nhớ bảo mật, chẳng hạn như sử dụng trình quản lý bí mật như Trình quản lý bí mật của Google Cloud. Đừng mã hoá cứng thông tin xác thực, đưa thông tin này vào kho lưu trữ mã hoặc xuất bản công khai thông tin đó.

Xử lý mã thông báo người dùng một cách an toàn

Mã thông báo người dùng bao gồm cả mã làm mới và mã truy cập mà ứng dụng của bạn sử dụng. Lưu trữ mã thông báo một cách an toàn khi nghỉ và không bao giờ truyền mã dưới dạng văn bản thuần tuý. Sử dụng hệ thống lưu trữ an toàn phù hợp với nền tảng của bạn, chẳng hạn như Keystore trên Android, Dịch vụ khoá trên iOS và macOS hoặc Kho khoá trên Windows.

Huỷ thu hồi mã thông báo ngay khi bạn không cần đến nữa và xoá vĩnh viễn các mã thông báo đó khỏi hệ thống của bạn.

Ngoài ra, hãy cân nhắc các phương pháp hay nhất sau đây cho nền tảng của bạn:

  • Đối với các ứng dụng phía máy chủ lưu trữ mã thông báo cho nhiều người dùng, hãy mã hoá mã khi ở trạng thái tĩnh và đảm bảo rằng kho dữ liệu của bạn không thể truy cập công khai trên Internet.
  • Đối với ứng dụng gốc dành cho máy tính, bạn nên sử dụng giao thức Khoá bằng chứng để trao đổi mã (PKCE) để lấy mã uỷ quyền có thể trao đổi lấy mã truy cập.

Xử lý việc thu hồi và hết hạn mã làm mới

Nếu ứng dụng của bạn đã yêu cầu mã thông báo làm mới để truy cập khi không có mạng, thì bạn cũng phải xử lý việc mã thông báo đó không hợp lệ hoặc hết hạn. Mã thông báo có thể không hợp lệ vì nhiều lý do, chẳng hạn như mã thông báo có thể đã hết hạn hoặc quyền truy cập vào ứng dụng của bạn có thể đã bị người dùng hoặc một quy trình tự động thu hồi. Trong trường hợp này, hãy cân nhắc kỹ cách ứng dụng của bạn phản hồi, bao gồm cả việc nhắc người dùng ở lần đăng nhập tiếp theo hoặc dọn dẹp dữ liệu của họ. Để nhận thông báo về việc thu hồi mã thông báo, hãy tích hợp với dịch vụ Bảo vệ nhiều tài khoản.

Sử dụng tính năng uỷ quyền gia tăng

Sử dụng tính năng uỷ quyền gia tăng để yêu cầu các phạm vi OAuth thích hợp khi ứng dụng của bạn cần chức năng đó.

Bạn không nên yêu cầu quyền truy cập vào dữ liệu khi người dùng xác thực lần đầu, trừ phi điều đó là cần thiết cho chức năng cốt lõi của ứng dụng. Thay vào đó, hãy chỉ yêu cầu các phạm vi cụ thể cần thiết cho một tác vụ, tuân theo nguyên tắc chọn phạm vi nhỏ nhất, hạn chế nhất có thể.

Luôn yêu cầu phạm vi theo ngữ cảnh để giúp người dùng hiểu lý do ứng dụng của bạn yêu cầu quyền truy cập và cách dữ liệu sẽ được sử dụng.

Ví dụ: ứng dụng của bạn có thể tuân theo mô hình này:

  1. Người dùng xác thực bằng ứng dụng của bạn
    1. Bạn không cần yêu cầu thêm phạm vi nào. Ứng dụng cung cấp chức năng cơ bản để cho phép người dùng khám phá và sử dụng các tính năng không yêu cầu thêm dữ liệu hoặc quyền truy cập.
  2. Người dùng chọn một tính năng cần quyền truy cập vào dữ liệu bổ sung
    1. Ứng dụng của bạn đưa ra yêu cầu uỷ quyền đối với phạm vi OAuth cụ thể này (cần thiết cho tính năng này). Nếu tính năng này yêu cầu nhiều phạm vi, hãy làm theo các phương pháp hay nhất bên dưới.
    2. Nếu người dùng từ chối yêu cầu, ứng dụng sẽ tắt tính năng và cung cấp cho người dùng thêm ngữ cảnh để yêu cầu quyền truy cập lại.

Xử lý sự đồng ý cho nhiều phạm vi

Khi bạn yêu cầu nhiều phạm vi cùng một lúc, người dùng có thể không cấp tất cả phạm vi OAuth mà bạn yêu cầu. Ứng dụng của bạn nên xử lý việc từ chối phạm vi bằng cách tắt chức năng có liên quan.

Nếu chức năng cơ bản của ứng dụng yêu cầu nhiều phạm vi, hãy giải thích điều này cho người dùng trước khi nhắc họ đồng ý.

Bạn chỉ có thể nhắc lại người dùng sau khi họ cho biết rõ ý định sử dụng tính năng cụ thể yêu cầu phạm vi đó. Ứng dụng của bạn phải cung cấp cho người dùng ngữ cảnh và lý do liên quan trước khi yêu cầu phạm vi OAuth.

Bạn nên giảm thiểu số lượng phạm vi mà ứng dụng yêu cầu cùng một lúc. Thay vào đó, hãy sử dụng tính năng uỷ quyền gia tăng để yêu cầu các phạm vi trong ngữ cảnh của các tính năng và chức năng.

Sử dụng trình duyệt bảo mật

Trên web, bạn chỉ có thể thực hiện yêu cầu uỷ quyền OAuth 2.0 từ các trình duyệt web đầy đủ tính năng. Trên các nền tảng khác, hãy nhớ chọn loại ứng dụng khách OAuth chính xác và tích hợp OAuth sao cho phù hợp với nền tảng của bạn. Không chuyển hướng yêu cầu thông qua môi trường duyệt web được nhúng, bao gồm cả chế độ xem web trên các nền tảng di động, chẳng hạn như WebView trên Android hoặc WKWebView trên iOS. Thay vào đó, hãy dùng thư viện OAuth gốc hoặc tính năng Đăng nhập bằng Google cho nền tảng của bạn.

Tạo và định cấu hình ứng dụng khách OAuth theo cách thủ công

Để ngăn chặn hành vi sai trái, bạn không thể tạo hoặc sửa đổi ứng dụng OAuth theo phương thức lập trình. Bạn phải sử dụng Google Developers Console để xác nhận rõ ràng các điều khoản dịch vụ, định cấu hình ứng dụng OAuth và chuẩn bị cho quy trình xác minh OAuth.

Đối với quy trình làm việc tự động, hãy cân nhắc sử dụng tài khoản dịch vụ.