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

Firebase Admin SDK cho phép bạn tích hợp máy chủ của riêng mình với Firebase Authentication. Bạn có thể sử dụng Firebase Admin SDK để 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 việc này:

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

Không phải lúc nào bạn cũng có thể truy cập vào bảng điều khiển Firebase để quản lý người dùng Firebase. 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 những người dùng đó. Thậm chí, bạn còn có thể làm những việc mà bảng điều khiển Firebase không thể 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ó cơ sở dữ liệu người dùng sẵn có hoặc bạn có thể muốn tích hợp với một nhà cung cấp danh tính bên thứ ba mà Firebase Authentication không hỗ trợ.

Để làm việc này, bạn có thể tạo mã thông báo tuỳ chỉnh có các thông báo tuỳ ý xác định người dùng. Sau đó, bạn có thể dùng các mã thông báo tuỳ chỉnh này để đăng nhập vào dịch vụ Firebase Authentication trên một ứng dụng khách và giả định danh tính được mô tả trong các thông báo xác nhận 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ụ Firebase khác, chẳng hạn như Cloud Storage.

Xác minh danh tính

Firebase Authentication chủ yếu được dùng để xác đị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 thay mặt cho những người dùng đã đăng nhập bằng Firebase Authentication thực hiện logic phía máy chủ 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 nhận dạng từ ứng dụng khách đã đăng nhập bằng Firebase Authentication và đưa mã thông báo đó vào yêu cầu gửi đến máy chủ. 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 giúp xác định người dùng (bao gồm cả uid, 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 để thay mặt người dùng thực hiện các hành động.

Firebase Admin SDK cung cấp các phương thức để thực hiện các nhiệm vụ xác thực ở 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 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 tính năng kiểm soát quyền truy cập chi tiết cho những người dùng đã đăng nhập bằng một trong các trình cung cấp 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. Việc kết hợp các thông báo xác nhận tuỳ chỉnh của người dùng và quy tắc bảo mật ứng dụng sẽ cung cấp chức năng này. Ví dụ: người dùng đã đăng nhập bằng trình cung cấp Email và mật khẩu Firebase Authentication có thể được xác định quyền kiểm soát truy cập bằng cách sử dụng các thông báo xác nhận tuỳ chỉnh.

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

Firebase Admin SDK cung cấp một API để quản lý người dùng Firebase có đặc quyền nâng 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 cần thông tin xác thực hiện có của người dùng và không phải lo lắng về việc giới hạn tốc độ 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 chính của việc tạo mã thông báo tuỳ chỉnh là cho phép người dùng xác thực dựa trên cơ chế xác thực bên ngoài hoặc cũ. Đây có thể là một dịch vụ mà bạn kiểm soát, chẳng hạn như máy chủ LDAP hoặc nhà cung cấp OAuth bên thứ ba mà Firebase không hỗ trợ gốc, chẳng hạn như Instagram hoặc LinkedIn.

Firebase Admin SDK 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ể tạo mã thông báo tuỳ chỉnh theo phương thức lập trình bằng 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 sẽ tạo một mã thông báo tuỳ chỉnh có giá trị nhận dạng duy nhất (uid) và truyền mã thông báo đó đến ứng dụng khách. Ứng dụng khách sẽ sử dụng mã thông báo đó để đăng nhập vào Firebase. Hãy xem phần Tạo mã thông báo tuỳ chỉnh để biết các mẫu mã và thông tin chi tiết 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 giấy tờ tuỳ thân

Nếu ứng dụng khách Firebase giao tiếp với máy chủ phụ trợ, bạn có thể cần xác định người dùng hiện đã đăng nhập trên máy chủ để thay mặt họ thực hiện logic phía máy chủ. 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 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 nhận dạng tuân thủ thông số kỹ thuật OpenID Connect và chứa dữ liệu để xác định người dùng, cũng như một số thông tin khác liên quan đến hồ sơ và 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 một cách an toàn người dùng hiện đã đăng nhập và cho phép họ truy cập vào các tài nguyên phụ trợ của riêng bạn.

Firebase Admin SDK có một phương thức tích hợp để xác minh mã thông báo nhận dạng. Bạn cũng có thể xác minh mã thông báo nhận dạng bằng cách lập trình bằng 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. Hãy xem phần Xác minh mã thông báo giấy tờ tuỳ thân để biết thêm thông tin chi tiết và mã mẫu về quy trình xác minh mã thông báo giấy tờ tuỳ thân.

Xác minh mã thông báo 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

Firebase Admin SDK cho phép bạn đặt các thuộc tính tuỳ chỉnh trên tài khoản người dùng. Với các thông báo xác nhận 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 truy cập này sẽ được thực thi trong 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 trên một người dùng thông qua Firebase Admin SDK, 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 nhận dạng của họ. Mã thông báo 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 tuỳ chỉnh này và tất cả quyền truy cập đã xác thực phải xác thực mã thông báo 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