ফায়ারবেস ফোন নম্বর যাচাইকরণ প্রযুক্তিগত ক্যারিয়ার অনবোর্ডিং গাইড

শেষ সংশোধিত তারিখ: সেপ্টেম্বর 10, 2025

ওভারভিউ

এই দস্তাবেজটি TS.43 ফোন নম্বর যাচাইকরণের মাধ্যমে Firebase ফোন নম্বর যাচাইকরণ (Firebase PNV)-এ ক্যারিয়ারকে অন-বোর্ড করার সমস্ত বাধ্যতামূলক পদক্ষেপগুলি ক্যাপচার করে৷

পরিভাষা

জড়িত দলগুলো

  • CSP : যোগাযোগ পরিষেবা প্রদানকারী
    • যেমন মোবাইল ক্যারিয়ার
  • সমষ্টিকারী
    • অ্যাপ-ফেসিং অ্যাগ্রিগেটর : অ্যাগ্রিগেটর যা অ্যাপগুলিকে সরাসরি ক্যারিয়ারের সাথে ইন্টারঅ্যাক্ট না করেই অ্যাপগুলিকে যাচাইকরণ করতে দেয়
      • যেমন ফায়ারবেস ফোন নম্বর যাচাইকরণ
    • মেটা-এগ্রিগেটর : অ্যাগ্রিগেটর যা ক্যারিয়ারকে একটি অ্যাপ-মুখী অ্যাগ্রিগেটরে অন-বোর্ডে সমর্থন করে
      • একজন মেটা-এগ্রিগেটর ক্যারিয়ারের জন্য এনটাইটেলমেন্ট সার্ভার সেট আপ করার এবং/অথবা অ্যাপ-মুখী অ্যাগ্রিগেটরদের সাথে এনটাইটেলমেন্ট সার্ভারের বিবরণ কনফিগার করার দায়িত্বে থাকতে পারে
  • ফায়ারবেস পিএনভি : ফায়ারবেস ফোন নম্বর যাচাইকরণ
  • Google TAM : Google টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার, যিনি Firebase PNV-এ ক্যারিয়ারকে অন-বোর্ডে সাহায্য করেন
  • অ্যান্ড্রয়েড টেলিফোনি : TS.43 যাচাইকরণ প্রদানের জন্য ক্যারিয়ার এবং অ্যাগ্রিগেটরদের জন্য একটি প্ল্যাটফর্ম সহ Android-এ ফোন নম্বর API অফার করে
  • GSMA : মোবাইল নেটওয়ার্ক অপারেটরদের অ্যাসোসিয়েশন যা TS.43 সহ স্পেসিক্স সংজ্ঞায়িত করে
  • CAMARA : লিনাক্স ওপেন সোর্স প্রজেক্ট যা GSMA-এর সহযোগিতায় ক্যারিয়ার API-কে সংজ্ঞায়িত করে

যাচাইকরণ শর্তাবলী

  • PNV : ফোন নম্বর যাচাইকরণ
  • TS.43 : এইচটিটিপি ব্যবহার করে ক্যারিয়ারের সাথে যোগাযোগ করার জন্য মোবাইল ক্লায়েন্ট এবং সার্ভারের জন্য প্রোটোকল সংজ্ঞায়িত করে
  • EAP-AKA : https://www.rfc-editor.org/rfc/rfc4187- এ সংজ্ঞায়িত প্রমাণীকরণ পদ্ধতি, যার জন্য ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করার প্রয়োজন নেই
  • ECS : এনটাইটেলমেন্ট কনফিগারেশন সার্ভার
    • বাহকের সাথে কথা বলার জন্য অ্যাগ্রিগেটরের জন্য এন্ট্রি পয়েন্ট
  • ODSA : অন-ডিভাইস পরিষেবা সক্রিয়করণ
    • ডিভাইসে পরিষেবা সক্রিয় করার জন্য ECS দ্বারা প্রদত্ত বিভিন্ন ক্রিয়াকলাপের উল্লেখ করে
    • যেমন AcquireTemporaryToken; ফোন নম্বর পান

ক্যারিয়ার এনটাইটেলমেন্ট সার্ভার এবং PNV এন্ডপয়েন্ট

প্রয়োজনীয় এন্ডপয়েন্ট তৈরি করা

অ্যাকশন 1 : ক্যারিয়ার নিম্নলিখিত শেষ পয়েন্টগুলি প্রয়োগ করে, যা ইন্টারনেটের মাধ্যমে অ্যাক্সেসযোগ্য। বাস্তবায়ন সম্পর্কে আরো বিস্তারিত জানার জন্য Annex A দেখুন।

প্রযুক্তিগত প্রয়োজনীয়তা

সাধারণ কর্মক্ষমতা : সমস্ত শেষ পয়েন্টের আপটাইম কমপক্ষে 99.99% হতে হবে।

