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 của mình 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 thực hiện việc này:
Quản lý người dùng
Không phải lúc nào cũng thuận tiện khi phải truy cập vào Bảng điều khiển 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 những người dùng đó. Ứng dụng này thậm chí còn cho phép bạn làm những thứ mà bảng điều khiển của 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 của người dùng hoặc số điện thoại của họ.
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 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 có sẵn của Google.
Để làm việc 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ỳ ý xác định 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ụ Firebase Authentication trên một ứng dụng khách và giả định danh tính được mô tả trong thông báo xác nhận quyền sở hữu của mã thông báo. Sau đó, thông tin nhận dạng này sẽ được sử dụng khi truy cập vào Firebase khác chẳng hạn như Cloud Storage.
Xác minh danh tính
Firebase Authentication chủ yếu được dùng để nhận dạng người dùng ứng dụng của bạn để 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. Chiến dịch này cho phép bạn thực hiện logic phía máy chủ thay mặt cho người dùng đã ký một cách an toàn bằng Firebase Authentication.
Để 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
đăng nhập bằng Firebase Authentication và đưa mã thông báo này vào yêu cầu vào
máy chủ. Sau đó, máy chủ của bạn sẽ xác minh mã thông báo nhận dạng này và trích xuất các thông báo xác nhận quyền sở hữu
xác định danh tí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ới, 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 kiểm soát truy cập chi tiết cho người dùng đã đăng nhập bằng một trong Firebase được hỗ trợ nhà cung cấp dịch vụ xác thực như Email/Mật khẩu, Google, Facebook, điện thoại, v.v. A sự kết hợp giữa xác nhận quyền sở hữu tuỳ chỉnh của người dùng và quy tắc bảo mật ứng dụng cung cấp chức năng. Ví dụ: một người dùng đăng nhập bằng Email Firebase Authentication và Nhà cung cấp 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 thông báo 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ý Firebase người dùng 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 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 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 dựa vào cơ chế xác thực bên ngoài hoặc cơ chế xác thực 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 nhà cung cấp OAuth của bên thứ ba Firebase không hỗ trợ sẵn, 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ã tuỳ chỉnh. Bạn cũng có thể lập trình để tạo mã thông báo tuỳ chỉnh trong 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à
chuyển mã thông báo đó đến ứng dụng khách. Ứng dụng này sẽ dùng mã này để đăng nhập vào
Firebase. Xem
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.
Xác minh mã thông báo 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 đang đăng nhập trên máy chủ của mình có thể 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 giá trị nhận dạng, do 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ủ Quy cách của OpenID Connect và chứa dữ liệu để xác định người dùng, cũng như một số hồ sơ và thông tin liên quan đến xác thực. Bạn có thể gửi, xác minh rồi kiểm tra những mã thông báo này qua phần phụ trợ của riêng bạn. Đ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à uỷ quyền cho 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 theo phương thức lập trình trong bất kỳ 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 mã nhận dạng
Xác nhận quyền sở hữu tùy 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 xác nhận quyền sở hữu người dùng tùy chỉnh, 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 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 một người dùng thông qua Firebase Admin SDK, được truyền đến 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ã 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 và tất cả quyền truy cập đã xác thực đều 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 thông báo xác nhận quyền sở hữu tuỳ chỉnh