Trang này hướng dẫn cách bật App Check trong một ứng dụng iOS. Khi bật App Check, bạn sẽ giúp đảm bảo rằng chỉ ứng dụng của bạn mới có thể truy cập vào các điểm cuối OAuth 2.0 của Google thay cho dự án của bạn. Xem phần Tổng quan về tính năng này.
Tính năng Kiểm tra ứng dụng sử dụng Chứng thực ứng dụng để giúp xác minh rằng các yêu cầu OAuth 2.0 đến từ ứng dụng chính thức của bạn. Tính năng Kiểm tra ứng dụng không sử dụng Chứng thực ứng dụng để phân tích nguy cơ gian lận.
Trước khi bắt đầu
Đảm bảo bạn có Xcode 12.5 trở lên.
Tích hợp tính năng Đăng nhập bằng Google vào ứng dụng iOS của bạn bằng Thư viện Đăng nhập bằng Google.
1. Thiết lập dự án
Bạn có thể bật App Check trong Google API Console hoặc trong Bảng điều khiển của Firebase. Bạn không cần bật tính năng này ở cả hai nơi, chỉ cần bật ở một nơi là đủ.
Google API Console
Bạn phải đáp ứng các yêu cầu sau để bật thành công tính năng Kiểm tra ứng dụng cho ứng dụng iOS của mình:- Bạn phải chỉ định mã nhóm cho ứng dụng iOS.
- Bạn không được sử dụng ký tự đại diện trong mã gói vì ký tự này có thể phân giải thành nhiều ứng dụng. Điều này có nghĩa là mã gói không được chứa biểu tượng dấu hoa thị (*).
Sau khi bật App Check, bạn sẽ bắt đầu thấy các chỉ số liên quan đến yêu cầu OAuth từ ứng dụng của mình trong chế độ chỉnh sửa của ứng dụng OAuth. Các yêu cầu từ những nguồn chưa xác minh sẽ không bị chặn cho đến khi bạn thực thi App Check. Thông tin trên trang giám sát chỉ số có thể giúp bạn xác định thời điểm bắt đầu thực thi.
Bạn có thể gặp lỗi liên quan đến tính năng App Check khi bật App Check cho ứng dụng iOS. Để khắc phục những lỗi này, hãy thử làm như sau:
- Xác minh rằng mã nhận dạng gói và mã nhận dạng nhóm mà bạn chỉ định là hợp lệ.
- Kiểm tra để đảm bảo bạn không sử dụng ký tự đại diện cho mã nhận dạng gói.
Bảng điều khiển của Firebase
Bạn phải có một dự án Firebase để sử dụng App Check với tính năng Đăng nhập bằng Google.
Nếu ứng dụng của bạn đã sử dụng Firebase, hãy sử dụng cùng một dự án.
Nếu ứng dụng của bạn sử dụng tính năng Đăng nhập bằng Google nhưng không sử dụng Firebase, thì bạn đã có một dự án Google Cloud. Thêm Firebase vào dự án Google Cloud bằng cách chọn dự án đó khi bạn tạo một dự án mới trong bảng điều khiển của Firebase
Nếu chưa thực hiện, hãy thêm ứng dụng iOS vào dự án Firebase bằng trang Cài đặt dự án của bảng điều khiển Firebase.
Đăng ký ứng dụng của bạn để sử dụng tính năng Kiểm tra ứng dụng với nhà cung cấp Chứng thực ứng dụng trong mục Kiểm tra ứng dụng của bảng điều khiển Firebase.
Đảm bảo tất cả ứng dụng OAuth của dự án đều được liên kết với một ứng dụng.
Nếu có các ứng dụng khách chưa liên kết, bạn sẽ thấy một thông báo trong phần Google Identity for iOS (Danh tính Google cho iOS) của trang App Check (Kiểm tra ứng dụng) cho biết "Bạn có n ứng dụng khách OAuth chưa liên kết cần được thiết lập thêm".
Ngoài ra, nếu đã xoá một số ứng dụng OAuth sau khi thiết lập chúng trong App Check, bạn sẽ thấy thông báo "Bạn có n chế độ ghi đè không có ứng dụng OAuth nào khớp". Bạn có thể yên tâm dọn dẹp bằng cách xoá những chế độ ghi đè đó.
Bạn có thể liên kết các ứng dụng OAuth chưa liên kết với một ứng dụng hiện có hoặc ứng dụng mới trên trang Ứng dụng OAuth của bảng điều khiển Firebase.
2. Thêm thư viện Đăng nhập bằng Google vào ứng dụng của bạn
Trong dự án Xcode, hãy đặt phần phụ thuộc Đăng nhập bằng Google thành phiên bản
8.0.0
trở lên :Nhà quản lý đối tác chiến lược (SPM)
Đặt quy tắc phụ thuộc của
googlesignin-ios
thành phiên bản8.0.0
trở lên.CocoaPods
Cập nhật
Podfile
:source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/firebase/SpecsDev.git' target 'YourAppName' do use_frameworks! pod 'GoogleSignIn','~> 8.0' :git => 'https://github.com/google/GoogleSignIn-iOS.git' pod 'GoogleSignInSwiftSupport' # If you use SwiftUI. end
Sau đó, chạy
pod install
và mở tệp.xcworkspace
đã tạo.Trong Xcode, hãy thêm chức năng App Attest vào ứng dụng của bạn.
Trong tệp
.entitlements
của dự án, hãy đặt môi trường Chứng thực ứng dụng thànhproduction
.
3. Khởi chạy tính năng Kiểm tra ứng dụng
Trong phương thức didFinishLaunchingWithOptions
của uỷ quyền ứng dụng, hãy gọi GIDSignIn.sharedInstance.configure(completion:)
. Bạn nên gọi phương thức này càng sớm càng tốt trong vòng đời của ứng dụng để giảm thiểu độ trễ mà người dùng cảm nhận được.
import SwiftUI
import GoogleSignIn
class AppDelegate: NSObject, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
#if targetEnvironment(simulator)
// Configure for debugging.
// See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
#else
GIDSignIn.sharedInstance.configure { error in
if let error {
print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
}
}
#endif
return true
}
}
@main
struct YourAppNameApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
// ...
}
Các bước tiếp theo
Sau khi cài đặt thư viện Kiểm tra ứng dụng trong ứng dụng, hãy bắt đầu phân phối ứng dụng đã cập nhật cho người dùng.
Ứng dụng khách đã cập nhật sẽ bắt đầu gửi mã thông báo App Check cùng với mọi yêu cầu mà ứng dụng đó gửi đến các điểm cuối xác thực của Google, nhưng các điểm cuối sẽ không yêu cầu mã thông báo phải hợp lệ cho đến khi bạn bật chế độ thực thi trong phần App Check của bảng điều khiển Firebase.
Chỉ số về màn hình
Tuy nhiên, trước khi bật chế độ thực thi, bạn nên đảm bảo rằng việc này sẽ không làm gián đoạn người dùng hợp pháp hiện tại. Mặt khác, nếu thấy có dấu hiệu sử dụng tài nguyên ứng dụng của bạn một cách đáng ngờ, thì bạn nên bật tính năng thực thi sớm hơn.
Để đưa ra quyết định này, bạn có thể xem các chỉ số App Check cho tính năng Đăng nhập bằng Google.
Bật tính năng thực thi App Check
Khi hiểu rõ cách App Check sẽ ảnh hưởng đến người dùng và bạn đã sẵn sàng tiếp tục, bạn có thể bật chế độ thực thi App Check.
Sử dụng App Check trong môi trường gỡ lỗi
Nếu muốn chạy ứng dụng trong một môi trường mà App Check thường không phân loại là hợp lệ (chẳng hạn như trình mô phỏng trong quá trình phát triển hoặc từ môi trường tích hợp liên tục (CI)) sau khi đăng ký ứng dụng cho App Check, bạn có thể tạo bản gỡ lỗi của ứng dụng sử dụng trình cung cấp gỡ lỗi App Check thay vì App Attest.
Hãy xem phần Sử dụng App Check với trình cung cấp gỡ lỗi.