Giới thiệu về API Xác thực dành cho quản trị viên

SDK quản trị của Firebase cho phép bạn tích hợp các máy chủ của riêng mình với tính năng Xác thực Firebase. Bạn có thể sử dụng SDK quản trị của Firebase để quản lý người dùng hoặc để quản lý mã thông báo xác thực. Có một số lý do khiến bạn muốn làm điều này:

Quản lý người dùng

Không phải lúc nào bạn cũng cần phải truy cập vào bảng điều khiển của Firebase để quản lý người dùng Firebase của bạn. API Quản lý người dùng quản trị cung cấp quyền truy cập có lập trình cho chính những người dùng đó. Tính năng này thậm chí còn cho phép bạn làm những việc mà bảng điều khiển của Firebase không làm được, chẳng hạn như truy xuất toàn bộ dữ liệu của người dùng và thay đổi mật khẩu, địa chỉ email hoặc số điện thoại của người dùng.

Xác thực tuỳ chỉnh

Bạn có thể tích hợp hệ thống người dùng bên ngoài với Firebase. Ví dụ: bạn có thể đã có sẵn cơ sở dữ liệu người dùng hoặc bạn muốn tích hợp với nhà cung cấp danh tính của bên thứ ba mà tính năng Xác thực Firebase không hỗ trợ sẵn.

Để làm điều này, bạn có thể tạo mã thông báo tuỳ chỉnh với các thông báo xác nhận quyền sở hữu tuỳ ý nhận dạng người dùng. Sau đó, bạn có thể dùng những mã thông báo tuỳ chỉnh này để đăng nhập vào dịch vụ Xác thực Firebase trên một ứng dụng và giả định danh tính được mô tả trong các thông báo xác nhận quyền sở hữu của mã thông báo. Sau đó, danh tính này sẽ được dùng khi truy cập vào các dịch vụ khác của Firebase, chẳng hạn như Cloud Storage.

Xác minh danh tính

Tính năng Xác thực Firebase chủ yếu được dùng để xác định danh tính người dùng ứng dụng của bạn nhằm hạn chế quyền truy cập vào các dịch vụ khác, chẳng hạn như Cloud Storage. Bạn cũng có thể sử dụng dịch vụ này để xác định những người dùng này trên máy chủ của riêng mình. Điều này cho phép bạn thực hiện logic phía máy chủ thay mặt cho những người dùng đã đăng nhập bằng tính năng Xác thực Firebase một cách an toàn.

Để thực hiện việc này, bạn có thể truy xuất mã thông báo mã nhận dạng từ một ứng dụng khách đã đăng nhập bằng tính năng Xác thực Firebase và đưa mã thông báo đó vào yêu cầu đến máy chủ của bạn. Sau đó, máy chủ của bạn sẽ xác minh mã thông báo nhận dạng và trích xuất các thông báo xác nhận quyền sở hữu xác định người dùng (bao gồm cả uid của họ, nhà cung cấp danh tính mà họ đã đăng nhập, v.v.). Sau đó, máy chủ của bạn có thể sử dụng thông tin nhận dạng này để thực hiện các thao tác thay mặt cho người dùng.

SDK quản trị của Firebase cung cấp các phương thức để hoàn thành các nhiệm vụ xác thực nêu trên bằng cách cho phép bạn quản lý người dùng, tạo mã thông báo tuỳ chỉnh và xác minh mã thông báo mã nhận dạng.

Thông báo xác nhận quyền sở hữu tuỳ chỉnh của người dùng

Trong một số trường hợp, bạn có thể muốn triển khai chế độ kiểm soát quyền truy cập chi tiết cho người dùng đã đăng nhập bằng một trong các trình cung cấp dịch vụ xác thực Firebase được hỗ trợ, chẳng hạn như Email/Mật khẩu, Google, Facebook, điện thoại, v.v. Một tổ hợp các xác nhận quyền sở hữu tuỳ chỉnh của người dùng và các quy tắc bảo mật ứng dụng cung cấp khả năng này. Ví dụ: người dùng đăng nhập bằng nhà cung cấp Email xác thực và Mật khẩu Firebase có thể có quyền kiểm soát quyền truy cập được xác định bằng cách sử dụng các thông báo xác nhận quyền sở hữu tuỳ chỉnh.

Quản lý người dùng