নিরাপত্তা : নিরাপত্তার কারণে, ক্যারিয়ারের শেষ পয়েন্টগুলিকে অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করতে হবে:

  • EAP-AKA প্রমাণীকরণ টোকেন : অবশ্যই 1 ঘন্টার মধ্যে মেয়াদ শেষ হতে হবে
  • অস্থায়ী টোকেন : 5 মিনিটের মেয়াদ শেষ হওয়ার সাথে একক ব্যবহার
  • বিকল্প 1 - ভ্যানিলা TS.43
    • OAuth টোকেন : 1 ঘন্টার মধ্যে মেয়াদ শেষ হতে হবে
  • বিকল্প 2 - CAMARA
    • CAMARA অ্যাক্সেস টোকেন : 5 মিনিটের মেয়াদ শেষ হওয়ার সাথে একক ব্যবহার

API ডেটা গুণমান : সফল প্রতিক্রিয়াগুলির বিষয়বস্তুর 100% (যেমন MSISDN সঠিক হওয়া উচিত)।

Firebase PNV TS.43 এর দুটি স্বাদ সমর্থন করে। প্রধান পার্থক্য হল Firebase PNV সার্ভার কিভাবে TempToken কে ক্যারিয়ারের সাথে বিনিময় করবে।

  • ভ্যানিলা TS.43 : TS.43 স্পেক দ্বারা নির্ধারিত বাস্তবায়নকে বোঝায়
  • CAMARA : CAMARA এর JWT বহনকারী প্রবাহ দ্বারা নির্ধারিত বাস্তবায়নকে বোঝায়

বিকল্প 1 - ভ্যানিলা TS.43 বাস্তবায়ন

অ্যান্ড্রয়েড ডিভাইস থেকে অনুরোধ

  1. EAP-একেএ এন্ডপয়েন্ট : একটি প্রমাণীকরণ টোকেন ফেরত দিন
  2. AcquireTemporaryToken Endpoint : প্রমাণীকরণ টোকেন দেওয়া হলে, একটি TempToken ফেরত দিন

Firebase PNV সার্ভার থেকে অনুরোধ

  1. OAuth 2.0 এন্ডপয়েন্ট - OAuth ক্লায়েন্ট আইডি/সিক্রেট ফ্লো : OAuth ক্লায়েন্ট আইডি/গোপন দেওয়া হলে, একটি OAuth অ্যাক্সেস টোকেন ফেরত দিন
  2. GetPhoneNumber এন্ডপয়েন্ট : OAuth অ্যাক্সেস টোকেন এবং TempToken দেওয়া হলে, সংশ্লিষ্ট ফোন নম্বর ফেরত দিন

বিকল্প 2 - CAMARA বাস্তবায়ন

CAMARA বাস্তবায়ন ভ্যানিলা TS.43 বাস্তবায়নের অনুরূপ, Firebase PNV সার্ভার থেকে অনুরোধগুলি পরিচালনা করার জন্য শেষ পয়েন্টগুলি ছাড়া।

অ্যান্ড্রয়েড ডিভাইস থেকে অনুরোধ

  1. EAP-একেএ এন্ডপয়েন্ট : একটি প্রমাণীকরণ টোকেন ফেরত দিন
  2. AcquireTemporaryToken Endpoint : একটি প্রমাণীকরণ টোকেন দেওয়া হলে, একটি TempToken ফেরত দিন

Firebase PNV সার্ভার থেকে অনুরোধ

  1. OAuth 2.0 এন্ডপয়েন্ট - JWT Bearer Flow : টেম্পটোকেন ধারণকারী একটি JWT দেওয়া হলে, একটি CAMARA অ্যাক্সেস টোকেন ফেরত দিন
  2. CAMARA NumberVerification v2 Endpoint : CAMARA অ্যাক্সেস টোকেন দেওয়া হলে, সংশ্লিষ্ট ফোন নম্বরটি ফেরত দিন

অ্যান্ড্রয়েড টেলিফোনি এবং ফায়ারবেস পিএনভিতে অন-বোর্ডিং

ক্যারিয়ার টেস্ট অ্যাপ

অ্যাকশন২ : ক্যারিয়ার Google টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM) এর সাথে যোগাযোগ করে এবং TAM Firebase PNV ক্যারিয়ার টেস্ট অ্যাপ ক্যারিয়ারের সাথে শেয়ার করবে। এই ক্যারিয়ার টেস্ট অ্যাপ Firebase PNV সার্ভারকে জড়িত না করে Firebase PNV দ্বারা পাঠানো অনুরোধগুলির অনুকরণ করে৷ এই ক্যারিয়ার টেস্ট অ্যাপটি ক্যারিয়ারের পক্ষে তাদের শেষ পয়েন্টগুলি সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে কার্যকর।

