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

맞춤형 App Check 공급자 구현

앱 확인은 지원 기능이 내장되어 여러 공급자에 대한 : DeviceCheck 및 안드로이드 iOS에서 앱 증명, 인 SafetyNET, 또는 웹 응용 프로그램에서 reCAPTCHA를 v3의 ( 개요 ). 이들은 대부분의 개발자의 요구 사항을 충족해야 하는 잘 알려진 공급자입니다. 그러나 사용자 지정 App Check 공급자를 구현할 수도 있습니다. 다음과 같은 경우 사용자 지정 공급자를 사용해야 합니다.

  • iOS의 DeviceCheck 또는 App Attest, Android의 SafetyNet 또는 웹 앱의 reCAPTCHA 이외의 공급자를 사용하려고 합니다.

  • iOS, Android 및 웹 이외의 플랫폼을 사용하여 장치를 확인하려고 합니다. 예를 들어 데스크톱 OS 또는 사물 인터넷 장치에 대한 앱 검사 공급자를 만들 수 있습니다.

  • 모든 플랫폼에서 고유한 검증 기술을 구현하려고 합니다.

개요

사용자 지정 앱 확인 제공자를 구현하려면, 당신은 Node.js를 실행할 수있는 보안 백엔드 환경이 필요 중포 기지 관리 SDK를 . 이는 클라우드 기능과 같은 컨테이너 플랫폼이 될 수있는 클라우드 실행 , 또는 자신의 서버.

이 환경에서 앱 클라이언트로부터 진위 증명을 수신하고 진위 증명이 진위 평가를 통과하면 App Check 토큰을 반환하는 네트워크 액세스 가능 서비스를 제공합니다. 진품의 증거로 사용하는 특정 지표는 사용 중인 타사 공급자 또는 사용자 정의 논리를 구현하는 경우 자체 발명의 지표에 따라 다릅니다.

일반적으로 이 서비스를 REST 또는 gRPC 끝점으로 노출하지만 이 세부 정보는 사용자에게 달려 있습니다.

토큰 획득 엔드포인트 생성

  1. 설치 및 관리 SDK를 초기화 .

  2. 클라이언트에서 인증 데이터를 수신할 수 있는 네트워크 액세스 가능한 끝점을 만듭니다. 예를 들어 Cloud Functions 사용:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  3. 진위 데이터를 평가하는 끝점 논리에 추가합니다. 이것은 직접 작성해야 하는 사용자 지정 App Check 공급자의 핵심 논리입니다.

  4. 클라이언트가 인증된 것으로 판단되면 Admin SDK를 사용하여 App Check 토큰을 생성하고 클라이언트에 토큰과 만료 시간을 반환합니다.

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    클라이언트의 신뢰성을 확인할 수 없는 경우 오류를 반환합니다(예: HTTP 403 오류 반환).

  5. 옵션 : 설정이 time-to-live 값 전달하여 사용자 지정 공급자가 발행 한 앱 확인 토큰 (TTL) AppCheckTokenOptions 반대 createToken() . TTL을 30분에서 7일 사이의 값으로 설정할 수 있습니다. 이 값을 설정할 때 다음 절충 사항에 유의하십시오.

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

    1시간의 기본 TTL은 대부분의 앱에 적합합니다.

다음 단계

이제 사용자 지정 공급자의 서버 측 로직을 구현 한 것으로, 당신에서 그것을 사용하는 방법을 배울 아이폰 OS , 안드로이드 클라이언트.