2022년 10월 18일에 오프라인과 온라인으로 진행될 Firebase Summit에 참여하세요. Firebase로 앱을 빠르게 개발하고 안심하고 앱을 출시하며 손쉽게 확장하는 방법을 알아보세요. 지금 등록하기

Android에서 Play Integrity로 앱 확인 사용 시작하기

이 페이지에서는 내장된 Play Integrity 공급자를 사용하여 Android 앱에서 앱 확인을 활성화하는 방법을 보여줍니다. 앱 확인을 활성화하면 앱만 프로젝트의 Firebase 리소스에 액세스할 수 있도록 할 수 있습니다. 이 기능의 개요 를 참조하십시오.

현재 내장된 Play Integrity 공급자는 Google Play에서 배포하는 Android 앱만 지원합니다. Play Integrity의 오프 플레이 기능을 사용하거나 자체 사용자 지정 공급자와 함께 App Check를 사용하려면 사용자 지정 App Check 공급자 구현 을 참조하십시오.

1. Firebase 프로젝트 설정

  1. 아직 Android 프로젝트에 Firebase를 추가 하지 않은 경우 추가합니다.

  2. Play Integrity API를 활성화합니다.

    1. Google Play Console 에서 앱을 선택하거나 아직 추가하지 않은 경우 추가합니다.

    2. 릴리스 섹션에서 설정 > 앱 무결성 을 클릭합니다.

    3. Integrity API 페이지에서 Link project 를 클릭한 다음 Google Cloud 프로젝트 목록에서 Firebase 프로젝트를 선택합니다.

      여기에서 선택하는 프로젝트는 앱을 등록하는 것과 동일한 Firebase 프로젝트여야 합니다(다음 단계 참조).

  3. Firebase 콘솔의 App Check 섹션에서 Play Integrity 제공업체에 App Check를 사용하도록 앱을 등록합니다. 앱 서명 인증서의 SHA-256 지문을 제공 해야 합니다.

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

  4. 선택 사항 : 앱 등록 설정에서 공급자가 발급한 앱 확인 토큰에 대한 사용자 지정 TTL(수명)을 설정합니다. TTL을 30분에서 7일 사이의 값으로 설정할 수 있습니다. 이 값을 변경할 때 다음과 같은 장단점에 유의하십시오.

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

    1시간 의 기본 TTL은 대부분의 앱에 적합합니다. App Check 라이브러리는 TTL 기간의 약 절반에 토큰을 새로 고칩니다.

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

모듈(앱 수준) Gradle 파일 (일반적으로 <project>/<app-module>/build.gradle )에서 App Check Android 라이브러리에 대한 종속성을 추가합니다. Firebase Android BoM 을 사용하여 라이브러리 버전 관리를 제어하는 ​​것이 좋습니다.

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.5.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.2'
}

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:30.5.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

Firebase Android BoM 을 사용하면 앱에서 항상 호환되는 Firebase Android 라이브러리 버전을 사용합니다.

(또는) BoM을 사용 하지 않고 Firebase 라이브러리 종속성을 추가합니다.

Firebase BoM을 사용하지 않기로 선택한 경우 종속성 줄에 각 Firebase 라이브러리 버전을 지정해야 합니다.

앱에서 여러 Firebase 라이브러리를 사용하는 경우 모든 버전이 호환되도록 BoM을 사용하여 라이브러리 버전을 관리하는 것이 좋습니다.

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.2'
}

3. 앱 체크 초기화

다른 Firebase SDK를 사용하기 전에 실행되도록 다음 초기화 코드를 앱에 추가합니다.

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance()
)

다음 단계

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

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

메트릭 모니터링 및 시행 활성화

그러나 시행을 활성화하기 전에 그렇게 하는 것이 기존의 합법적인 사용자를 방해하지 않는지 확인해야 합니다. 반면에 앱 리소스가 의심스럽게 사용되는 경우 더 빨리 시행을 활성화하는 것이 좋습니다.

이 결정을 내리는 데 도움이 되도록 사용하는 서비스에 대한 App Check 측정항목을 볼 수 있습니다.

앱 검사 시행 활성화

앱 확인이 사용자에게 어떤 영향을 미치는지 이해하고 계속 진행할 준비가 되면 앱 확인 시행을 활성화할 수 있습니다.

디버그 환경에서 앱 검사 사용

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

Android에서 디버그 공급자와 함께 앱 확인 사용을 참조하세요.