ACTION3 : Firebase PNV ক্যারিয়ার টেস্ট অ্যাপ ব্যবহার করে ক্যারিয়ারটি যাচাই করে যে উপরের এন্ডপয়েন্টগুলি এন্ড-টু-এন্ড কাজ করে।

প্রয়োজনীয় উৎপাদন কনফিগার সেট আপ করা হচ্ছে

অ্যান্ড্রয়েড কনফিগ - EAP-AKA / AcquireTempToken

ACTION4 : ক্যারিয়ার তার EAP-AKA/AcquireTempToken অনুরোধের জন্য তার উৎপাদন কনফিগারকে Android টেলিফোনি থেকে সংজ্ঞায়িত করে

  • কনফিগারেশন:
    • এই ক্যারিয়ারের Android Canonical Carrier ID
    • TS.43 use_cases মান: use_case=GetPhoneNumber
    • EAP-AKA/AcquireTempToken-এর জন্য প্রোডাকশন এনটাইটেলমেন্ট সার্ভার URL
    • ফায়ারবেসের উৎপাদন x509 শংসাপত্রের SAN এবং আঙুলের ছাপ
      • সান : fpnv.googleapis.com
      • আঙুলের ছাপ : aad068c93399a22fc2b11ab58468e8cb72b8f9fc53700991799a8b764c589c7e

ফায়ারবেস কনফিগারেশন - ফোনের জন্য এক্সচেঞ্জ টেম্পটোকেন

ACTION5 : ক্যারিয়ার থেকে একটি OAuth টোকেন পুনরুদ্ধার করতে Firebase শংসাপত্র

  • ভ্যানিলা TS.43
    • Carrier Firebase PNV-এর অনুরোধের জন্য OAuth ক্লায়েন্ট আইডি এবং গোপনীয়তা তৈরি করে। ক্যারিয়ার তারপর এই শংসাপত্রগুলির জন্য একটি অ্যাক্সেস টোকেন ফেরত দিতে তার OAuth এন্ডপয়েন্ট কনফিগার করে
  • ক্যামারা
    • Google TAM Google এর সর্বজনীন কী প্রদান করে, যাতে ক্যারিয়ারের OAuth এন্ডপয়েন্ট যাচাই করতে পারে যে JWT Google দ্বারা স্বাক্ষরিত ছিল

ACTION6 : ফোনের জন্য টেম্পটোকেন বিনিময় করতে Firebase PNV সার্ভারের জন্য ক্যারিয়ার একটি প্রোডাকশন কনফিগারেশন নির্ধারণ করে

  • এই MNO এর Android Canonical Carrier ID
  • ভ্যানিলা TS.43
    • OAuth - ক্লায়েন্ট আইডি/সিক্রেট ফ্লো
      • OAuth এন্ডপয়েন্ট URL
      • OAuth ক্লায়েন্ট আইডি/গোপন
      • OAuth সুযোগ (যদি থাকে)
    • ফোন নম্বর পান
      • GetPhoneNumber এন্ডপয়েন্ট URL
  • ক্যামারা
    • OAuth - JWT বহনকারী ফ্লো
      • OAuth এন্ডপয়েন্ট URL
    • NumberVerification API v2
      • NumberVerification endpoint URL

শংসাপত্র/কনফিগারেশন শেয়ার করা

ফায়ারবেস ফোন নম্বর যাচাইকরণ

ACTION7 : ক্যারিয়ার তার প্রোডাকশন কনফিগারেশন ACTION4 এবং ACTION6 থেকে Google টেকনিক্যাল অ্যাকাউন্ট ম্যানেজারের সাথে শেয়ার করে।

  • [গুরুত্বপূর্ণ] OAuth গোপনীয়তা অবশ্যই Google-এর সাথে একটি সুরক্ষিত, আউট-অফ-ব্যান্ড (কোনও ইমেল, কোনো ডক্স ইত্যাদি নেই) পদ্ধতি ব্যবহার করে শেয়ার করতে হবে। এই আউট-অফ-ব্যান্ড প্রক্রিয়াটি ক্যারিয়ার এবং Google TAM দ্বারা সম্মত হবে।

ACTION8 : Google TAM যাচাই করে যে কনফিগারটি ক্যারিয়ার টেস্ট অ্যাপ ব্যবহার করে শেষ থেকে শেষ পর্যন্ত কাজ করে। এর পরে, Google TAM একটি Google নিরাপদ স্টোরেজে OAuth শংসাপত্রগুলি সঞ্চয় করবে এবং একটি ফোনের (যেমন ACTION6-এর কনফিগারেশনগুলি) জন্য TempToken বিনিময় করতে Firebase PNV-এর কনফিগারেশনগুলি আপডেট করবে৷

