Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

iOS에서 앱 증명으로 앱 확인 활성화

이 페이지에서는 기본 제공 앱 증명 공급자를 사용하여 iOS 앱에서 앱 확인을 활성화하는 방법을 보여줍니다. 앱 확인을 활성화하면 앱만 프로젝트의 Firebase 리소스에 액세스할 수 있도록 할 수 있습니다. 참조 개요 이 기능을.

앱 확인 사용하는 앱 증명은 중포 기지 서비스에 대한 요청이 본격적인 응용 프로그램에서 오는 있는지 확인합니다. 앱 확인은 현재하는 앱 증명을 사용하지 않는 사기 위험을 분석 .

당신이 당신의 자신의 사용자 지정 공급자와 앱 확인을 사용하려면, 참조 사용자 정의 응용 프로그램 확인 제공자를 구현합니다 .

1. Firebase 프로젝트 설정

  1. 당신의 아이폰 OS 프로젝트에 중포 기지를 추가 아직 수행하지 않은 경우.

  2. 에서 앱을 증명 공급자와 앱 확인을 사용하도록 응용 프로그램을 등록 프로젝트 설정> 앱 확인 중포 기지 콘솔의 섹션을 참조하십시오.

    Firebase 제품에 대한 시행을 활성화하면 등록된 앱만 제품의 백엔드 리소스에 액세스할 수 있으므로 일반적으로 프로젝트의 모든 앱을 등록해야 합니다.

  3. 옵션 : 응용 프로그램 확인은 공급자가 발행 한 토큰을위한 응용 프로그램 등록 설정에서 사용자 정의 시간 - 투 - 라이브 (TTL)을 설정합니다. TTL을 30분에서 7일 사이의 값으로 설정할 수 있습니다. 이 값을 변경할 때 다음과 같은 장단점에 유의하십시오.

    • 보안: TTL이 짧을수록 유출되거나 가로채어진 토큰이 공격자가 남용할 수 있는 창을 줄이므로 더 강력한 보안을 제공합니다.
    • 성능: TTL이 짧을수록 앱이 더 자주 증명을 수행합니다. 앱 증명 프로세스는 수행될 때마다 네트워크 요청에 대기 시간을 추가하므로 짧은 TTL이 앱 성능에 영향을 줄 수 있습니다.
    • 할당량: 더 짧은 TTL과 빈번한 재인증은 할당량을 더 빨리 고갈시킵니다. 참조 할당량 및 제한 .

    1 시간의 기본 TTL은 대부분의 응용 프로그램에 대한 합리적이다.

2. 앱에 App Check 라이브러리 추가

  1. 프로젝트의에 앱 확인에 대한 종속성을 추가 Podfile :

    pod 'Firebase/AppCheck'

    또는, 양자 택일로, 당신은 사용할 수 있습니다 스위프트 패키지 관리자를 대신.

    사용 중인 다른 Firebase SDK의 최신 버전도 사용하고 있는지 확인하세요.

  2. 실행 pod install 와 생성 된 열 .xcworkspace 파일을.

  3. 엑스 코드에서 앱에 앱 증명 기능을 추가 할 수 있습니다.

  4. 프로젝트의에서 .entitlements 파일, 앱 증명 환경 설정 production .

3. 앱 체크 초기화

다른 Firebase SDK를 사용하기 전에 App Check를 초기화해야 합니다.

첫째,의 구현 쓰기 AppCheckProviderFactory . 구현의 세부 사항은 사용 사례에 따라 다릅니다.

예를 들어, 당신은 단지 아이폰 OS (14)에 사용자가있는 경우 나중에, 당신은 단순히 항상 만들 수 있습니다 AppAttestProvider 객체 :

빠른

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

오브젝티브-C

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

또는, 당신은 만들 수 있습니다 AppAttestProvider 나중에 아이폰 OS 14 개체와, 그리고 다시 가을 DeviceCheckProvider 이전 버전 :

빠른

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

오브젝티브-C

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

당신이 구현 한 후 AppCheckProviderFactory 클래스를 구성 앱 확인은 그것을 사용하는 :

빠른

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

FirebaseApp.configure()

오브젝티브-C

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

[FIRApp configure];

앱 체크 라이브러리가 앱에 설치되면 업데이트된 앱을 사용자에게 배포하기 시작합니다.

업데이트된 클라이언트 앱은 Firebase에 대한 모든 요청과 함께 App Check 토큰을 보내기 시작하지만 Firebase 콘솔의 App Check 섹션에서 시행을 활성화할 때까지 Firebase 제품에서 토큰이 유효하지 않아도 됩니다. 자세한 내용은 다음 두 섹션을 참조하십시오.

