Son Değiştirilme Tarihi: 10 Eylül 2025
Genel Bakış
Bu belgede, TS.43 telefon numarası doğrulamaları aracılığıyla bir operatörün Firebase Telefon Numarası Doğrulama'ya (FPNV) dahil edilmesi için gereken tüm zorunlu adımlar açıklanmaktadır.
Terminoloji
İlgili Taraflar (Parties Involved)
- CSP: İletişim Hizmeti Sağlayıcı
- ör. Mobil operatörler
- Toplayıcılar
- Uygulamaya Yönelik Toplayıcılar: Uygulamaların doğrudan operatörle etkileşime girmeden doğrulama yapmasına olanak tanıyan toplayıcı
- ör. Firebase Telefon Numarası Doğrulama
- Meta Toplayıcı: Operatörün uygulamaya yönelik bir toplayıcıya dahil olmasını destekleyen toplayıcıdır.
- Bir meta toplayıcı, operatörler için hak sunucularını ayarlamaktan ve/veya hak sunucularının ayrıntılarını uygulamaya yönelik toplayıcılarla yapılandırmaktan sorumlu olabilir.
- FPNV: Firebase Telefon Numarası Doğrulaması
- Google THY: Operatörün FPNV'ye dahil olmasına yardımcı olan Google Teknik Hesap Yöneticisi
- Android Telephony: Operatörlerin ve toplayıcıların TS.43 doğrulamaları sağlaması için bir platform da dahil olmak üzere Android'de telefon numarası API'leri sunar.
- GSMA: TS.43 dahil olmak üzere özellikleri tanımlayan mobil ağ operatörleri birliği
- CAMARA: GSMA ile işbirliği içinde operatör API'lerini tanımlayan Linux açık kaynak projesi
Doğrulama Şartları
- PNV: Telefon Numarası Doğrulama
- TS.43: Mobil istemcilerin ve sunucuların HTTP kullanarak operatörle iletişim kurması için protokolü tanımlar.
- EAP-AKA: https://www.rfc-editor.org/rfc/rfc4187 adresinde tanımlanan ve kullanıcıyla etkileşim gerektirmeyen kimlik doğrulama yöntemi
- ECS: Yetkilendirme Yapılandırma Sunucusu
- Toplayıcının kargo şirketiyle iletişim kurduğu giriş noktası
- ODSA: Cihaz Üzerinde Hizmet Etkinleştirme
- ECS'nin cihazda hizmetleri etkinleştirmek için sağladığı farklı işlemleri ifade eder.
- ör. AcquireTemporaryToken; GetPhoneNumber
Operatör Yetkilendirme Sunucusu ve PNV Uç Noktası
Gerekli uç noktaları oluşturma
İŞLEM1: Operatör, internet üzerinden erişilebilen aşağıdaki uç noktaları uygular. Uygulama hakkında daha ayrıntılı bilgi için Ek A'ya bakın.
Teknik Gereksinimler
Genel Performans: Tüm uç noktaların çalışma süresi en az %99,99 olmalıdır.
Güvenlik: Güvenlik nedeniyle, operatör uç noktaları aşağıdaki koşulları karşılamalıdır:
- EAP-AKA Auth Token: 1 saat içinde sona ermelidir.
- Geçici Jeton: Tek kullanımlık ve 5 dakika geçerlidir.
- 1. seçenek: Vanilla TS.43
- OAuth Jetonu: 1 saat içinde geçerliliğini yitirmelidir.
- 2. seçenek: CAMARA
- CAMARA erişim jetonu: 5 dakika geçerli tek kullanımlık jeton
API Veri Kalitesi: Başarılı yanıtların içeriklerinin% 100'ü (ör.MSISDN doğru olmalıdır).
FPNV, TS.43'ün iki türünü destekler. Aradaki temel fark, FPNV sunucusunun TempToken'ı operatörle nasıl değiştireceğidir.
- Vanilla TS.43: TS.43 spesifikasyonunda belirtilen uygulama şeklini ifade eder.
- CAMARA: CAMARA'nın JWT taşıyıcı akışı tarafından öngörülen uygulama anlamına gelir.
1. seçenek: Vanilla TS.43 uygulaması
Android cihazdan gelen istekler
- EAP-AKA uç noktası: Kimlik doğrulama jetonu döndürme
- AcquireTemporaryToken uç noktası: Kimlik doğrulama jetonu verildiğinde TempToken döndürür.
FPNV sunucusundan gelen istekler
- OAuth 2.0 Uç Noktası - OAuth İstemci Kimliği/Gizli Anahtar Akışı: OAuth istemci kimliği/gizli anahtarı verildiğinde OAuth erişim jetonunu döndürür.
- GetPhoneNumber uç noktası: OAuth erişim jetonu ve TempToken verildiğinde, karşılık gelen telefon numarasını döndürür.
2. seçenek: CAMARA uygulaması
CAMARA uygulaması, FPNV sunucusundan gelen istekleri işleyecek uç noktalar dışında, standart TS.43 uygulamasına benzer.
Android cihazdan gelen istekler
- EAP-AKA uç noktası: Kimlik doğrulama jetonu döndürme
- AcquireTemporaryToken Endpoint: Kimlik doğrulama jetonu verildiğinde TempToken döndürür.
FPNV sunucusundan gelen istekler
- OAuth 2.0 Uç Noktası - JWT Taşıyıcı Akışı: TempToken'ı içeren bir JWT verildiğinde CAMARA erişim jetonunu döndürür.
- CAMARA NumberVerification v2 Uç Noktası: CAMARA erişim jetonu verildiğinde, ilgili telefon numarasını döndürür.
Android Telefon ve FPNV'ye Geçiş
Operatör Test Uygulaması
2. İŞLEM: Operatör, Google Teknik Hesap Yöneticisi (THY) ile iletişime geçer ve THY, FPNV operatör test uygulamasını operatörle paylaşır. Bu operatör test uygulaması, FPNV sunucusu kullanılmadan FPNV tarafından gönderilecek istekleri taklit eder. Bu operatör test uygulaması, operatörün uç noktalarının düzgün çalıştığını doğrulaması için kullanışlıdır.
İŞLEM3: Operatör, FPNV operatör test uygulamasını kullanarak yukarıdaki uç noktaların uçtan uca çalıştığını doğrular.
Gerekli Üretim Yapılandırmalarını Ayarlama
Android Yapılandırması - EAP-AKA / AcquireTempToken
ACTION4: Operatör, Android Telefonu'ndan gelen EAP-AKA/AcquireTempToken istekleri için üretim yapılandırmasını tanımlar.
- Yapılandırma:
- Bu operatörün Android Canonical Carrier ID'si
- TS.43 use_cases değerleri:
use_case=GetPhoneNumber - EAP-AKA/AcquireTempToken için üretim yetkilendirme sunucusu URL'si
- Firebase'in üretim x509 sertifikasının SAN'ı ve dijital parmak izi
- SAN:
fpnv.googleapis.com - Parmak izi:
aad068c93399a22fc2b11ab58468e8cb72b8f9fc53700991799a8b764c589c7e
Firebase Config - Exchange TempToken for Phone
ACTION5: Bir OAuth jetonunu operatörden almak için Firebase kimlik bilgileri
- Vanilla TS.43
- Operatör, FPNV'nin istekleri için OAuth istemci kimliğini ve gizli anahtarını oluşturur. Operatör, OAuth uç noktasını bu kimlik bilgileri için erişim jetonu döndürecek şekilde yapılandırır.
- CAMARA
- Google TAM, Google'ın ortak anahtarını sağlar. Böylece operatörün OAuth uç noktası, JWT'nin Google tarafından imzalandığını doğrulayabilir.
ACTION6: Operatör, FPNV sunucusunun TempToken'ı telefonla değiştirmesi için bir üretim yapılandırması tanımlar.
- Bu mobil şebeke operatörünün Android Standart Operatör Kimliği
- Vanilla TS.43
- OAuth - İstemci Kimliği/Gizli Anahtar Akışı
- OAuth uç nokta URL'si
- OAuth istemci kimliği/sırrı
- OAuth kapsamı (varsa)
- GetPhoneNumber
- GetPhoneNumber uç nokta URL'si
- CAMARA
- OAuth - JWT Taşıyıcı Akışı
- OAuth uç nokta URL'si
- NumberVerification API v2
- NumberVerification uç nokta URL'si
Kimlik Bilgilerini/Yapılandırmaları Paylaşma
Firebase Telefon Numarası Doğrulama
ACTION7: Operatör, ACTION4 ve ACTION6'daki üretim yapılandırmasını Google Teknik Hesap Yöneticisi ile paylaşır.
- [ÖNEMLİ] OAuth sırrı, Google ile güvenli bir bant dışı (e-posta, doküman vb. yok) mekanizma kullanılarak paylaşılmalıdır. Bu bant dışı mekanizma, operatör ve Google TAM tarafından kabul edilecektir.
ACTION8: Google TAM, operatör test uygulamasını kullanarak yapılandırmanın uçtan uca çalıştığını doğrular. Ardından Google TAM, OAuth kimlik bilgilerini Google'ın güvenli depolama alanında saklar ve FPNV'nin yapılandırmalarını, TempToken'ı telefonla (ör. ACTION6 yapılandırmaları) değiştirecek şekilde günceller.
Android Telefon Hizmeti
ACTION9: Operatör, "Google Open Gateway CSP Onboarding" belgesini (Google TAM'ın operatörle paylaşacağı) takip eder. Operatör veya Google TAM'leri, Android Telephony'nin yapılandırmasına dahil olmak için Buganizer bileti gönderir: https://issuetracker.google.com/issues/new?component=1861595&template=2168610. Bu hata, ACTION4'teki üretim yapılandırmasını kullanır.
Bir meta toplayıcı, FPNV entegrasyonunu operatör adına ayarlıyorsa operatörün üst düzey yöneticilerinden (müdür ve üzeri) alınmış bir izin beyanı (e-posta, PDF, mektup vb.) operatörün söz konusu operatörle olan ticari ilişkisini onaylamalıdır. Ardından, meta toplayıcı, operatörün yapılandırmasını operatör adına Android Telephony'ye sağlayabilir.
Ek A. Ayrıntılı Uygulama
Büyük/Küçük Harf Duyarlılığı (Case Sensitivity)
- HTTP üstbilgileri büyük/küçük harfe duyarlı değildir.
- Ancak XML ve JSON biçimleri büyük/küçük harfe duyarlıdır. Bu nedenle, istek/yanıt alanlarının bu dokümanla tam olarak eşleştiğinden emin olun.
1. adım: EAP-AKA / AcquireTempToken
Uç noktalar: EAP-AKA ve AcquireTempToken aynı ECS uç noktasını kullanmalıdır.
EAP-AKA Challenge
Referanslar: TS.43 v12.0 - Bölüm 2.8.1 - "Embedded EAP-AKA Authentication by Entitlement Configuration Server".
EAP-AKA 1. Adım - Kimlik Doğrulama Meydan Okuması
EAP-AKA #1 - GET Request to ECS
Android Telephony modülü, operatörün hak sunucusuna bir TS.43 EAP-AKA isteği gönderir.
Android'in İstek Başlıkları
Accept:application/vnd.gsma.eap-relay.v1.0+json- Bu, yalnızca
application/jsondeğil, GSMA'ya özgü bir JSON biçimidir.
- Bu, yalnızca
Android'in İstek Alanları
eap_id: RCC.14 Ek C'ye bakın.- ör.
0<IMSI>@<realm>.mnc<MNC>.mcc<MCC>.3gppnetwork.org
- ör.
GID1: Yalnızca hak sürümü 12.0 ise belirtilir.app_name: Kodlanmış AppName, telefon doğrulaması gerçekleştiren kullanım alanının MD5 karma değerine sahip olur:- Uygulamaya yönelik tüm toplayıcı isteklerinin uygulama adı
Google-OGIolur.
- Uygulamaya yönelik tüm toplayıcı isteklerinin uygulama adı
app: Uygulama kimliğiap2014, Telefon Numarası Bilgilerini temsil eder.terminal_vendor/model/sw_version: Rastgele bir değere ayarlanır. Android, bu alanların cihazın gerçek bilgilerini içerdiğini garanti etmez.vers: Yapılandırma sürümü; ör. 0 veya 1entitlement_version: Google, operatörün isteğine göre operatörlere gönderilen hak sürümünü yapılandırır.- Genellikle
entitlement_version10.0 veya 12.0'dır.
- Genellikle
EAP-AKA #1 - Response from ECS
ECS Yanıt Başlıkları
Content-Type: Android, yanıt türünün isteğin Accept başlığıyla eşleşmesini bekler.- ör.
application/vnd.gsma.eap-relay.v1.0+json
- ör.
ECS Yanıt Alanları
eap-relay-packet: RCC.14 - Bölüm C.2'ye uygun EAP paketini içerir.
EAP-AKA 2. Adım - Yetkilendirme Jetonu Alma
EAP-AKA #2 - POST Request to ECS
Android Telephony modülü daha sonra alınan eap-relay-packet
aynı uç noktaya geri gönderir.
Android'in İstek Başlıkları
Accept: Android iki Accept başlığı ayarlar:application/vnd.gsma.eap-relay.v1.0+json: Cihazın tekrar başka bir EAP-AKA isteği göndermesi gerektiğinde operatörün JSON'u tekrar döndürmesini ifade eder.text/vnd.wap.connectivity-xml: Android'in, operatörün EAP-AKA kimlik doğrulama jetonunu döndürmesini beklediği gerçek biçimi ifade eder.
Content-Type:application/vnd.gsma.eap-relay.v1.0+json
Android'in İstek Alanları
eap-relay-packet: Önceki EAP-AKA yanıtının eap-relay-packet'ini içerir ancak RFC 4817 - Bölüm 9.2'ye uygun olarak EAP-Response/AKA-Challenge biçimindedir.
EAP-AKA #2 - Response from ECS
Başarılı bir EAP-AKA kimlik doğrulamasından sonra operatör, kimlik doğrulama jetonunu geri döndürür.
ECS Yanıt Başlıkları
Content-Type: Android, isteğin Accept başlığıyla eşleşen yanıtın- Yani Android, yetkilendirme jetonunu içeren yanıtın
text/vnd.wap.connectivity-xmltüründe olmasını bekler. - Diğer Accept üst bilgisi (
application/vnd.gsma.eap-relay.v1.0+json), operatörün Android'in başka bir EAP-AKA isteği gerçekleştirmesini istediği durumlarda kullanılır.
- Yani Android, yetkilendirme jetonunu içeren yanıtın
ECS Yanıt Alanları
TOKEN.token: Yetkilendirme jetonunu içerir.TOKEN.validity: Cihaz yanıtı aldıktan sonra yanıtın geçerli olduğu saniye sayısı- Google, kimlik doğrulama jetonunun Teknik Koşulları karşıladığını doğrular.
AcquireTemporary Token
AcquireTempToken - ECS'ye GET isteği
Android istemcisi, EAP-AKA'dan alınan kimlik doğrulama jetonunu kullanarak operatörün AcquireTemporaryToken uç noktasını çağırarak geçici jetonu getirir. İstek
- Örnek: TS.43 v12.0 - Section 6.4.6 - "AcquireTemporaryToken Request Example"
- AcquireTempToken, EAP-AKA #1 ile benzer parametrelere sahiptir ancak:
- AcquireTempToken,
IMSI, operationveoperation_targetsdeğerlerini de belirtir. - AcquireTempToken,
EAP_IDdeğerini belirtmiyor
- AcquireTempToken,
Android'in İstek Başlıkları
Accept: Android,text/vnd.wap.connectivity-xmldeğerini ayarlar.
Android'in İstek Alanları
terminal_vendor/model/sw_version: Android, bu alanların cihazın gerçek bilgilerini içerdiğini garanti etmez.operation_targets- FPNV: İşlem hedefi
GetPhoneNumber
- FPNV: İşlem hedefi
AcquireTempToken - ECS'den yanıt
Örnek: TS.43 v12.0 - Section 6.6.6 - "AcquireTemporaryToken Response Example"
ECS Yanıt Başlıkları
Content-Type: Android, yanıt türünün isteğin Accept başlığıyla eşleşmesini bekler.- ör.
text/vnd.wap.connectivity-xml
- ör.
ECS Yanıt Alanları
APPLICATION.TemporaryToken: FPNV sunucusunun daha sonra telefon numarasıyla değiştirebileceği TemporaryTokenAPPLICATION.TemporaryTokenExpiry: Geçerlilik bitiş zamanı, YYYY-AA-GGTss:dd:ssTZD biçiminde- Google, TempToken'ın geçerlilik süresinin Teknik Koşulları karşıladığını doğrular.
APPLICATION.OperationResult: TS.43 v12.0 - Bölüm 6.5.1'e bakın.- Özellikle, işlemler
SUCCESSise 1 değerini döndürür.
- Özellikle, işlemler
2. adım: TempToken'ı telefon numarasıyla değiştirin
1. seçenek: Vanilla TS.43
Uç noktalar: OAuth ve GetPhoneNumber uç noktaları birbirinden farklı sunucular/uç noktalar olabilir. Bu uç noktalar, EAP-AKA/AcquireTempToken uç noktasından da farklı olabilir.
OAuth
Operatör bu OAuth kılavuzunu takip etmeli ve Google'a gerekli OAuth bilgilerini (istemci kimliği, istemci gizli anahtarı, OAuth sunucu URL'si) sağlamalıdır.
OAuth - POST Request to Carrier's Auth Server (OAuth - POST İsteği ile Operatörün Kimlik Doğrulama Sunucusuna Bağlanma)
FPNV İstek Başlıkları
Authorization: FPNV,Basic $BASE64_ENCODED_CREDENTIALSdeğerini ayarlar.- Base64 kodlu kimlik bilgileri, OAuth'un Base64 kodlamasıdır.
$CLIENT_ID:$CLIENT_SECRET
- Base64 kodlu kimlik bilgileri, OAuth'un Base64 kodlamasıdır.
Content-Type: FPNV,application/x-www-form-urlencodeddeğerini ayarlar.Accept: FPNV,application/jsondeğerini ayarlar.
FPNV İstek Alanları
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 - Response from Carrier's Auth Server
Operatörün yanıt başlıkları
Content-Type: FPNV, yanıt türünün isteğin Accept üstbilgisiyle eşleşmesini bekler.- ör.
application/json
- ör.
Operatörün Yanıt Alanları
access_token: OAuth erişim jetonutoken_type:bearerexpires_in: OAuth erişim jetonunun saniye cinsinden geçerlilik süresi- Google, OAuth jetonunun geçerlilik süresinin Teknik Koşullar'ı karşıladığını doğrular.
200 OK
Content-Type: application/json
{
"access_token": $ACCESS_TOKEN,
"token_type": "bearer",
"expires_in": $EXPIRATION_IN_SECS,
}
GetPhoneNumber
GetPhoneNumber - ECS'ye POST İsteği
Google doğrulama sunucusu, GetPhoneNumber işlemini kullanarak telefon numarasını getirir.
- Örnek: TS.43 v12.0 - Section 6.4.7 - "GetPhoneNumber Request Example"
FPNV'nin İstek Başlıkları
Accept:application/jsonContent-Type:application/json
FPNV'nin İstek Alanları
requestor_id: GetPhoneNumber TS.43 işlemini çağıran hizmeti tanımlar.- Firebase Telefon Numarası Doğrulama UUID'si:
191fd7cc-f7cd-4bb4-a5d2-455ae1fb9a19
- Firebase Telefon Numarası Doğrulama UUID'si:
temporary_token: AcquireTempToken'dan alınan TemporaryTokenaccess_token: Google'ın operatörle kimlik doğrulaması için kullanılan OAuth jetonuterminal_vendor/model/sw_version: FPNV, bu alanları rastgele değerlerle doldurur.entitlement_version: Google, operatörün isteğine göre operatörlere gönderilen hak sürümünü yapılandırır.- Genellikle
entitlement_version10.0 veya 12.0'dır.
- Genellikle
app: FPNV,ap2014değerini ayarlar.app_name: FPNV, tüm FPNV istekleri içinfirebasedeğerini ayarlar.- Not: AcquireTempToken, hangi toplayıcı kullanılırsa kullanılsın
app_nameGoogle-OGIdeğerine sahip olur.
- Not: AcquireTempToken, hangi toplayıcı kullanılırsa kullanılsın
operation: FPNV,GetPhoneNumberdeğerini ayarlar.
GetPhoneNumber - ECS'den yanıt
Örnek: TS.43 v12.0 - Section 6.6.7 - "GetPhoneNumber Response Example"
Operatörün yanıt başlıkları
Content-Type: FPNV, yanıt türünün isteğin Accept üstbilgisiyle eşleşmesini bekler.- ör.
application/json
- ör.
Operatörün Yanıt Alanları
ap2014.MSISDN: FPNV, telefon numarasının E164 biçiminde döndürülmesini bekler.- JSON büyük/küçük harfe duyarlı olduğundan MSISDN büyük harfle yazılmalıdır.
TemporaryToken Hata Kodları
TS.43 v12.0, bölüm 2.8.6'daki referanslar.
Aşağıdaki tabloda, GetPhoneNumber istekleri için ECS'nin Google doğrulama sunucusuna döndürmesi beklenen hata yanıtları ayrıntılı olarak açıklanmaktadır:
Senaryo |
ECS'den GET/POST yanıt kodu |
Üçüncü Taraf Sunucu İşlemi |
İstek parametreleri geçersiz veya eksik ya da istek yanlış biçimlendirilmiş |
400 Hatalı İstek |
Bir sonraki kullanıcı çağrısında / istemci yeniden başlatıldıktan sonra yeniden deneme |
İstek Geçersiz veya Süresi Dolmuş Geçici Jeton İçeriyor |
401 Yetkilendirilmedi |
Mümkünse cihazı, ECS'den geçerli bir (yeni) geçici jeton almaya tetikleyin. |
Geçici jetonla birlikte geçersiz işlem |
403 Yasak |
Bir sonraki kullanıcı çağrısında / istemci yeniden başlatıldıktan sonra yeniden deneme |
İstenen kaynak bulunamadı |
404 Bulunamadı |
Bir sonraki kullanıcı çağrısında / istemci yeniden başlatıldıktan sonra yeniden deneme |
ECS, istek işlenirken dahili bir hatayla karşılaşıyor |
500 Dahili Sunucu Hatası |
Bir sonraki kullanıcı çağrısında / istemci yeniden başlatıldıktan sonra yeniden deneme |
2. Seçenek: CAMARA
Uç noktalar: CAMARA erişim jetonunu alma ve telefon numarasını alma, birbirinden farklı sunucular/uç noktalar olabilir. Bu uç noktalar, EAP-AKA / AcquireTempToken uç noktasından da farklı olabilir.
OAuth - CAMARA Erişim Jetonunu Alma
Google yalnızca CAMARA'nın JWT taşıyıcı akışını destekleyecek, CIBA akışını desteklemeyecektir.
CAMARA Erişim Jetonu - Operatöre POST İsteği
Google, aşağıdaki alanları içeren bir JWT oluşturur.
iss: JWT'nin vereni (diğer adıyla istemci kimliği)- ör.
firebase(gerçek FPNV entegrasyonu) veyafpnv-carrier-tester-app(operatör test uygulaması)
- ör.
sub: JWT'nin konusu- ör.
operatortoken:$TEMP_TOKEN
- ör.
aud: Kitle; JWT'nin hedeflendiği alıcılar- Jeton uç nokta URL'si (ör. yetkilendirme sunucusunun URL'si)
exp: Saniye cinsinden geçerlilik süresi- Google, CAMARA erişim jetonunun ne kadar süreyle geçerli olması gerektiğiyle eşleşen bir geçerlilik süresi gönderir (Teknik Şartlar bölümüne bakın).
iat: Saniye cinsinden yayınlanma zamanıjti: Tekrar oynatma saldırılarını önlemek için kullanılan benzersiz tanımlayıcı- Ör. rastgele oluşturulmuş UUID
scope: İsteğin amacı- ör.
dpv:FraudPreventionAndDetection number-verification:device-phone-number:read
- ör.
{
"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'yi kendi özel anahtarını kullanarak imzalar ve operatör, JWT'yi karşılık gelen ortak anahtarı kullanarak doğrulayabilir. FPNV, JWKS uç noktası kullanarak ortak anahtarı sağlar. FPNV, ortak anahtarları düzenli olarak (ör. her 30 günde bir) döndüreceğinden operatörler, ortak anahtar için bu JWKS uç noktasını düzenli olarak (ör. günde bir kez) yoklamalıdır.
FPNV'nin İstek Başlıkları
Content-Type:application/x-www-form-urlencodedAccept:application/json
FPNV'nin İstek Alanları
grant_type:urn:ietf:params:oauth:grant-type:jwt-bearerassertion: Yukarıda oluşturulan ve FPNV'nin özel anahtarıyla imzalanan JWT- Bu JWT'nin TempToken içerdiğini unutmayın.
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 Erişim Jetonu - Operatörden gelen yanıt
Operatörün yanıt başlıkları
Content-Type: FPNV, yanıt türünün isteğin Accept üstbilgisiyle eşleşmesini bekler.- ör.
application/json
- ör.
Operatörün Yanıt Alanları
access_token: Daha sonra telefon numarasıyla değiştirilebilen CAMARA erişim jetonutoken_type:bearerexpires_in: OAuth erişim jetonunun saniye cinsinden geçerlilik süresi- Google, OAuth jetonunun geçerlilik süresinin Teknik Koşullar'ı karşıladığını doğrular.
scope: İsteğin amacı- ör.
dpv:FraudPreventionAndDetection number-verification:device-phone-number:read
- ör.
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
Ardından Google, operatörün /device-phone-number uç noktasına bir GET isteği göndererek CAMARA erişim jetonunu değiştirir.
CAMARA NumberVerification - GET Request to Carrier
FPNV'nin İstek Başlıkları
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 - Response from Carrier
Operatörün yanıt başlıkları
Content-Type: FPNV, yanıt türünün isteğin Accept üstbilgisiyle eşleşmesini bekler.- ör.
application/json
- ör.
Operatörün Yanıt Alanları
devicePhoneNumber: Telefon numarasını E164 biçiminde döndürür.
200 OK
Content-Type: application/json
{
"devicePhoneNumber": $PHONE_NUMBER
}