অ্যান্ড্রয়েড টেলিফোনি

ACTION9 : ক্যারিয়ার "Google ওপেন গেটওয়ে CSP অনবোর্ডিং" ডক অনুসরণ করে (যা Google TAM ক্যারিয়ারের সাথে শেয়ার করবে)। ক্যারিয়ার বা তাদের Google TAM অ্যান্ড্রয়েড টেলিফোনির কনফিগারেশনে অন-বোর্ড করার জন্য একটি Buganizer টিকেট ফাইল করে: https://issuetracker.google.com/issues/new?component=1861595&template=2168610 । এই বাগটি ACTION4 থেকে উৎপাদন কনফিগারে নিয়ে যাবে।

যদি একজন মেটা-এগ্রিগেটর ক্যারিয়ারের পক্ষ থেকে Firebase PNV ইন্টিগ্রেশন সেট-আপ করে থাকেন, তাহলে ক্যারিয়ারের নেতৃত্বের (ডিরেক্টর+ লেভেল) সম্মতির বিবৃতি (ইমেল, PDF, চিঠি ইত্যাদি) অবশ্যই ওই অপারেটরের সঙ্গে তাদের ব্যবসায়িক সম্পর্ক নিশ্চিত করতে হবে। এর পরে, মেটা-এগ্রিগেটর Android টেলিফোনিতে ক্যারিয়ারের পক্ষ থেকে ক্যারিয়ারের কনফিগারেশন প্রদান করতে পারে।

পরিশিষ্ট A. বিস্তারিত বাস্তবায়ন

কেস সংবেদনশীলতা

  • HTTP শিরোনামগুলি কেস সংবেদনশীল নয়
  • যাইহোক, XML এবং JSON ফর্ম্যাটগুলি কেস-সংবেদনশীল। তাই অনুরোধ/প্রতিক্রিয়া ক্ষেত্রগুলির জন্য, নিশ্চিত করুন যে ক্ষেত্রগুলি এই ডকুমেন্টেশনের সাথে মেলে।

ধাপ 1 - EAP-AKA / AcquireTempToken

ডায়াগ্রাম একটি ক্যারিয়ার সার্ভার থেকে একটি অস্থায়ী টোকেন পুনরুদ্ধার করতে EAP-AKA এবং AcquireTempToken পারফর্ম করছে এমন একটি ডিভাইস দেখাচ্ছে৷
চিত্র 1. ডিভাইসটি EAP-AKA তারপর AcquireTempToken সম্পাদন করে ক্যারিয়ার সার্ভার থেকে টেম্পটোকেন পুনরুদ্ধার করে। ধাপ 2 - ফোন নম্বরের জন্য এক্সচেঞ্জ টেম্পটোকেন কীভাবে একটি ফোনের জন্য টেম্পটোকেন বিনিময় করতে হয় সে সম্পর্কে বিস্তারিত হবে।

এন্ডপয়েন্ট : EAP-AKA এবং AcquireTempToken অবশ্যই একই ECS এন্ডপয়েন্ট ব্যবহার করতে হবে।

ইএপি-একেএ চ্যালেঞ্জ

তথ্যসূত্র : TS.43 v12.0 - বিভাগ 2.8.1 - "এনটাইটেলমেন্ট কনফিগারেশন সার্ভার দ্বারা এমবেডেড EAP-AKA প্রমাণীকরণ"।

EAP-AKA ধাপ 1 - প্রমাণীকরণ চ্যালেঞ্জ
EAP-AKA #1 - ECS-এর কাছে অনুরোধ পান

Android Telephony মডিউল ক্যারিয়ারের এনটাইটেলমেন্ট সার্ভারে একটি TS.43 EAP-AKA অনুরোধ পাঠায়।

Android এর অনুরোধ শিরোনাম

  • Accept : application/vnd.gsma.eap-relay.v1.0+json
    • এটি GSMA-এর জন্য নির্দিষ্ট একটি JSON ফর্ম্যাট, শুধু application/json নয়

অ্যান্ড্রয়েডের অনুরোধের ক্ষেত্র

  • eap_id : দেখুন RCC.14 Annex C
    • যেমন 0<IMSI>@<realm>.mnc<MNC>.mcc<MCC>.3gppnetwork.org
  • GID1 : এনটাইটেলমেন্ট সংস্করণ 12.0 হলে শুধুমাত্র নির্দিষ্ট করা হয়
  • app_name : এনকোড করা AppName-এর ব্যবহার-কেসের একটি MD5 হ্যাশড মান থাকবে যা ফোন যাচাইকরণ করছে:
    • সমস্ত অ্যাপ-মুখী অ্যাগ্রিগেটর অনুরোধে Google-OGI এর একটি অ্যাপ নাম থাকবে
  • app : অ্যাপ আইডি ap2014 ফোন নম্বর তথ্য উপস্থাপন করে
  • terminal_vendor/model/sw_version : একটি নির্বিচারে মান সেট করুন; অ্যান্ড্রয়েড গ্যারান্টি দেবে না যে এই ক্ষেত্রগুলিতে প্রকৃত ডিভাইসের তথ্য রয়েছে৷
  • vers : কনফিগারেশন সংস্করণ; যেমন 0 বা 1
  • entitlement_version : ক্যারিয়ারের অনুরোধের উপর ভিত্তি করে ক্যারিয়ারকে পাঠানো এনটাইটেলমেন্ট সংস্করণটি Google কনফিগার করবে
    • সাধারণত, entitlement_version হল 10.0 বা 12.0
