Firebase Admin SDK cho phép bạn tích hợp các 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 điều 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 dành cho quản trị viên cung cấp quyền truy cập theo chương trình cho những người dùng đó. Thậm chí, bạn có thể làm những việc mà bảng điều khiển Firebase không thể, 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 một 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 từ trước hoặc bạn có thể muốn tích hợp với một nhà cung cấp dịch vụ danh tính bên thứ ba mà Firebase Authentication không hỗ trợ theo mặc định.
Để 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 tin xác nhận 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ả bằng các khai báo 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 thực hiện logic phía máy chủ một cách an toàn thay mặt cho những người dùng đã đăng nhập bằng Firebase Authentication.
Để làm việc này, bạn có thể truy xuất mã thông báo nhận dạng từ mộ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ủ 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 tin xác nhận để xác định người dùng (bao gồm cả uid
, nhà cung cấp dịch vụ danh tính mà họ đã đăng nhập, v.v.). Sau đó, máy chủ của bạn có thể dùng thông tin nhận dạng này để thực hiện các hành động thay mặt người dùng.
Firebase Admin SDK cung cấp các phương thức để hoàn thành các tác 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 tin 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 những người dùng đã đăng nhập bằng một trong các 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. Sự kết hợp giữa 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 sẽ cung cấp khả 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ó quyền kiểm soát truy cập được xác định bằng các câu lệnh xác nhận quyền sở hữu 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 cao. API quản lý người dùng của quản trị viên 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ùngTạ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 bằng cơ chế xác thực bên ngoài hoặc cơ chế xác thực cũ. Đây có thể là một tài khoản mà bạn kiểm soát, chẳng hạn như máy chủ LDAP của bạn, hoặc một nhà cung cấp OAuth bên thứ ba mà Firebase không hỗ trợ theo mặc định, 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 mọi ngôn ngữ thông qua các thư viện JWT của bên thứ ba.
Máy chủ của bạn phải 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 một ứng dụng khách. Ứng dụng này sẽ dùng mã thông báo đó để đă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 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.
Xác minh mã nhận dạng
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ủ để 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ã nhận dạng người dùng. Mã này do Firebase tạo khi người dùng đăng nhập vào một ứng dụng Firebase. Mã nhận dạng người dùng tuân thủ quy cách 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à hoạt động 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ừ các máy chủ 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 đang đă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ã 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 thông qua các thư viện JWT của bên thứ ba. Hãy xem phần Xác minh mã thông báo nhận dạng để biết thêm thông tin chi tiết và các mẫu mã về quy trình xác minh mã thông báo nhận dạng.
Xác minh mã thông báo nhận dạng
Thông tin 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 cho tài khoản người dùng. Với các 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 truy cập này sẽ được thực thi trong các quy tắc bảo mật của ứng dụng.
Sau khi các 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 xác nhận quyền sở hữu này sẽ được truyền đến những người dùng đã xác thực ở phía máy khách thông qua mã nhận dạng của họ. Mã nhận dạng là một cơ chế đáng tin cậy để phân phối các xác nhận quyền sở hữu tuỳ chỉnh này và mọi quyền truy cập đã xác thực đều phải xác thực mã nhận dạng trước khi xử lý yêu cầu liên kết.
Kiểm soát quyền truy cập bằng các xác nhận quyền sở hữu tuỳ chỉnh