5. 요청 메트릭 모니터링

업데이트된 앱이 사용자에게 제공되었으므로 사용하는 Firebase 제품에 대해 App Check를 시행할 수 있습니다. 그러나 그렇게 하기 전에 그렇게 하는 것이 기존의 합법적인 사용자를 방해하지 않는지 확인해야 합니다.

실시간 데이터베이스 및 클라우드 스토리지

Realtime Database 및 Cloud Storage에 대해 이러한 결정을 내리는 데 사용할 수 있는 중요한 도구는 App Check 요청 메트릭 화면입니다.

, 제품에 대한 앱 확인 요청 통계를 보려면 열려면 프로젝트 설정> 앱 확인 중포 기지 콘솔의 섹션을 참조하십시오. 예를 들어:

App Check 측정항목 페이지의 스크린샷

각 제품에 대한 요청 메트릭은 네 가지 범주로 나뉩니다.

  • 검증 요청은 유효한 응용 프로그램 토큰을 확인해야하는 것들이다. 앱 검사 시행을 활성화한 후에는 이 범주의 요청만 성공합니다.

  • 오래된 클라이언트 요청이 앱 확인 토큰을 누락 것들이다. 이러한 요청은 App Check가 앱에 포함되기 전에 Firebase SDK의 이전 버전에서 발생한 것일 수 있습니다.

  • 알 수없는 출처의 요청은 응용 프로그램 토큰을 확인 누락 된 사람들이며, 그들이 중포 기지 SDK에서 온처럼 보이지 않는다. 이는 도난당한 API 키로 이루어진 요청 또는 Firebase SDK 없이 이루어진 위조된 요청에서 비롯된 것일 수 있습니다.

  • 잘못된 요청 앱, 또는 에뮬레이트 된 환경에서를 가장하려고 정품이 아닌 클라이언트에서 될 수있는 잘못된 응용 프로그램 토큰 확인이 그들이다.

앱에 대한 이러한 범주의 배포는 시행을 활성화하기로 결정할 때 알려야 합니다. 다음은 몇 가지 지침입니다.

  • 최근 요청이 거의 모두 확인된 클라이언트에서 온 경우 적용을 활성화하여 백엔드 리소스 보호를 시작하는 것이 좋습니다.

  • 최근 요청의 상당 부분이 오래된 클라이언트에서 온 것이라면 사용자 방해를 방지하려면 시행을 활성화하기 전에 더 많은 사용자가 앱을 업데이트할 때까지 기다리는 것이 좋습니다. 출시된 앱에 App Check를 적용하면 App Check SDK와 통합되지 않은 이전 앱 버전이 중단됩니다.

  • 앱이 아직 실행되지 않은 경우 사용 중인 오래된 클라이언트가 없으므로 즉시 App Check 시행을 활성화해야 합니다.

클라우드 함수

Cloud Functions의 경우 함수의 로그를 검사하여 App Check 측정항목을 가져올 수 있습니다. 호출 가능한 함수를 호출할 때마다 다음 예와 같은 구조화된 로그 항목이 생성됩니다.

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

당신은에 의해 Google 클라우드 콘솔에서 이러한 통계를 분석 할 수 있습니다 생성 카운터 메트릭 로그를 기반으로 다음의 측정 값 필터 :

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

메트릭 레이블 필드 사용 jsonPayload.verifications.appCheck .

6. 시행 활성화

시행을 활성화하려면 아래의 각 제품에 대한 지침을 따르세요. 제품에 대한 시행을 활성화하면 해당 제품에 대한 확인되지 않은 모든 요청이 거부됩니다.

실시간 데이터베이스 및 클라우드 스토리지

실시간 데이터베이스 및 Cloud Storage에 대한 시행을 활성화하려면 다음 안내를 따르세요.

  1. 오픈 프로젝트 설정> 앱 확인 중포 기지 콘솔의 섹션을 참조하십시오.

  2. 시행을 활성화하려는 제품의 메트릭 보기를 확장합니다.

  3. 클릭 적용하여 선택을 확인합니다.

시행을 활성화한 후 적용되는 데 최대 10분이 소요될 수 있습니다.

클라우드 함수

보기 앱이 클라우드 기능에 대한 집행을 확인 가능 .

다음 단계

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

참조 를 사용하여 응용 프로그램은 iOS의 디버그 제공 업체에 문의하십시오 .