EAP-AKA #1 - ECS থেকে প্রতিক্রিয়া

ইসিএস রেসপন্স হেডার

  • Content-Type : অ্যান্ড্রয়েড আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন application/vnd.gsma.eap-relay.v1.0+json

ইসিএস প্রতিক্রিয়া ক্ষেত্র

EAP-AKA ধাপ 2 - প্রমাণীকরণ টোকেন পান
EAP-AKA #2 - ECS-এর কাছে অনুরোধ পোস্ট করুন

অ্যান্ড্রয়েড টেলিফোনি মডিউলটি প্রাপ্ত eap-relay-packet একই প্রান্তে ফেরত পাঠাবে।

Android এর অনুরোধ শিরোনাম

  • Accept : Android দুটি Accept হেডার সেট করবে:
    • application/vnd.gsma.eap-relay.v1.0+json : ডিভাইসটিকে আবার অন্য EAP-AKA অনুরোধ পাঠাতে হলে JSON আবার ফেরত দেওয়া ক্যারিয়ারকে বোঝায়
    • text/vnd.wap.connectivity-xml : প্রকৃত বিন্যাসকে বোঝায় যেটি Android আশা করবে যে ক্যারিয়ার EAP-AKA প্রমাণীকরণ টোকেন হিসাবে ফিরিয়ে দেবে
  • Content-Type : application/vnd.gsma.eap-relay.v1.0+json

অ্যান্ড্রয়েডের অনুরোধের ক্ষেত্র

  • eap-relay-packet : পূর্ববর্তী EAP-AKA প্রতিক্রিয়ার eap-relay-প্যাকেট ধারণ করে কিন্তু RFC 4817 - বিভাগ 9.2 অনুসরণ করে EAP-প্রতিক্রিয়া/AKA-চ্যালেঞ্জ বিন্যাসে রয়েছে।
EAP-AKA #2 - ECS থেকে প্রতিক্রিয়া

একটি সফল EAP-AKA প্রমাণীকরণের পরে, ক্যারিয়ার একটি প্রমাণীকরণ টোকেন ফেরত দেয়।

ইসিএস রেসপন্স হেডার

  • Content-Type : অ্যান্ড্রয়েড আশা করে যে প্রতিক্রিয়াটি অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • অর্থাত্ অ্যান্ড্রয়েড আশা করে যে প্রমাণীকরণ টোকেন সহ প্রতিক্রিয়াটিতে text/vnd.wap.connectivity-xml এর ধরন রয়েছে
    • অন্য Accept শিরোনাম, application/vnd.gsma.eap-relay.v1.0+json , যদি ক্যারিয়ার চায় যে Android অন্য EAP-AKA অনুরোধ সম্পাদন করুক

ইসিএস প্রতিক্রিয়া ক্ষেত্র

  • TOKEN.token : প্রমাণীকরণ টোকেন রয়েছে
  • TOKEN.validity : ডিভাইসটি প্রতিক্রিয়া পাওয়ার পর প্রতিক্রিয়াটি বৈধ বলে সেকেন্ডের সংখ্যা

Acquire Temporary Token

AcquireTempToken - ECS-এর কাছে অনুরোধ পান

EAP-AKA থেকে প্রাপ্ত প্রমাণীকরণ টোকেন ব্যবহার করে, Android ক্লায়েন্ট ক্যারিয়ারের AcquireTemporaryToken এন্ডপয়েন্টে কল করে অস্থায়ী টোকেন আনে। অনুরোধ

  • উদাহরণ : TS.43 v12.0 - বিভাগ 6.4.6 - "AcquireTemporaryToken অনুরোধের উদাহরণ"
  • AcquireTempToken-এর EAP-AKA #1 এর মতো অনুরূপ পরামিতি রয়েছে, বাদে:
    • AcquireTempToken এছাড়াও IMSI, operation এবং operation_targets নির্দিষ্ট করে
    • AcquireTempToken EAP_ID নির্দিষ্ট করে না

Android এর অনুরোধ শিরোনাম

  • Accept : Android text/vnd.wap.connectivity-xml সেট করবে