SDK quản trị của Firebase cung cấp một API để quản lý những người dùng Firebase có đặc quyền cấp cao. API quản lý người dùng quản trị cho phép bạn truy xuất, tạo, cập nhật và xoá người dùng theo phương thức lập trình mà không yêu cầu thông tin xác thực hiện có của người dùng cũng như không lo lắng về việc giới hạn số lượng yêu cầu phía máy khách.

Quản lý người dùng

Tạo mã thông báo tuỳ chỉnh

Mục đích sử dụng chính để tạo mã thông báo tuỳ chỉnh là cho phép người dùng xác thực bằng cơ chế xác thực bên ngoài hoặc cơ chế cũ. Đây có thể là tài khoản bạn kiểm soát, chẳng hạn như máy chủ LDAP hoặc trình cung cấp OAuth của bên thứ ba mà Firebase không hỗ trợ sẵn, chẳng hạn như Instagram hoặc LinkedIn.

SDK quản trị của Firebase có một phương thức tích hợp để tạo mã thông báo tuỳ chỉnh. Bạn cũng có thể lập trình để tạo mã thông báo tuỳ chỉnh ở bất kỳ ngôn ngữ nào bằng cách sử dụng thư viện JWT của bên thứ ba.

Máy chủ của bạn nên tạo một mã thông báo tuỳ chỉnh có giá trị nhận dạng duy nhất (uid) và chuyển mã thông báo đó đến một ứng dụng khách. Ứng dụng này sẽ dùng mã đó để đăng nhập vào Firebase. Hãy xem bài viết Tạo mã thông báo tuỳ chỉnh để biết mã mẫu và thông tin khác về quy trình tạo mã thông báo tuỳ chỉnh.

Tạo mã thông báo tuỳ chỉnh

Xác minh mã thông báo nhận dạng

Nếu ứng dụng Firebase của bạn giao tiếp với máy chủ phụ trợ, thì bạn có thể cần xác định người dùng hiện đang đăng nhập trên máy chủ để có thể thực hiện logic phía máy chủ thay cho họ. Bạn có thể thực hiện việc này một cách an toàn bằng cách sử dụng mã thông báo mã nhận dạng do Firebase tạo khi người dùng đăng nhập vào ứng dụng Firebase. Mã thông báo mã nhận dạng tuân theo thông số của OpenID Connect và chứa dữ liệu để nhận dạng người dùng, cũng như một số hồ sơ và thông tin khác liên quan đến việc xác thực. Bạn có thể gửi, xác minh và kiểm tra các mã thông báo này từ phần phụ trợ của riêng mình. Điều này cho phép bạn xác định người dùng hiện đang đăng nhập một cách an toàn và uỷ quyền cho họ trong tài nguyên phụ trợ của riêng bạn.

SDK quản trị của Firebase có một phương thức tích hợp để xác minh mã thông báo mã nhận dạng. Bạn cũng có thể lập trình để xác minh mã thông báo mã nhận dạng bằng bất kỳ ngôn ngữ nào nhờ sử dụng thư viện JWT của bên thứ ba. Hãy xem phần Xác minh mã thông báo mã nhận dạng để biết thêm thông tin chi tiết và các mã mẫu về quy trình xác minh mã thông báo mã nhận dạng.

Xác minh mã thông báo mã nhận dạng

Xác nhận quyền sở hữu tùy chỉnh của người dùng

SDK quản trị của Firebase cho phép bạn đặt các thuộc tính tùy chỉnh trên tài khoản người dùng. Với thông báo xác nhận quyền sở hữu tuỳ chỉnh của người dùng, bạn có thể cấp cho người dùng các cấp truy cập (vai trò) khác nhau. Sau đó, các cấp độ này được thực thi trong các quy tắc bảo mật của ứng dụng.

Sau khi các thông báo xác nhận quyền sở hữu tuỳ chỉnh được sửa đổi đối với người dùng thông qua SDK quản trị của Firebase, các thông báo này sẽ được truyền đến người dùng đã xác thực ở phía máy khách thông qua mã thông báo giá trị nhận dạng. Mã thông báo giá trị nhận dạng là một cơ chế đáng tin cậy để phân phối các thông báo xác nhận quyền sở hữu tuỳ chỉnh này. Tất cả quyền truy cập đã xác thực đều phải xác thực mã thông báo giá trị nhận dạng trước khi xử lý yêu cầu liên quan.

Kiểm soát quyền truy cập bằng thông báo xác nhận quyền sở hữu tuỳ chỉnh