최종 수정 날짜: 2025년 9월 10일
개요
이 문서에서는 TS.43 전화번호 인증을 통해 이동통신사를 Firebase 전화번호 인증 (FPNV)에 온보딩하는 데 필요한 모든 필수 단계를 설명합니다.
용어
관련 당사자
- CSP: Communications Service Provider(통신 서비스 제공업체)
- 예: 이동통신사
- 애그리게이터
- 앱 대상 애그리게이터: 앱이 이동통신사와 직접 상호작용하지 않고도 인증을 실행할 수 있도록 지원하는 애그리게이터
- 예: Firebase 전화번호 인증
- 메타 애그리게이터: 앱을 향하는 애그리게이터에 온보딩할 수 있도록 지원하는 애그리게이터
- 메타 애그리게이터는 이동통신사의 권한 서버를 설정하거나 앱에 연결된 애그리게이터를 사용하여 권한 서버의 세부정보를 구성할 수 있습니다.
- FPNV: Firebase 전화번호 인증
- Google TAM: 이동통신사를 FPNV에 온보딩하는 데 도움을 주는 Google 기술계정 관리자
- Android 전화 통신: 이동통신사와 애그리게이터가 TS.43 인증을 제공할 수 있는 플랫폼을 비롯하여 Android에서 전화번호 API를 제공합니다.
- GSMA: TS.43을 비롯한 사양을 정의하는 모바일 네트워크 운영자 협회
- CAMARA: GSMA와 협력하여 이동통신사 API를 정의하는 Linux 오픈소스 프로젝트
인증 약관
- PNV: 전화번호 인증
- TS.43: 모바일 클라이언트와 서버가 HTTP를 사용하여 이동통신사와 통신하는 프로토콜을 정의합니다.
- EAP-AKA: https://www.rfc-editor.org/rfc/rfc4187에 정의된 인증 방법으로, 사용자와 상호작용할 필요가 없습니다.
- ECS: 권한 구성 서버
- 애그리게이터가 이동통신사와 통신하는 진입점
- ODSA: 기기 내 서비스 활성화
- 기기에서 서비스를 활성화하기 위해 ECS에서 제공하는 다양한 작업을 나타냅니다.
- 예: AcquireTemporaryToken, GetPhoneNumber
이동통신사 권한 서버 및 PNV 엔드포인트
필요한 엔드포인트 만들기
ACTION1: 이동통신사는 다음 엔드포인트를 구현합니다. 이러한 엔드포인트는 모두 인터넷을 통해 액세스할 수 있습니다. 구현에 관한 자세한 내용은 부록 A를 참고하세요.
기술 요구사항
일반 성능: 모든 엔드포인트의 업타임은 99.99% 이상이어야 합니다.
보안: 보안상의 이유로 운송업체 엔드포인트는 다음 요구사항을 충족해야 합니다.
- EAP-AKA 인증 토큰: 1시간 이내에 만료되어야 함
- 임시 토큰: 5분 만료되는 일회용
- 옵션 1 - 바닐라 TS.43
- OAuth 토큰: 1시간 이내에 만료되어야 합니다.
- 옵션 2 - CAMARA
- CAMARA 액세스 토큰: 5분 만료의 단일 사용
API 데이터 품질: 성공적인 응답의 콘텐츠가 100% 정확해야 합니다 (예: MSISDN이 정확해야 함).
FPNV는 TS.43의 두 가지 버전을 지원합니다. 주요 차이점은 FPNV 서버가 TempToken을 이동통신사와 교환하는 방식입니다.
- 일반 TS.43: TS.43 사양에 명시된 구현을 의미합니다.
- CAMARA: CAMARA의 JWT 전달자 흐름에 따라 구현됨
옵션 1 - 일반 TS.43 구현
Android 기기의 요청
- EAP-AKA 엔드포인트: 인증 토큰 반환
- AcquireTemporaryToken 엔드포인트: 인증 토큰이 주어지면 TempToken을 반환합니다.
FPNV 서버의 요청
- OAuth 2.0 엔드포인트 - OAuth 클라이언트 ID/보안 비밀번호 흐름: OAuth 클라이언트 ID/보안 비밀번호가 주어지면 OAuth 액세스 토큰을 반환합니다.
- GetPhoneNumber 엔드포인트: OAuth 액세스 토큰과 TempToken이 주어지면 해당 전화번호를 반환합니다.
옵션 2 - CAMARA 구현
CAMARA 구현은 FPNV 서버의 요청을 처리하는 엔드포인트를 제외하고 일반 TS.43 구현과 유사합니다.
Android 기기의 요청
- EAP-AKA 엔드포인트: 인증 토큰 반환
- AcquireTemporaryToken 엔드포인트: 인증 토큰이 주어지면 TempToken을 반환합니다.
FPNV 서버의 요청
- OAuth 2.0 엔드포인트 - JWT Bearer 흐름: TempToken이 포함된 JWT가 제공되면 CAMARA 액세스 토큰을 반환합니다.
- CAMARA NumberVerification v2 엔드포인트: CAMARA 액세스 토큰이 주어지면 해당 전화번호를 반환합니다.
Android 전화 통신 및 FPNV 온보딩
이동통신사 테스트 앱
ACTION2: 이동통신사가 Google 기술계정 관리자 (TAM)에게 연락하면 TAM이 이동통신사와 FPNV 이동통신사 테스트 앱을 공유합니다. 이 이동통신사 테스트 앱은 FPNV 서버를 포함하지 않고 FPNV에서 전송할 요청을 모방합니다. 이 이동통신사 테스트 앱은 이동통신사가 엔드포인트가 올바르게 작동하는지 검증하는 데 유용합니다.
작업3: 이동통신사는 FPNV 이동통신사 테스트 앱을 사용하여 위의 엔드포인트가 엔드 투 엔드로 작동하는지 확인합니다.
필요한 프로덕션 구성 설정
Android 구성 - EAP-AKA / AcquireTempToken
ACTION4: 이동통신사가 Android 전화 통신에서 EAP-AKA/AcquireTempToken 요청에 대한 프로덕션 구성을 정의합니다.
- 구성:
- 이 이동통신사의 Android 표준 이동통신사 ID
- TS.43 use_cases 값:
use_case=GetPhoneNumber - EAP-AKA/AcquireTempToken의 프로덕션 사용 권한 서버 URL
- Firebase의 프로덕션 x509 인증서의 SAN 및 지문
- SAN:
fpnv.googleapis.com - 지문:
aad068c93399a22fc2b11ab58468e8cb72b8f9fc53700991799a8b764c589c7e
Firebase 구성 - 전화번호의 TempToken 교환
ACTION5: 이동통신사에서 OAuth 토큰을 가져오는 Firebase 사용자 인증 정보
- Vanilla TS.43
- 운송업체는 FPNV 요청에 대한 OAuth 클라이언트 ID와 보안 비밀을 만듭니다. 그런 다음 이동통신사는 이러한 사용자 인증 정보에 대한 액세스 토큰을 반환하도록 OAuth 엔드포인트를 구성합니다.
- CAMARA
- Google TAM은 운송업체의 OAuth 엔드포인트가 JWT가 Google에 의해 서명되었는지 확인할 수 있도록 Google의 공개 키를 제공합니다.
ACTION6: 이동통신사가 휴대전화의 TempToken을 교환하는 FPNV 서버의 프로덕션 구성을 정의합니다.
- 이 MNO의 Android 표준 이동통신사 ID
- Vanilla TS.43
- OAuth - 클라이언트 ID/보안 비밀번호 흐름
- OAuth 엔드포인트 URL
- OAuth 클라이언트 ID/보안 비밀번호
- OAuth 범위 (있는 경우)
- GetPhoneNumber
- GetPhoneNumber 엔드포인트 URL
- CAMARA
- OAuth - JWT Bearer 흐름
- OAuth 엔드포인트 URL
- NumberVerification API v2
- NumberVerification 엔드포인트 URL
사용자 인증 정보/구성 공유
Firebase 전화번호 확인
ACTION7: 이동통신사가 ACTION4 및 ACTION6의 프로덕션 구성을 Google 기술 계정 관리자와 공유합니다.
- [중요] OAuth 보안 비밀은 보안이 유지되는 아웃오브밴드 (이메일, 문서 등 아님) 메커니즘을 사용하여 Google과 공유해야 합니다. 이 대역 외 메커니즘은 이동통신사와 Google TAM이 합의합니다.
ACTION8: Google TAM은 이동통신사 테스트 앱을 사용하여 구성이 엔드 투 엔드로 작동하는지 확인합니다. 그런 다음 Google TAM은 Google 보안 스토리지에 OAuth 사용자 인증 정보를 저장하고 TempToken을 전화 (즉, ACTION6 구성)로 교환하도록 FPNV의 구성을 업데이트합니다.
Android 전화 통신
ACTION9: 이동통신사가 'Google Open Gateway CSP 온보딩' 문서 (Google TAM이 이동통신사와 공유)를 따릅니다. 이동통신사 또는 Google TAM이 Android 전화 통신의 구성에 온보딩하기 위해 Buganizer 티켓을 제출합니다(https://issuetracker.google.com/issues/new?component=1861595&template=2168610). 이 버그는 ACTION4에서 프로덕션 구성을 가져옵니다.
메타 애그리게이터가 운송업체를 대신하여 FPNV 통합을 설정하는 경우 운송업체 경영진 (이사급 이상)의 동의 진술 (이메일, PDF, 서신 등)을 통해 해당 운영자와의 비즈니스 관계를 확인해야 합니다. 그런 다음 메타 애그리게이터는 이동통신사를 대신하여 이동통신사의 구성을 Android 전화 통신에 제공할 수 있습니다.
부록 A 자세한 구현
대소문자 구분
- HTTP 헤더는 대소문자를 구분하지 않습니다.
- 하지만 XML 및 JSON 형식은 대소문자를 구분합니다. 따라서 요청/응답 필드의 경우 필드가 이 문서와 정확히 일치해야 합니다.
1단계 - EAP-AKA / AcquireTempToken
엔드포인트: EAP-AKA와 AcquireTempToken은 동일한 ECS 엔드포인트를 사용해야 합니다.
EAP-AKA 챌린지
참조: TS.43 v12.0 - 섹션 2.8.1 - '사용 권한 구성 서버에 의한 삽입된 EAP-AKA 인증'
EAP-AKA 1단계 - 인증 챌린지
EAP-AKA #1 - ECS에 대한 GET 요청
Android 전화 통신 모듈은 이동통신사의 사용 권한 서버에 TS.43 EAP-AKA 요청을 전송합니다.
Android의 요청 헤더
Accept:application/vnd.gsma.eap-relay.v1.0+jsonapplication/json뿐만 아니라 GSMA에 특화된 JSON 형식입니다.
Android 요청 필드
eap_id: RCC.14 부록 C를 참고하세요.- 예:
0<IMSI>@<realm>.mnc<MNC>.mcc<MCC>.3gppnetwork.org
- 예:
GID1: 권한 버전이 12.0인 경우에만 지정됩니다.app_name: 인코딩된 AppName에는 전화 인증을 실행하는 사용 사례의 MD5 해시 값이 있습니다.- 모든 앱 대상 애그리게이터 요청의 앱 이름은
Google-OGI입니다.
- 모든 앱 대상 애그리게이터 요청의 앱 이름은
app: 앱 IDap2014은 전화번호 정보를 나타냅니다.terminal_vendor/model/sw_version: 임의의 값으로 설정됩니다. Android에서는 이러한 필드에 실제 기기 정보가 포함된다고 보장하지 않습니다.vers: 구성 버전(예: 0 또는 1)entitlement_version: Google은 이동통신사에서 요청한 내용을 기반으로 이동통신사에 전송되는 권한 버전을 구성합니다.- 일반적으로
entitlement_version은 10.0 또는 12.0입니다.
- 일반적으로
EAP-AKA #1 - ECS의 응답
ECS 응답 헤더
Content-Type: Android에서는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
application/vnd.gsma.eap-relay.v1.0+json
- 예:
ECS 응답 필드
eap-relay-packet: RCC.14 - 섹션 C.2를 따르는 EAP 패키지를 포함합니다.
EAP-AKA 2단계 - 인증 토큰 가져오기
EAP-AKA #2 - ECS에 대한 POST 요청
그러면 Android 전화 통신 모듈이 수신된 eap-relay-packet를 동일한 엔드포인트로 다시 전송합니다.
Android의 요청 헤더
Accept: Android는 다음 두 개의 Accept 헤더를 설정합니다.application/vnd.gsma.eap-relay.v1.0+json: 기기에서 EAP-AKA 요청을 다시 전송해야 하는 경우 다시 JSON을 반환하는 이동통신사를 나타냅니다.text/vnd.wap.connectivity-xml: 이동통신사가 EAP-AKA 인증 토큰을 반환할 것으로 Android에서 예상하는 실제 형식을 나타냅니다.
Content-Type:application/vnd.gsma.eap-relay.v1.0+json
Android 요청 필드
eap-relay-packet: 이전 EAP-AKA 응답의 eap-relay-packet을 포함하지만 RFC 4817 - 섹션 9.2를 따르는 EAP-Response/AKA-Challenge 형식입니다.
EAP-AKA #2 - ECS의 응답
EAP-AKA 인증에 성공하면 이동통신사에서 인증 토큰을 다시 반환합니다.
ECS 응답 헤더
Content-Type: Android에서는 요청의 Accept 헤더와 일치하는 응답이- 즉, Android는 인증 토큰이 포함된 응답의 유형이
text/vnd.wap.connectivity-xml일 것으로 예상합니다. - 다른 Accept 헤더인
application/vnd.gsma.eap-relay.v1.0+json는 이동통신사가 Android에서 다른 EAP-AKA 요청을 실행하기를 원하는 경우입니다.
- 즉, Android는 인증 토큰이 포함된 응답의 유형이
ECS 응답 필드
TOKEN.token: 인증 토큰을 포함합니다.TOKEN.validity: 기기가 응답- 을 수신한 후 응답이 유효한 시간(초)입니다.
- Google은 인증 토큰이 기술 요구사항을 충족하는지 확인합니다.
AcquireTemporary Token
AcquireTempToken - ECS에 대한 GET 요청
Android 클라이언트는 EAP-AKA에서 수신한 인증 토큰을 사용하여 이동통신사의 AcquireTemporaryToken 엔드포인트를 호출하여 임시 토큰을 가져옵니다. 요청
- 예: TS.43 v12.0 - 섹션 6.4.6 - 'AcquireTemporaryToken 요청 예'
- AcquireTempToken은 다음을 제외하고 EAP-AKA #1과 유사한 매개변수를 사용합니다.
- AcquireTempToken은
IMSI, operation및operation_targets도 지정합니다. - AcquireTempToken이
EAP_ID를 지정하지 않음
- AcquireTempToken은
Android의 요청 헤더
Accept: Android에서text/vnd.wap.connectivity-xml를 설정합니다.
Android 요청 필드
terminal_vendor/model/sw_version: Android에서는 이러한 필드에 실제 기기 정보가 포함된다고 보장하지 않습니다.operation_targets- FPNV: 작업 타겟이
GetPhoneNumber입니다.
- FPNV: 작업 타겟이
AcquireTempToken - ECS의 응답
예: TS.43 v12.0 - 섹션 6.6.6 - 'AcquireTemporaryToken 응답 예'
ECS 응답 헤더
Content-Type: Android에서는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
text/vnd.wap.connectivity-xml
- 예:
ECS 응답 필드
APPLICATION.TemporaryToken: FPNV 서버가 전화번호로 교환할 수 있는 TemporaryTokenAPPLICATION.TemporaryTokenExpiry: YYYY-MM-DDThh:mm:ssTZD 형식의 만료 시간- Google은 TempToken의 만료가 기술 요구사항을 충족하는지 확인합니다.
APPLICATION.OperationResult: TS.43 v12.0 - 섹션 6.5.1을 참고하세요.- 특히
SUCCESS로 작동하는 경우 1을 반환합니다.
- 특히
2단계 - 전화번호의 TempToken 교환
옵션 1 - 일반 TS.43
엔드포인트: OAuth 및 GetPhoneNumber 엔드포인트는 서로 다른 서버/엔드포인트일 수 있습니다. 이러한 엔드포인트는 EAP-AKA/AcquireTempToken 엔드포인트와도 다를 수 있습니다.
OAuth
운송업체는 이 OAuth 가이드를 따르고 Google에 필요한 OAuth 정보 (클라이언트 ID, 클라이언트 보안 비밀, OAuth 서버 URL)를 제공해야 합니다.
OAuth - 이동통신사 인증 서버에 대한 POST 요청
FPNV 요청 헤더
Authorization: FPNV는Basic $BASE64_ENCODED_CREDENTIALS를 설정합니다.- base64로 인코딩된 사용자 인증 정보는 OAuth
$CLIENT_ID:$CLIENT_SECRET의 base64 인코딩입니다.
- base64로 인코딩된 사용자 인증 정보는 OAuth
Content-Type: FPNV가application/x-www-form-urlencoded를 설정합니다.Accept: FPNV가application/json를 설정합니다.
FPNV 요청 필드
grant_type:client_credentials
POST HTTP/1.1
Host: $OAUTH_ENDPOINT
Authorization: Basic $BASE64_ENCODED_CREDENTIALS
Content-Type: application/x-www-form-urlencoded
Accept: application/json
grant_type=client_credentials
OAuth - 이동통신사 인증 서버의 응답
운송업체의 응답 헤더
Content-Type: FPNV는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
application/json
- 예:
운송업체 응답 필드
access_token: OAuth 액세스 토큰token_type:bearerexpires_in: OAuth 액세스 토큰의 만료 시간(초)입니다.- Google에서는 OAuth 토큰의 만료 시간이 기술 요구사항을 충족하는지 확인합니다.
200 OK
Content-Type: application/json
{
"access_token": $ACCESS_TOKEN,
"token_type": "bearer",
"expires_in": $EXPIRATION_IN_SECS,
}
GetPhoneNumber
GetPhoneNumber - ECS에 대한 POST 요청
Google 인증 서버는 GetPhoneNumber 작업을 사용하여 전화번호를 가져옵니다.
- 예: TS.43 v12.0 - 섹션 6.4.7 - 'GetPhoneNumber Request Example'
FPNV 요청 헤더
Accept:application/jsonContent-Type:application/json
FPNV 요청 필드
requestor_id: GetPhoneNumber TS.43 작업을 호출하는 서비스를 식별합니다.- Firebase 전화번호 인증 UUID:
191fd7cc-f7cd-4bb4-a5d2-455ae1fb9a19
- Firebase 전화번호 인증 UUID:
temporary_token: AcquireTempToken의 TemporaryTokenaccess_token: Google이 이동통신사로 인증하는 데 사용하는 OAuth 토큰terminal_vendor/model/sw_version: FPNV가 임의의 값으로 이 필드를 채웁니다.entitlement_version: Google은 이동통신사에서 요청한 내용을 기반으로 이동통신사에 전송되는 권한 버전을 구성합니다.- 일반적으로
entitlement_version은 10.0 또는 12.0입니다.
- 일반적으로
app: FPNV가ap2014를 설정합니다.app_name: FPNV는 모든 FPNV 요청에firebase을 설정합니다.- 참고: AcquireTempToken의
app_name는 사용된 집계기와 관계없이Google-OGI입니다.
- 참고: AcquireTempToken의
operation: FPNV가GetPhoneNumber를 설정합니다.
GetPhoneNumber - ECS의 응답
예: TS.43 v12.0 - 섹션 6.6.7 - 'GetPhoneNumber Response Example'
운송업체의 응답 헤더
Content-Type: FPNV는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
application/json
- 예:
운송업체 응답 필드
ap2014.MSISDN: FPNV는 전화번호가 E164 형식으로 반환될 것으로 예상합니다.- JSON은 대소문자를 구분하므로 MSISDN은 대문자여야 합니다.
TemporaryToken 오류 코드
TS.43 v12.0, 섹션 2.8.6의 참조
다음 표에서는 ECS가 GetPhoneNumber 요청에 대해 Google 인증 서버에 반환할 것으로 예상되는 실패 응답을 자세히 설명합니다.
시나리오 |
ECS에서 GET/POST 응답 코드 |
서드 파티 서버 작업 |
요청의 매개변수가 잘못되었거나 누락되었거나 형식이 잘못됨 |
400 잘못된 요청 |
다음 사용자 호출 시 또는 클라이언트 다시 시작 후 다시 시도 |
요청의 임시 토큰이 잘못되었거나 만료됨 |
401 승인되지 않음 |
가능한 경우 기기가 ECS에서 유효한 (새) 임시 토큰을 획득하도록 트리거 |
임시 토큰과 함께 사용된 작업이 잘못됨 |
403 금지됨 |
다음 사용자 호출 시 또는 클라이언트 다시 시작 후 다시 시도 |
요청한 리소스를 찾을 수 없음 |
404 찾을 수 없음 |
다음 사용자 호출 시 또는 클라이언트 다시 시작 후 다시 시도 |
요청을 처리하는 중에 ECS에서 내부 오류가 발생함 |
500 내부 서버 오류 |
다음 사용자 호출 시 또는 클라이언트 다시 시작 후 다시 시도 |
옵션 2 - CAMARA
엔드포인트: CAMARA 액세스 토큰 가져오기와 전화번호 가져오기는 서로 다른 서버/엔드포인트일 수 있습니다. 이러한 엔드포인트는 EAP-AKA / AcquireTempToken 엔드포인트와도 다를 수 있습니다.
OAuth - CAMARA 액세스 토큰 가져오기
Google은 CAMARA의 JWT 전달자 흐름만 지원하고 CIBA 흐름은 지원하지 않습니다.
CAMARA 액세스 토큰 - 이동통신사에 대한 POST 요청
Google은 다음 필드를 사용하여 JWT를 만듭니다.
iss: JWT 발급자 (클라이언트 ID라고도 함)- 예:
firebase(실제 FPNV 통합) 또는fpnv-carrier-tester-app(이동통신사 테스트 앱)
- 예:
sub: JWT의 주체- 예:
operatortoken:$TEMP_TOKEN
- 예:
aud: 대상, JWT가 대상인 수신자- 토큰 엔드포인트 URL (즉, 승인 서버의 URL)
exp: 만료 시간(초)- Google은 CAMARA 액세스 토큰이 유효해야 하는 기간과 일치하는 만료 기간을 전송합니다 (기술 요구사항 참고).
iat: 발급 시간(초)jti: 재전송 공격을 방지하는 고유 식별자- 예: 무작위로 생성된 UUID
scope: 요청의 목적- 예:
dpv:FraudPreventionAndDetection number-verification:device-phone-number:read
- 예:
{
"iss": "firebase",
"sub": "operatortoken:ey...",
"aud": $OAUTH_ENDPOINT,
"exp": $EXPIRATION_TIME_IN_SECS,
"iat": $ISSUED_AT_TIME_IN_SECS,
"jti": $RANDOMLY_GENERATED_UUID,
"scope": "dpv:FraudPreventionAndDetection number-verification:device-phone-number:read"
}
FPNV는 자체 비공개 키를 사용하여 JWT에 서명하고 이동통신사는 해당 공개 키를 사용하여 JWT를 검증할 수 있습니다. FPNV는 JWKS 엔드포인트를 사용하여 공개 키를 제공합니다. FPNV는 정기적인 간격 (예: 30일마다 한 번)으로 공개 키를 순환하므로 운송업체는 이 JWKS 엔드포인트를 정기적으로 폴링하여 (예: 하루에 한 번) 공개 키를 확인해야 합니다.
FPNV 요청 헤더
Content-Type:application/x-www-form-urlencodedAccept:application/json
FPNV 요청 필드
grant_type:urn:ietf:params:oauth:grant-type:jwt-bearerassertion: 위에서 생성되고 FPNV의 비공개 키로 서명된 JWT입니다.- 특히 이 JWT에는 TempToken이 포함되어 있습니다.
POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded
Accept: application/json
grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&assertion=$JWT
CAMARA 액세스 토큰 - 이동통신사의 응답
운송업체의 응답 헤더
Content-Type: FPNV는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
application/json
- 예:
운송업체 응답 필드
access_token: CAMARA 액세스 토큰으로, 나중에 전화번호로 교환할 수 있습니다.token_type:bearerexpires_in: OAuth 액세스 토큰의 만료 시간(초)입니다.- Google에서는 OAuth 토큰의 만료 시간이 기술 요구사항을 충족하는지 확인합니다.
scope: 요청의 목적- 예:
dpv:FraudPreventionAndDetection number-verification:device-phone-number:read
- 예:
200 OK
Content-Type: application/json
{
"access_token": $CAMARA_ACCESS_TOKEN,
"token_type": "bearer",
"expires_in": $EXPIRATION_IN_SECS,
"scope": "dpv:FraudPreventionAndDetection number-verification:device-phone-number:read"
}
CAMARA NumberVerification API v2
그러면 Google에서 이동통신사의 /device-phone-number 엔드포인트에 GET 요청을 전송하여 해당 CAMARA 액세스 토큰을 교환합니다.
CAMARA NumberVerification - 이동통신사에 대한 GET 요청
FPNV 요청 헤더
Authorization:Bearer $CAMARA_ACCESS_TOKENAccept:application/json
GET /device-phone-number
Authorization: Bearer $CAMARA_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json
CAMARA NumberVerification - 이동통신사의 응답
운송업체의 응답 헤더
Content-Type: FPNV는 응답 유형이 요청의 Accept 헤더와 일치해야 합니다.- 예:
application/json
- 예:
운송업체 응답 필드
devicePhoneNumber: E164 형식의 전화번호를 반환합니다.
200 OK
Content-Type: application/json
{
"devicePhoneNumber": $PHONE_NUMBER
}