Identity Platform을 reCAPTCHA Enterprise API와 통합
이 문서에서는 Identity Platform을 reCAPTCHA Enterprise API와 통합하여 사용자의 보안을 강화하는 방법을 보여줍니다. 이 기능을 사용하면 스팸, 악용, 기타 허위 행위에 대한 앱의 복원력이 우수해집니다.
통합을 통해 사용자 요청을 검증하기 위해 사용자를 대신하여 reCAPTCHA Enterprise 평가가 생성됩니다. 가격 책정 관련 정보는 reCAPTCHA 가격 책정을 참고하세요.
개요
reCAPTCHA Enterprise API와 Identity Platform 통합을 설정하면 reCAPTCHA의 기본 보호 기능인 reCAPTCHA 봇 보호가 사용 설정됩니다. 봇 보호를 사용하면 Identity Platform이 사용자를 대신하여 프로젝트에서 점수 기반 reCAPTCHA 키를 프로비저닝합니다. 사용자가 다음 작업을 사용하여 앱 또는 사이트에 액세스하면 해당 프로바이더가 사용 설정된 경우 클라이언트 SDK가 reCAPTCHA를 로드합니다.
| 제공업체 | 작업 | 메서드 |
|---|---|---|
passwordProvider |
이메일 및 비밀번호 로그인 | signInWithPassword |
| 이메일 및 비밀번호 가입 | signUpPassword |
|
| 이메일 링크 로그인 | getOobCode |
|
| 비밀번호 재설정 | getOobCode |
|
phoneProvider |
전화번호 가입 또는 로그인 | sendVerificationCode |
| MFA 전화번호 등록 | mfaSmsEnrollment |
|
| MFA 전화번호 로그인 | mfaSmsSignIn |
그러면 reCAPTCHA는 Identity Platform에 구성 및 위험 허용 범위를 기준으로 요청의 위험을 평가하는 점수를 제공합니다.
자세한 내용은 reCAPTCHA 개요를 참고하세요.
시작하기 전에
reCAPTCHA로 보호하려는 인증 흐름의 유형에 따라 다음을 설정했는지 확인합니다.
- 이메일-비밀번호 인증 흐름의 경우 사용자의 이메일 로그인을 구성했는지 확인합니다.
SMS 기반 인증 흐름의 경우 다음 중 하나 이상에 온보딩되어 있는지 확인합니다.
- 사용자의 전화 로그인
- 웹, Android 또는 iOS 앱의 다단계 인증
서비스 계정 만들기
reCAPTCHA Enterprise API와 Identity Platform을 통합하려면 reCAPTCHA를 사용할 각 프로젝트에 Identity Platform 서비스 계정이 필요합니다. 이렇게 하면 Identity Platform이 reCAPTCHA 키를 자동으로 관리할 수 있습니다. 이미 서비스 계정을 만든 경우 reCAPTCHA에 대한 액세스 권한을 부여합니다.
아직 서비스 계정을 만들지 않았거나 reCAPTCHA로 보호하려는 프로젝트가 추가로 있는 경우 다음 단계를 따르세요.
Google Cloud CLI를 사용하여 서비스 계정을 만듭니다.
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_IDPROJECT_ID를 해당 프로젝트의 ID로 바꿉니다.서비스 계정에 reCAPTCHA에 대한 액세스 권한을 부여합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \ --role=roles/identitytoolkit.serviceAgent다음을 바꿉니다.
PROJECT_ID: 프로젝트 IDPROJECT_NUMBER: 프로젝트 계정 번호
reCAPTCHA 봇 보호 모드
reCAPTCHA 봇 보호에는 사용자를 보호하는 데 도움이 되는 두 가지 모드(감사 및 시행)가 있습니다. 이러한 모드는 ID 제공업체에 따라 동작이 다릅니다.
이메일-비밀번호 프로바이더
감사 및 시행 모드는 이메일-비밀번호 인증 흐름에서 다음과 같이 작동합니다.
감사 모드
이메일-비밀번호 시행을 감사 모드로 설정하면 Identity Platform이 요청을 차단하지 않고 Identity Platform API에 대한 트래픽을 평가하는 데 사용되는 reCAPTCHA 키를 프로젝트에 하나 이상 만듭니다. 감사 모드 중에 내보낸 측정항목을 사용하여 reCAPTCHA 시행을 사용 설정해야 하는지 확인하세요.
시행 모드
이메일-비밀번호 시행을 시행 모드로 설정하면 Identity Platform이 Identity Platform API에 대한 트래픽을 평가하는 데 사용되는 reCAPTCHA 키를 프로젝트에 하나 이상 만듭니다. reCAPTCHA 토큰이 포함되지 않은 API 요청은 거부됩니다. reCAPTCHA를 지원하는 모든 클라이언트를 SDK로 마이그레이션한 후에만 시행을 사용 설정하세요.
전화 제공업체
감사 및 시행 모드는 전화 인증 흐름에서 다음과 같이 작동합니다.
감사 모드
전화 인증 시행을 감사 모드로 설정하면 Identity Platform에서 앱 인증에 reCAPTCHA 봇 보호를 사용합니다. 사용자의 요청이 전화 결제 사기 평가를 통과하면 SMS 인증 코드가 전송됩니다. 사용자의 요청이 전화 결제 사기 평가에 실패하고 클라이언트 SDK를 사용하는 경우 Identity Platform은 대체 인증 방법을 트리거하여 전화 인증 흐름을 완료합니다. 허용되는 대체 방법은 앱의 플랫폼에 따라 다릅니다.
클라이언트 SDK는 다음 시나리오에서 대체 인증 방법을 트리거합니다.
- reCAPTCHA 토큰이 누락되었습니다.
- reCAPTCHA 토큰이 잘못되었거나 만료되었습니다.
- reCAPTCHA 토큰이 점수 기준점을 통과하지 못했습니다.
- reCAPTCHA가 올바르게 구성되지 않았습니다.
앱 플랫폼의 대체 인증 방법이 설정되어 있고 필요한 경우 클라이언트 SDK에 의해 트리거될 준비가 되어 있는지 확인합니다.
웹
초기 봇 보호 평가가 실패하면 감사 모드는 인증을 위해 reCAPTCHA v2를 사용합니다. 따라서 reCAPTCHA 확인자 (RecaptchaVerifier)를 설정하고 다음 전화 인증 작업에 전달해야 합니다.
verifyPhoneNumbersignInWithPhoneNumberlinkWithPhoneNumberreauthenticateWithPhoneNumber
auth/argument-error가 반환됩니다. reCAPTCHA 인증기 설정에 대한 자세한 내용은 Firebase 문서의 reCAPTCHA 인증기 설정을 참고하세요.
Android
초기 봇 보호 평가가 실패하면 감사 모드에서 Play Integrity API에 대해 앱을 확인합니다. 이 인증에 실패하면 reCAPTCHA v2가 트리거됩니다. 다음 시나리오에서 reCAPTCHA v2가 트리거될 수 있습니다.
- 최종 사용자의 기기에 Google Play 서비스가 설치되어 있지 않은 경우
- 앱이 Google Play 스토어를 통해 배포되지 않은 경우 (인증 SDK v21.2.0 이상)
- 획득한 SafetyNet 토큰이 유효하지 않은 경우 (인증 SDK 버전 v21.2.0 이전)
iOS
초기 봇 보호 평가가 실패하면 감사 모드는 확인을 위해 무음 푸시 알림을 사용합니다. 이 확인 방법은 요청 기기의 앱에 자동 푸시 알림을 사용하여 토큰을 전송하는 방식입니다. 앱이 알림을 성공적으로 수신하면 전화 인증 흐름이 진행됩니다. 앱이 푸시 알림을 수신하지 않으면 reCAPTCHA v2가 트리거됩니다. 자동 푸시 알림이 올바르게 구성되지 않으면 reCAPTCHA v2가 트리거될 수 있습니다.
iOS 앱 인증 설정에 관한 자세한 내용은 Firebase 문서의 앱 인증 사용 설정을 참고하세요.
시행 모드
전화 인증 시행을 시행 모드로 설정하면 Identity Platform에서 앱 인증에 reCAPTCHA 봇 보호를 사용합니다. 사용자의 요청이 전화 결제 사기 평가를 통과하면 SMS 인증 코드가 전송됩니다. 사용자의 요청이 전화 결제 사기 평가를 통과하지 못하면 Identity Platform에서 요청을 차단하고 인증 코드가 포함된 SMS 메시지를 전송하지 않습니다.
시행 모드에서는 대체 인증이 필요하지 않으므로 앱에 추가 인증 방법을 설정하지 않아도 됩니다. 하지만 앱의 reCAPTCHA 모드를 AUDIT 또는 OFF로 변경하는 경우 reCAPTCHA v2가 사용 설정되도록 웹 앱에 reCAPTCHA 인증 도구를 설정하는 것이 좋습니다.
reCAPTCHA Enterprise API와 Identity Platform 통합 설정
reCAPTCHA Enterprise API와 Identity Platform 통합을 설정하려면 다음 작업을 실행합니다.
- Admin SDK를 사용하여 reCAPTCHA 시행 상태를 설정하고 봇 보호를 사용 설정합니다.
- 앱의 플랫폼에 맞게 클라이언트 SDK를 구성합니다.
먼저 감사 모드에서 reCAPTCHA 시행을 사용 설정하고 프로젝트에서 내보내는 reCAPTCHA 측정항목을 모니터링하여 인증 흐름이 적절하게 보호되는지 확인하는 것이 좋습니다.
이렇게 하면 사용자의 reCAPTCHA 사용을 감사하는 동안 사용자 트래픽이 중단되지 않습니다. 인증 흐름이 보호되는지 확인한 후 봇 보호를 ENFORCE로 설정합니다.