অ্যান্ড্রয়েডের অনুরোধের ক্ষেত্র

  • terminal_vendor/model/sw_version : Android গ্যারান্টি দেয় না যে এই ক্ষেত্রগুলিতে প্রকৃত ডিভাইসের তথ্য রয়েছে
  • operation_targets
    • ফায়ারবেস PNV : অপারেশন টার্গেট হল GetPhoneNumber

AcquireTempToken - ECS থেকে প্রতিক্রিয়া

উদাহরণ : TS.43 v12.0 - বিভাগ 6.6.6 - "AcquireTemporaryToken Response Example"

ইসিএস রেসপন্স হেডার

  • Content-Type : অ্যান্ড্রয়েড আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন text/vnd.wap.connectivity-xml

ইসিএস প্রতিক্রিয়া ক্ষেত্র

  • APPLICATION.TemporaryToken : অস্থায়ী টোকেন যা ফায়ারবেস PNV সার্ভার তারপর একটি ফোন নম্বরের বিনিময় করতে পারে
  • APPLICATION.TemporaryTokenExpiry : মেয়াদ শেষ হওয়ার সময় YYYY-MM-DDThh:mm:ssTZD ফর্ম্যাটে
  • APPLICATION.OperationResult : দেখুন TS.43 v12.0 - বিভাগ 6.5.1
    • বিশেষভাবে, যদি অপারেশন একটি SUCCESS হিসাবে, তারপর 1 ফেরত

ধাপ 2 - ফোন নম্বরের জন্য টেম্পটোকেন বিনিময় করুন

বিকল্প 1 - ভ্যানিলা TS.43

ভ্যানিলা TS.43 ব্যবহার করে ক্যারিয়ারের সাথে একটি যাচাইকৃত ফোন নম্বরের জন্য একটি অস্থায়ী টোকেন বিনিময় করার জন্য একটি Google সার্ভার দেখানো চিত্র।
চিত্র 2a. Google সার্ভার তারপরে GetPhoneNumber কল করে যাচাইকৃত ফোনের বিনিময়ে ক্যারিয়ারের কাছে TempToken পাঠায়। এই চিত্রটি ধাপ 1 - EAP-AKA / AcquireTempToken-কে বিমূর্ত করে।

এন্ডপয়েন্ট : OAuth এবং GetPhoneNumber এন্ডপয়েন্ট একে অপরের থেকে আলাদা সার্ভার/এন্ডপয়েন্ট হতে পারে। এই এন্ডপয়েন্টগুলি EAP-AKA/AcquireTempToken এন্ডপয়েন্ট থেকেও আলাদা হতে পারে।

OAuth

ক্যারিয়ারের এই OAuth নির্দেশিকা অনুসরণ করা উচিত এবং Google-কে প্রয়োজনীয় OAuth তথ্য প্রদান করা উচিত (ক্লায়েন্ট আইডি; ক্লায়েন্ট সিক্রেট; OAuth সার্ভার URL)

OAuth - ক্যারিয়ারের প্রমাণীকরণ সার্ভারে অনুরোধ পোস্ট করুন

Firebase PNV অনুরোধ শিরোনাম

  • Authorization : Firebase PNV Basic $BASE64_ENCODED_CREDENTIALS সেট করবে
    • বেস64 এনকোড করা শংসাপত্রগুলি হল OAuth $CLIENT_ID:$CLIENT_SECRET এর base64 এনকোডিং
  • Content-Type : ফায়ারবেস পিএনভি application/x-www-form-urlencoded সেট করবে
  • Accept : Firebase PNV application/json সেট করবে

Firebase PNV অনুরোধ ক্ষেত্র

  • 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 : ফায়ারবেস PNV আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন application/json

ক্যারিয়ারের প্রতিক্রিয়া ক্ষেত্র

  • access_token : OAuth অ্যাক্সেস টোকেন
  • token_type : bearer
  • expires_in : সেকেন্ডের মধ্যে OAuth অ্যাক্সেস টোকেনের মেয়াদ শেষ হবে
200 OK
Content-Type: application/json

{
  "access_token": $ACCESS_TOKEN,
  "token_type": "bearer",
  "expires_in": $EXPIRATION_IN_SECS,
}
ফোন নম্বর পান
GetPhoneNumber - ECS-এর কাছে অনুরোধ পোস্ট করুন

Google যাচাইকরণ সার্ভার GetPhoneNumber অপারেশন ব্যবহার করে ফোন নম্বর নিয়ে আসে।

Firebase PNV-এর অনুরোধ শিরোনাম

  • Accept : application/json
  • Content-Type : application/json

