Firebase Summit에서 발표된 모든 내용을 살펴보고 Firebase로 앱을 빠르게 개발하고 안심하고 앱을 실행하는 방법을 알아보세요. 자세히 알아보기

Apple 플랫폼에서 사용자 정의 공급자와 App Check 사용 시작하기,Apple 플랫폼에서 사용자 정의 공급자와 App Check 사용 시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 페이지에서는 사용자 정의 앱 체크 공급자를 사용하여 Apple 앱에서 앱 체크를 활성화하는 방법을 보여줍니다. 앱 체크를 활성화하면 내 앱만 프로젝트의 Firebase 리소스에 액세스할 수 있습니다.

기본 제공 공급자로 앱 체크를 사용하려면 App Attest앱 체크 및 DeviceCheck 로 앱 체크 문서를 참조하세요.

시작하기 전에

1. 앱에 앱 체크 라이브러리 추가

  1. 프로젝트의 Podfile 에 App Check에 대한 종속성을 추가합니다.

    pod 'FirebaseAppCheck'

    또는 대신 Swift Package Manager 를 사용할 수 있습니다.

    또한 사용 중인 Firebase 서비스 클라이언트 라이브러리의 최신 버전을 사용하고 있는지 확인하세요.

  2. pod install 을 실행하고 생성된 .xcworkspace 파일을 엽니다.

2. 앱 체크 프로토콜 구현

먼저 AppCheckProviderAppCheckProviderFactory 프로토콜을 구현하는 클래스를 만들어야 합니다.

AppCheckProvider 클래스에는 사용자 지정 앱 체크 공급자가 진위 증명으로 요구하는 모든 정보를 수집하고 앱 체크 토큰과 교환하여 토큰 획득 서비스로 보내는 getToken(completion:) 메서드가 있어야 합니다. 앱 체크 SDK는 토큰 캐싱을 처리하므로 항상 getToken(completion:) 구현에서 새 토큰을 가져옵니다.

빠른

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
    var app: FirebaseApp

    init(withFirebaseApp app: FirebaseApp) {
        self.app = app
        super.init()
    }

    func getToken(completion handler: @escaping (AppCheckToken?, Error?) -> Void) {
        DispatchQueue.main.async {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Create AppCheckToken object.
            let exp = Date(timeIntervalSince1970: expirationFromServer)
            let token = AppCheckToken(
                token: tokenFromServer,
                expirationDate: exp
            )

            // Pass the token or error to the completion handler.
            handler(token, nil)
        }
    }
}

목표-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

또한 AppCheckProvider 구현의 인스턴스를 생성하는 AppCheckProviderFactory 클래스를 구현합니다.

빠른

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

목표-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

3. 앱체크 초기화

앱 델리게이트 또는 앱 이니셜라이저에 다음 초기화 코드를 추가합니다.

빠른

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

목표-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

다음 단계

앱 체크 라이브러리가 앱에 설치되면 업데이트된 앱을 사용자에게 배포하세요.

업데이트된 클라이언트 앱은 Firebase에 대한 모든 요청과 함께 앱 체크 토큰을 전송하기 시작하지만 Firebase 제품은 Firebase 콘솔의 앱 체크 섹션에서 시행을 활성화할 때까지 토큰이 유효하지 않아도 됩니다.

메트릭 모니터링 및 적용 활성화

그러나 시행을 활성화하기 전에 그렇게 해도 기존의 적법한 사용자가 중단되지 않는지 확인해야 합니다. 반면에 앱 리소스의 의심스러운 사용이 발견되면 시행을 더 빨리 활성화할 수 있습니다.

이러한 결정을 내리는 데 도움이 되도록 사용하는 서비스에 대한 앱 체크 지표를 살펴볼 수 있습니다.

앱 체크 시행 사용

앱 체크가 사용자에게 미치는 영향을 이해하고 진행할 준비가 되면 앱 체크 적용을 활성화할 수 있습니다.

디버그 환경에서 앱 체크 사용

앱 체크에 앱을 등록한 후, 개발 중인 시뮬레이터나 지속적 통합(CI) 환경과 같이 일반적으로 앱 체크에서 유효하지 않은 것으로 분류되는 환경에서 앱을 실행하려는 경우 다음을 수행할 수 있습니다. 실제 증명 공급자 대신 앱 체크 디버그 공급자를 사용하는 앱의 디버그 빌드를 만듭니다.

Apple 플랫폼에서 디버그 제공자와 함께 App Check 사용을 참조하십시오.