Giới thiệu về API xác thực quản trị viên

SDK quản trị Firebase cho phép bạn tích hợp các máy chủ của riêng mình với Xác thực Firebase. Bạn có thể sử dụng SDK quản trị Firebase để 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 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 phải truy cập bảng điều khiển Firebase để quản lý người dùng Firebase của mình một cách thuận tiệ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 đó. Nó thậm chí còn cho phép bạn thực hiện những điều 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 tùy 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 từ trước hoặc bạn có thể muốn tích hợp với nhà cung cấp danh tính bên thứ ba mà Xác thực Firebase không hỗ trợ.

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

Xác minh danh tính

Xác thực Firebase chủ yếu được sử 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ụ để xác định những người dùng này trên máy chủ của riêng bạn. Đ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 Xác thực Firebase.

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

SDK quản trị Firebase cung cấp các phương pháp để hoàn thành 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 của mình, tạo mã thông báo tùy chỉnh và xác minh mã thông báo ID.

Tuyên bố của Người dùng Tùy chỉnh

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 những người dùng đã đăng nhập bằng một trong các nhà cung cấp xác thực Firebase được hỗ trợ 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 của người dùng tùy chỉnh và bảo mật ứng dụng quy tắc cung cấp khả năng này. Ví dụ: người dùng đã đăng nhập bằng nhà cung cấp Mật khẩu và Email Xác thực Firebase có thể có quyền kiểm soát truy cập được xác định bằng cách sử dụng các xác nhận quyền sở hữu tùy chỉnh.

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

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

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

Tạo mã thông báo tùy chỉnh

Mục đích chính để tạo mã thông báo tùy 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ơ chế xác thực kế thừa. Đây có thể là một máy chủ mà bạn kiểm soát, chẳng hạn như máy chủ LDAP của bạn hoặc nhà cung cấp OAuth bên thứ ba mà Firebase vốn dĩ không hỗ trợ, chẳng hạn như Instagram hoặc LinkedIn.

SDK quản trị Firebase có một phương pháp tích hợp để tạo mã thông báo tùy chỉnh. Bạn cũng có thể lập trình tạo mã thông báo tùy chỉ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 phải tạo mã thông báo tùy chỉnh có số 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ẽ sử dụng mã này để đăng nhập vào Firebase. Xem Tạo mã thông báo tùy chỉnh để biết các mẫu mã và biết thêm chi tiết về quy trình tạo mã thông báo tùy chỉnh.

Tạo mã thông báo tùy chỉnh

Xác minh mã thông báo ID

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

SDK quản trị Firebase có một phương pháp tích hợp để xác minh mã thông báo ID. Bạn cũng có thể xác minh theo chương trình mã thông báo ID 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. Xem Xác minh mã thông báo ID để biết thêm chi tiết và mẫu mã về quy trình xác minh mã thông báo ID.

Xác minh mã thông báo ID

Yêu cầu của người dùng tùy chỉnh

SDK quản trị 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 các xác nhận quyền sở hữu của người dùng tùy chỉnh, bạn có thể cung cấp cho người dùng các cấp độ truy cập (vai trò) khác nhau, các cấp độ này sau đó đượ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 tùy chỉnh được sửa đổi đối với người dùng thông qua SDK quản trị Firebase, chúng sẽ được truyền tới những người dùng đã xác thực ở phía khách hàng thông qua mã thông báo ID của họ. Mã thông báo ID là một cơ chế đáng tin cậy để cung cấp các xác nhận quyền sở hữu tùy chỉnh này và tất cả các quyền truy cập đã xác thực phải xác thực mã thông báo ID trước khi xử lý yêu cầu liên quan.

Kiểm soát quyền truy cập với xác nhận quyền sở hữu tùy chỉnh