Firebase PNV-এর অনুরোধের ক্ষেত্র

  • requestor_id : GetPhoneNumber TS.43 অপারেশনে কল করা পরিষেবাকে শনাক্ত করে
    • ফায়ারবেস ফোন নম্বর যাচাইকরণ UUID : 191fd7cc-f7cd-4bb4-a5d2-455ae1fb9a19
  • temporary_token : AcquireTempToken থেকে TemporaryToken
  • access_token : ক্যারিয়ারের সাথে প্রমাণীকরণের জন্য Google এর জন্য OAuth টোকেন
  • terminal_vendor/model/sw_version : Firebase PNV এই ক্ষেত্রগুলিকে নির্বিচারে মান দিয়ে পপুলেট করবে
  • entitlement_version : ক্যারিয়ারের অনুরোধের উপর ভিত্তি করে ক্যারিয়ারকে পাঠানো এনটাইটেলমেন্ট সংস্করণটি Google কনফিগার করবে
    • সাধারণত, entitlement_version হল 10.0 বা 12.0
  • app : Firebase PNV ap2014 সেট করবে
  • app_name : Firebase PNV সমস্ত Firebase PNV অনুরোধের জন্য firebase সেট করবে
    • দ্রষ্টব্য : AcquireTempToken-এর একটি app_name থাকবে Google-OGI , যে অ্যাগ্রিগেটর ব্যবহার করা হোক না কেন
  • operation : Firebase PNV GetPhoneNumber সেট করবে
GetPhoneNumber - ECS থেকে প্রতিক্রিয়া

উদাহরণ : TS.43 v12.0 - বিভাগ 6.6.7 - "GetPhoneNumber রেসপন্স উদাহরণ"

ক্যারিয়ারের প্রতিক্রিয়া শিরোনাম

  • Content-Type : ফায়ারবেস PNV আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন application/json

ক্যারিয়ারের প্রতিক্রিয়া ক্ষেত্র

  • ap2014.MSISDN : Firebase PNV আশা করে ফোন নম্বরটি E164 ফরম্যাটে ফেরত দেওয়া হবে
    • JSON কেস-সংবেদনশীল, তাই MSISDN কে বড় করা আবশ্যক
অস্থায়ী টোকেন ত্রুটি কোড

TS.43 v12.0 থেকে রেফারেন্স , বিভাগ 2.8.6।

GetPhoneNumber অনুরোধের জন্য ECS যে Google যাচাইকরণ সার্ভারে ফিরে আসবে বলে আশা করা হচ্ছে সেই ব্যর্থতার প্রতিক্রিয়াগুলির বিবরণ নিম্নলিখিত সারণীতে রয়েছে:

দৃশ্যকল্প

ECS থেকে রেসপন্স কোড পান/পোস্ট করুন

তৃতীয় পক্ষের সার্ভার অ্যাকশন

অনুরোধে অবৈধ বা অনুপস্থিত প্যারামিটার বা ভুল বিন্যাস

400 খারাপ অনুরোধ

পরবর্তী ব্যবহারকারীর আমন্ত্রণে পুনরায় চেষ্টা করুন / ক্লায়েন্ট পুনরায় চালু করার পরে

অনুরোধে অবৈধ বা মেয়াদোত্তীর্ণ অস্থায়ী টোকেন

401 অননুমোদিত

সম্ভব হলে, ইসিএস থেকে একটি (নতুন) বৈধ অস্থায়ী টোকেন অর্জন করতে ডিভাইসটি ট্রিগার করুন

অস্থায়ী টোকেনের সাথে একত্রে অবৈধ অপারেশন

403 নিষিদ্ধ

পরবর্তী ব্যবহারকারীর আমন্ত্রণে পুনরায় চেষ্টা করুন / ক্লায়েন্ট পুনরায় চালু করার পরে

অনুরোধ করা সম্পদ পাওয়া যায়নি

404 পাওয়া যায়নি

পরবর্তী ব্যবহারকারীর আমন্ত্রণে পুনরায় চেষ্টা করুন / ক্লায়েন্ট পুনরায় চালু করার পরে

অনুরোধ প্রক্রিয়াকরণের সময় ইসিএস একটি অভ্যন্তরীণ ত্রুটির মধ্যে পড়ে

500 অভ্যন্তরীণ সার্ভার ত্রুটি৷

পরবর্তী ব্যবহারকারীর আমন্ত্রণে পুনরায় চেষ্টা করুন / ক্লায়েন্ট পুনরায় চালু করার পরে

বিকল্প 2 - CAMARA

CAMARA-এর JWT বহনকারী ফ্লো ব্যবহার করে একটি ক্যারিয়ারের সাথে একটি যাচাইকৃত ফোন নম্বরের জন্য একটি অস্থায়ী টোকেন বিনিময় করার জন্য একটি Google সার্ভারকে দেখানো চিত্র।
চিত্র 2 খ. Google সার্ভার তারপর CAMARA-এর JWT বহনকারী ফ্লো সম্পাদন করে যাচাইকৃত ফোনের বিনিময়ে ক্যারিয়ারের কাছে TempToken পাঠায়। এই চিত্রটি ধাপ 1 - EAP-AKA / AcquireTempToken-কে বিমূর্ত করে।

