Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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 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 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ả định danh tính đượ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ừ ứng dụng khách đã đăng nhập bằng Xác thực Firebase và đưa mã thông báo vào yêu cầu tới máy chủ của bạn. Máy chủ của bạn sau đó xác nhận ID token và chiết xuất những tuyên bố mà xác định người sử dụng (bao gồm họ uid , nhà cung cấp danh tính họ đăng nhập, vv). 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 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 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 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

Việc sử dụng 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 nên tạo một tùy chỉnh mã thông báo với một định danh duy nhất ( uid ) và thông qua đó thẻ để một ứng dụng client, mà sẽ sử dụng nó để đăng nhập vào căn cứ hỏa lực. Xem Tạo thẻ tùy chỉnh cho mẫu mã và chi tiết hơn về quá trình tạo thẻ 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. Thẻ ID phù hợp với OpenID Connect đặc tả và chứa dữ liệu để xác định một người sử dụng, cũng như một số thông tin hồ sơ và thẩm định liên quan 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 nhận thẻ ID để biết thêm chi tiết và các mẫu mã về ID quá trình xác minh thẻ.

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 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 cho 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