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 việc này:
Quản lý người dùng
Bạn không phải lúc nào cũng tiện 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 lập trình vào những người dùng đó. Thậm chí, API này còn cho phép bạn thực hiện những việc mà bảng điều khiển Firebase không thể làm, 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ó sẵn cơ sở dữ liệu người dùng hoặc muốn tích hợp với một nhà cung cấp dịch vụ nhận dạng bên thứ ba mà Firebase Authentication không hỗ trợ gốc.
Để làm việc này, bạn có thể tạo mã thông báo tuỳ chỉnh với các yêu cầu 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ả theo các yêu cầu 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ụ khác, chẳng hạn như Cloud Storage.Firebase
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ể 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 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 một 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 yêu cầu xác nhận xác định người dùng (bao gồm cả uid, nhà cung cấp dịch vụ nhận dạng 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 cho người dùng.
The 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.
Yêu cầu xác nhận 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 nhà cung cấp dịch vụ Xác thực được Firebase hỗ trợ, chẳng hạn như Email/Mật khẩu, Google, Facebook, điện thoại, v.v. Bạn có thể kết hợp các yêu cầu xác nhận tuỳ chỉnh của người dùng và 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 dịch vụ xác thực Firebase Authentication Email và Mật khẩu có thể có quyền kiểm soát quyền truy cập được xác định bằng các yêu cầu 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 cấp cao. API quản lý người dùng dành cho 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 lập trình mà không cần thông tin đăng nhập 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 dựa trên cơ chế xác thực bên ngoài hoặc cũ. Đây có thể là cơ chế 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 sẵn để 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 lập trình bằng bất kỳ ngôn ngữ nào bằng cách sử dụng các 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à
chuyể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
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ã thông báo nhận dạng
Nếu ứng dụng khách 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 đã đă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 nhận dạng. Mã thông báo này được Firebase tạo khi người dùng đăng nhập vào một ứng dụng Firebase. Mã thông báo nhận dạng tuân thủ theo 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à 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à cấp quyền cho họ 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 sẵn để 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 theo lập trình bằng bất kỳ ngôn ngữ nào bằng cách sử dụng các thư viện JWT của bên thứ ba. Hãy xem bài viết 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
Yêu cầu xác nhận 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 yêu cầu 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 các quy tắc bảo mật của ứng dụng.
Sau khi các yêu cầu xác nhận tuỳ chỉnh được sửa đổi trên một người dùng thông qua Firebase Admin SDK, các yêu cầu xác nhận 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ã 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 yêu cầu 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 được liên kết.
Kiểm soát quyền truy cập bằng các yêu cầu xác nhận tuỳ chỉnh