শেষ পয়েন্ট : CAMARA অ্যাক্সেস টোকেন পুনরুদ্ধার করা এবং ফোন নম্বর পুনরুদ্ধার করা একে অপরের থেকে বিভিন্ন সার্ভার/এন্ডপয়েন্ট হতে পারে। এই শেষ পয়েন্টগুলি EAP-AKA / AcquireTempToken এন্ডপয়েন্ট থেকেও আলাদা হতে পারে।

OAuth - CAMARA অ্যাক্সেস টোকেন পুনরুদ্ধার করুন

Google শুধুমাত্র CAMARA-এর JWT বাহক প্রবাহকে সমর্থন করবে এবং CIBA ফ্লোকে নয়

CAMARA অ্যাক্সেস টোকেন - ক্যারিয়ারের কাছে অনুরোধ পোস্ট করুন

Google নিম্নলিখিত ক্ষেত্রগুলির সাথে একটি JWT তৈরি করবে৷

  • iss : JWT ইস্যুকারী (ওরফে ক্লায়েন্ট আইডি)
    • যেমন firebase (প্রকৃত ফায়ারবেস পিএনভি ইন্টিগ্রেশন) বা fpnv-carrier-tester-app (ক্যারিয়ার টেস্ট অ্যাপ)
  • sub : JWT এর বিষয়
    • যেমন operatortoken:$TEMP_TOKEN
  • aud : শ্রোতা; প্রাপক যে JWT জন্য উদ্দেশ্যে করা হয়
    • টোকেন এন্ডপয়েন্ট URL (যেমন অনুমোদন সার্ভারের URL)
  • exp : মেয়াদ শেষ হওয়ার সময় সেকেন্ডে
  • 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"
}

Firebase PNV তার নিজস্ব ব্যক্তিগত কী ব্যবহার করে JWT-এ স্বাক্ষর করবে এবং ক্যারিয়ার সংশ্লিষ্ট পাবলিক কী ব্যবহার করে JWT-কে যাচাই করতে পারবে। Firebase PNV একটি JWKS এন্ডপয়েন্ট ব্যবহার করে সর্বজনীন কী প্রদান করবে। বাহকদের নিয়মিতভাবে পাবলিক কী (যেমন প্রতিদিন একবার) জন্য এই JWKS এন্ডপয়েন্টটি পোল করা উচিত, কারণ Firebase PNV পাবলিক কীগুলিকে নিয়মিত ক্যাডেন্সে ঘুরবে (যেমন প্রতি 30 দিনে একবার)।

Firebase PNV-এর অনুরোধ শিরোনাম

  • Content-Type : application/x-www-form-urlencoded
  • Accept : application/json

Firebase PNV-এর অনুরোধের ক্ষেত্র

  • grant_type : urn:ietf:params:oauth:grant-type:jwt-bearer
  • assertion : JWT উপরে তৈরি করা হয়েছে এবং Firebase PNV-এর ব্যক্তিগত কী দিয়ে স্বাক্ষর করেছে
    • উল্লেখযোগ্যভাবে, এই 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 : ফায়ারবেস PNV আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন application/json

ক্যারিয়ারের প্রতিক্রিয়া ক্ষেত্র

  • access_token : CAMARA অ্যাক্সেস টোকেন, যা পরে একটি ফোন নম্বরের জন্য বিনিময় করা যেতে পারে
  • token_type : bearer
  • expires_in : সেকেন্ডের মধ্যে 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 নম্বর যাচাইকরণ - ক্যারিয়ারের কাছে অনুরোধ পান

Firebase PNV-এর অনুরোধ শিরোনাম

  • Authorization : Bearer $CAMARA_ACCESS_TOKEN
  • Accept : application/json
GET /device-phone-number
Authorization: Bearer $CAMARA_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json
CAMARA নম্বর যাচাইকরণ - ক্যারিয়ার থেকে প্রতিক্রিয়া

ক্যারিয়ারের প্রতিক্রিয়া শিরোনাম

  • Content-Type : ফায়ারবেস PNV আশা করে যে প্রতিক্রিয়ার ধরন অনুরোধের স্বীকার শিরোনামের সাথে মেলে
    • যেমন application/json

ক্যারিয়ারের প্রতিক্রিয়া ক্ষেত্র

  • devicePhoneNumber : E164 ফরম্যাটে ফোন নম্বর প্রদান করে
200 OK
Content-Type: application/json

{
 "devicePhoneNumber": $PHONE_NUMBER
}