Kimlik doğrulama kullanıcı işlemleri akışı

Genel bakış

Kimlik doğrulama akışının amacı, kullanıcıyı tanımlamak ve Ödeme Entegratörü'ne (entegre edici) doğrulamaktır.

Kimlik doğrulama, diğer yöntemler için yapılan bir giriştir. Özellikle associateAccount ve capture için. Diğer bir deyişle, kimlik doğrulama kanıtı bu iki yöntem için bir giriş (parametre) olarak kullanılır.

Google, bir kullanıcıyı doğrulamak için bağımsız modda kimlik doğrulama akışını da kullanabilir. Bu durumda, başka herhangi bir akışa giriş olarak kullanılmaz, yalnızca kullanıcının bu kimliği doğrulayabildiğini doğrulamak için kullanılır.

İlk katılım sırasında Google'ın ürününüze en uygun kimlik doğrulama mekanizmasını seçmek için sizinle birlikte çalışacağını unutmayın.

Akışın işleyiş şekli

Bir kullanıcının kimliğini doğrulamanın iki yolu vardır. Her birinin kendi akışı vardır. Hangisinin kullanılacağını entegrasyon sırasında entegratör belirlemelidir.

  1. Yönlendirme kimlik doğrulaması
  2. SMS-MT OTP kimlik doğrulaması

Yönlendirme kimlik doğrulaması

Kimlik doğrulamasına ihtiyacı olan Google kullanıcıları, kimliklerinin doğrulanması için entegratörün uygulamasına veya web sitesine yönlendirilebilir. Aşağıda, bu akıştaki adımlara kısa bir genel bakış verilmiştir:

  1. Google, kullanıcıyı entegratörün web veya Android uygulamasına yönlendirir. Burada kimlik doğrulaması yapılabilir.
  2. Kimlik doğrulama için, kimlik doğrulama kanıtı olarak requestId kimlik doğrulaması (AuthenticationRequest tarafından) kullanılır.
  3. Bu işlem, AuthenticationResponse adı verilen imzalı bir yanıtla sonuçlanır.
  4. Sonrasında, uygulama veya web sitesi, kullanıcıyı tekrar Google'a yönlendirir.

Yönlendirme kimlik doğrulaması, bir web uygulamasının URL'sine kodlanmış parametrelerle bir HTTP GET yöntemi kullanır. Bu uzantı, Android uygulaması kimlik doğrulaması için bir Android amacı kullanır. Kodlama hakkında daha fazla bilgi edinmek için Web Kimlik Doğrulaması, Android amaç parametreleri için Android Kimlik Doğrulaması başlıklı makaleye bakın.

Bu kimlik doğrulama sistemlerinin her birinden elde edilen sonuç, AuthenticationResponse adı verilen imzalı bir yanıttır. Bu amaç, başarılı bir kimlik doğrulama işlemi gerçekleştirmek için şifrelenmiş ve kodlanmış Google Standart Ödemeler Kimlik Doğrulama Yanıtı'nı (gspAuthenticationResponse) içermelidir. Bağımsız modda kullanılırsa başarılı kimlik doğrulamasını belirlemek için gspResult ve imza kullanılır.

Aşağıdaki sıra diyagramında kullanıcının tarayıcısı, Google ve entegratörün web uygulaması arasındaki etkileşim gösterilmektedir:

Yönlendirme Web kimlik doğrulaması akışı

Web Kimlik Doğrulaması Akışı

Aşağıda nesnelerin ve temsil ettikleri öğelerin listesi verilmiştir:

  • Kullanıcı: Google hesabına ödeme yöntemi eklemek isteyen kullanıcıdır.
  • Google kullanıcı arayüzü: Bu örnekte, müşterinin bir ödeme yöntemi ayarlamaya başladığı Google web arayüzü.
  • Google Sunucusu: Diğer kimlik doğrulama görevleriyle birlikte kimlik doğrulama kontrolünü yapan Google'daki arka uç sunucusu.
  • Ödeme Entegratörü Web: Entegratörün, kullanıcının hesabının olduğu web sitesi.

Bu kimlik doğrulama akışı için kullanıcının Google'ın web sitesinde (Google kullanıcı arayüzü) olduğunu ve bir ödeme yöntemi eklemeye çalıştığını varsayıyoruz. İşte her şey burada başlıyor.

  1. Google kullanıcı arayüzü, Google Sunucusu'na (arka uç) gönderilen bir kimlik doğrulama URL'si oluşturur. Bu, kimlik doğrulama işlemini tetikler.
  2. Google Sunucusu bir kimlik doğrulama isteği (AuthenticationRequest) oluşturur.
  3. Google kullanıcı arayüzüne gönderilen kimlik doğrulama isteği.
  4. Kullanıcı, entegratörle kimliğini doğrulaması gerektiği konusunda bir istem alır.
  5. Kullanıcı, kimlik doğrulaması yapmak istediğini söyler. Bu da söz konusu mesajı entegratörün web sitesine gönderir.
  6. Ödeme Entegratörü web sitesinde kullanıcının kimliğinin doğrulanması istenir.
  7. Kullanıcı, kimliğini kanıtlayan bir belge sunar ve bu belge Ödeme Entegratörünün web sitesine gönderilir.
  8. Entegratör, kendisine sağlanan kanıta bir yanıt (authenticationResponse) oluşturur (iletide kodlanmış authenticationResponse ile).
  9. Bu yanıt URL'si kullanıcıya gönderilir.
  10. Yanıt URL'si kullanıcıdan hemen Google kullanıcı arayüzüne gönderilir.
  11. Google kullanıcı arayüzü, yanıtı Google sunucusuna gönderir.
  12. Google Sunucusu yanıtı doğrulanmış olarak yorumlar.

Bir sonraki sıra şeması kullanıcının telefonu, Google ve entegratörün Android uygulaması arasındaki etkileşimi gösterir:

Redirect-Android uygulaması kimlik doğrulama akışı

Android uygulaması kimlik doğrulama akışı

Nesneler ve temsil ettikleri şeyler şunlardır:

  • Kullanıcı: Google hesabına ödeme yöntemi eklemek isteyen kullanıcıdır.
  • Google kullanıcı arayüzü: Bu örnekte, müşterinin bir ödeme yöntemi ayarlamaya başladığı uygulama arayüzü.
  • Google Sunucusu: Diğer kimlik doğrulama görevleriyle birlikte kimlik doğrulama kontrolünü yapan Google'daki arka uç sunucusu.
  • Ödeme Entegratörü APK: Kullanıcının entegratör hesabına erişebildiği, entegratörün uygulamasıdır.
  • Ödeme Entegratörü Sunucusu: Kullanıcının bilgilerinin depolandığı entegratörün arka uç sunucusu.

Bu bir kimlik doğrulama akışı olduğundan, kullanıcının bir uygulama (Google Kullanıcı Arayüzü) kullandığını ve bir ödeme yöntemi eklemeye çalıştığını varsayıyoruz. Başlatma burada başlar.

  1. Google kullanıcı arayüzü, Google Sunucusu'na (arka uç) gönderilen bir kimlik doğrulama çağrısı oluşturur.
  2. Google Sunucusu bir kimlik doğrulama isteği (AuthenticationRequest) oluşturur.
  3. Google Sunucusu, Google kullanıcı arayüzüne (uygulama) bir çağrı APK'sı göndererek kimlik doğrulama isteğinde bulunur.
  4. Google kullanıcı arayüzü, kullanıcı bilgilerini Ödeme Entegratörü APK'sına (AUTHENTICATE_V1(authReq)) gönderir.
  5. Ödeme Entegratörü APK'sı, isteği (authReq) Ödeme Entegratörünün sunucusuna gönderir.
  6. Ödeme Entegratörü Sunucusu, Ödeme Entegratörü APK'sına bir giriş sorgulaması gönderir.
  7. Ödeme Entegratörü APK'sı, sorgulamayı kullanıcıya geri gönderir.
  8. Kullanıcı, kimliğini kanıtlayan bir belge sağlar ve bu belge Ödeme Entegratörü APK'sına gönderilir.
  9. Bu belge, daha sonra Ödeme Entegratörü Sunucusu'na gönderilir.
  10. Sunucu imzalı bir authenticationResponse oluşturur.
  11. Kimlik doğrulama yanıtı başarılı olur ve Ödeme Entegratörü APK'sına bir authResp mesajı gönderilir.
  12. Başarı mesajı (authResp), Payment Integrator APK'sından Google kullanıcı arayüzüne gönderilir.
  13. Google kullanıcı arayüzü, yanıtı Google sunucusuna gönderir.
  14. Google Sunucusu başarılı yanıtı yorumlar.

SMS-MT OTP Kimlik Doğrulaması

Diğer bir kimlik doğrulama yöntemi ise Kısa Mesaj Hizmeti, Mobil Sonlandırılmış, Tek Kullanımlık Şifre (SMS-MT OTP) şeklindedir. Bu mekanizma, kimlik doğrulama için kullanıcıya tek kullanımlık şifre göndermek üzere kullanıcının telefon numarasını kullanır. Google entegratörden kullanıcının telefon numarasına OTP göndermesini ister. Kullanıcı bu mesajı aldıktan ve Google arayüzüne girdikten sonra kullanıcı doğrulanır.

Buna aşağıdaki adımlar dahildir:

  1. Google'ın kullanıcı arayüzünde, kullanıcıdan entegratörde kayıtlı olan telefon numarasını girmesi istenir.
  2. Kullanıcı, Google kullanıcı arayüzüne bir telefon numarası girer.
  3. Google, kullanıcıya tek kullanımlık şifre (OTP) göndermesi için entegratörü (sendOtp yöntemini çağırır) tetikler.
  4. Kullanıcı, OTP'yi içeren SMS mesajını alır.
  5. Ardından kullanıcı, kullanıcının kimliğini doğrulamak için aldığı OTP'yi (capture, associateAccount ve verifyOtp için giriş olarak kullanılır) Google'ın arayüzüne girer. Bu, kimlik doğrulaması kanıtıdır.

Bağımsız modda, OTP değerini doğrulamak için yalnızca verifyOtp yöntemi çağrılır.

Aşağıdaki sıra şemasında, OTP gönderirken kullanıcının telefonu, Google ve entegratör arasındaki etkileşim gösterilmektedir:

Telefon (OTP gönderme) kimlik doğrulama akışı

Telefon (OTP) Kimlik Doğrulama Akışı

Diyagramdaki nesnelerin ve temsil ettikleri öğelerin listesi aşağıda verilmiştir:

  • Kullanıcı: Google hesabına ödeme yöntemi eklemek isteyen kullanıcıdır.
  • Google kullanıcı arayüzü: Bu örnekte, müşterinin ödeme yöntemi ayarlamaya başladığı bir Google web sitesi veya telefon uygulaması. Not: Google kullanıcı arayüzü bir telefon uygulamasıysa telefon, kullanıcının telefon numarasını zaten bildiği için ilk birkaç adım atlanır.
  • Google Sunucusu: Diğer kimlik doğrulama görevleriyle birlikte kimlik doğrulama kontrolünü yapan Google'daki arka uç sunucusu.
  • Ödeme Entegratörü Sunucusu: Kullanıcının bilgilerinin depolandığı entegratörün arka uç sunucusu.

Bu bir OTP kimlik doğrulama akışı olduğundan, kullanıcının zaten bir Google telefon uygulamasını veya web sitesini (Google Kullanıcı Arayüzü) kullandığını ve bir ödeme yöntemi eklemeye çalıştığını varsayıyoruz. Başlatma burada başlar.

  1. Google kullanıcı arayüzü (telefon veya web sitesi) kullanıcıdan telefon numarasını ister.
  2. Kullanıcı, telefon numarasını Google kullanıcı arayüzüne girer.
  3. Google kullanıcı arayüzü, numarayı (sendChallenge(phoneNum)) Google Sunucusuna gönderir.
  4. Google Sunucusu, Ödeme Entegratörü Sunucusu'na (SendOtp(phoneNum)) tek kullanımlık şifre göndermek için bir istek gönderir.
  5. Ödeme Entegratörü Sunucusu, kullanıcıya tek kullanımlık bir şifre (OTP) gönderir.
  6. Ödeme Entegratörü Sunucusu, Google'ın isteğine 5 numaralı maddede yanıt vererek OTP'nin başarıyla gönderildiğini gösterir.
  7. Kullanıcı, bu OTP'yi Google kullanıcı arayüzüne (telefon veya web sitesi) girer.
  8. Google kullanıcı arayüzü, OTP'yi Google sunucusuna gönderir ve burada da doğrulama için ödeme entegratörüne gönderilir. Bu işlem, kullanıcının kimliğini doğrular ve kullanıcının kimliğini doğrular.

Kimlik Doğrulama ve Yeniden Kimlik Doğrulama

Kimlik doğrulamanın gerçekleşebileceği iki nokta vardır:

  1. İlk kimlik doğrulama: Bir kullanıcıyı tanımlamak ve kullanıcının kimliğini doğrulamak için kullanılır. İlk kimlik doğrulama, associateAccount yöntemine giriş olarak kullanılır.
  2. Yeniden kimlik doğrulama: Diğer tüm bağlamlarda (ör. bağımsız olarak veya capture'e giriş olarak) kullanılır.

Yeniden kimlik doğrulama, ilk kimlik doğrulamadan farklıdır. Hiçbir zaman kullanıcının kimliğini yeniden tanımlamak istemez, yalnızca yeniden kimlik doğrulamaktır. Yeniden kimlik doğrulama, Google tarafından kullanıcının belirli bir hesaba sahip olduğunu kanıtlaması için sorgulama yapmak amacıyla kullanılır ve bu işlem Google'ın şahsi karar verme yetkisiyle gerçekleşir.

Bu süreçte, orijinal ilişkilendirmeye (ilişkilendirme akışından) associationId adı verilen bir referans sağlanır. Bu kimlik, ilişkilendirme akışı sırasında associateAccount yöntemine yapılan çağrıyla sağlanır. associationId, sorgulamanın yapılacağı hesabı tanımlar. Güvenlik nedeniyle, kullanıcı, sorgulama yapılan hesabı değiştirememelidir.

sendOtp ile yapılan ilk aramada sağlanan telefon numarası, SMS-MT OTP yeniden kimlik doğrulaması için Google tarafından sabit numara olarak tutulur. Güvenlik amacıyla bu da tekrar değiştirilemez.

Google'ın satın alma işlemi gerçekleştirmeden önce sorgulamaya (yeniden kimlik doğrulaması yapmaya) karar verdiği örnek bir akış aşağıda verilmiştir:

Yeniden kimlik doğrulama akışı

Yeniden kimlik doğrulama akışı

Nesnelerin listesi ve temsil ettikleri öğeler aşağıdaki gibidir:

  • Kullanıcı: Satın alma işlemi yapmak isteyen kişidir.
  • Google kullanıcı arayüzü: Bu durumda, müşterinin satın alma işlemini gerçekleştirmeye başladığı Google web sitesi veya telefon uygulaması.
  • Ödeme Entegratörü kullanıcı arayüzü: Kullanıcının hesap bilgilerine entegratör aracılığıyla erişebildiği, müşteriye yönelik web sitesi veya uygulama.
  • Google Sunucusu: Diğer görevlerle birlikte yeniden kimlik doğrulama kontrolünü yapan Google'daki arka uç sunucusu.
  • Ödeme Entegratörü Sunucusu: Kullanıcının bilgilerinin depolandığı entegratörün arka uç sunucusu.

Yeniden kimlik doğrulama akışı, müşteri satın alma işlemi gerçekleştirmeye başladığında başlar. Bu işlem, kullanıcının kimliğini yeniden doğrulamak için bir akış başlatır.

  1. Kullanıcı, bir öğeyi veya hizmeti satın almaya karar verir.
  2. İstek, Google kullanıcı arayüzünden Google Sunucusu'na gönderilir.
  3. Google Sunucusu, Google kullanıcı arayüzüne bir kimlik doğrulama isteği (authenticationRequest) gönderir.
  4. Google kullanıcı arayüzü, kullanıcının kimliğini doğrulamak için Payment Integrator kullanıcı arayüzüne bir istek gönderir (associationId, authenticationRequest).
  5. Ödeme Entegratörü kullanıcı arayüzü, kimliğini doğrulamak için kullanıcıyı arar (LookupIdentity(associationId)).
  6. Ödeme Entegratörü kullanıcı arayüzü, kullanıcıdan kimlik bilgilerini kullanıcı arayüzünde (entegratörün web sitesi veya uygulaması) ister.
  7. Kimlik doğrulama yanıtı Ödeme Entegratörü Sunucusu'na gönderilir.
  8. İmzalanmış kimlik doğrulama yanıtı (authenticationResponse), Ödeme Entegratörü kullanıcı arayüzüne geri gönderilir.
  9. Kimlik doğrulama yanıtı (authenticationResponse), Ödeme Entegratörü kullanıcı arayüzünden Google kullanıcı arayüzüne gönderilir.
  10. Google kullanıcı arayüzü, satın alma bilgilerini içeren yanıtı Google sunucusuna gönderir.
  11. Google'ın Sunucusu, Ödeme Entegratörü Sunucusu'na bir capture mesajı (mevcut fonları bulmak için) gönderir (authenticationRequestId, GPT, tutar).
  12. Ödeme Entegratörü Sunucusu, Google Sunucusu'na bir başarı mesajı gönderir.
  13. Google'ın Sunucusu, Google kullanıcı arayüzüne bir başarı mesajı gönderir.
  14. Google kullanıcı arayüzü öğeleri müşteriye teslim eder (veya ürünlerin kısa süre içinde teslim edileceğini bildirir).

SMS-MO Kimlik Doğrulaması

Kısa Mesaj Hizmeti, Mobil Kaynaklı kimlik doğrulama akışı, kullanıcının kimliğini doğrulamak için telefonundan Ödeme Entegratörü'ne gönderilen Kimlik Doğrulama İsteği Kimliği'ni içeren bir SMS kullanır.

SMS-MO Kimlik Doğrulama Akışı

Diyagramdaki nesnelerin ve temsil ettikleri öğelerin listesi aşağıda verilmiştir:

  • Kullanıcı: Google hesabına ödeme yöntemi eklemek isteyen kullanıcıdır.
  • Google Kullanıcı Arayüzü/Cihaz: Bu örnekte, müşterinin ödeme yöntemi ayarlamaya başladığı Google telefon uygulaması.
  • Google Sunucusu: Bir Kimlik Doğrulama İsteği Kimliği (ARID) ile SMS talimatlarını oluşturan ve kimlik doğrulama sonucunu entegratörden alan, Google'daki arka uç sunucusu.
  • Ödeme Entegratörü Sunucusu: Kimlik doğrulama SMS'ini alan ve Kimlik Doğrulama İsteği Kimliğini Google'a döndüren entegratörün arka uç sunucusu.

Bu bir kimlik doğrulama akışı olduğundan, kullanıcının bir uygulama (Google Kullanıcı Arayüzü) kullandığını ve bir ödeme yöntemi eklemeye çalıştığını varsayıyoruz. Başlatma burada başlar.

  1. Kullanıcı eklemek üzere bir Token atanmış araç seçer.
  2. Google kullanıcı arayüzü, SMS-MO Challenge'ı başlatmak için Google Sunucusu'nu çağırır.
  3. Google Sunucusu, bir hedef ve Kimlik Doğrulama İsteği Kimliğini içeren bir gövdeden oluşan SMS talimatlarını döndürür.
  4. Google kullanıcı arayüzü, SMS'i Ödeme Entegratörü'ne gönderir.
  5. Ödeme Entegratörü Sunucusu, Google Sunucusu'ndaki Kimlik Doğrulama İsteği Kimliğine sahip AuthenticationResultBildirim uç noktasını çağırır.
  6. Kimlik Doğrulama İsteği Kimliği Google Sunucusu tarafından doğrulanır ve BAŞARILI yanıtını verir.
  7. Google kullanıcı arayüzü, kimlik doğrulama girişiminin sonucunu almak için Google Sunucusu'nu çağırır.
  8. Google Sunucusu yanıtı BAŞARILI.

Simüle Edilmiş SMS-MO Kimlik Doğrulaması

SMS-MO Kimlik Doğrulama akışının teşhis testlerini gerçekleştirmek amacıyla Google, bir SMS Simüle Et uç noktası tanımlar. Bu sayede, korumalı alan ortamında test ilişkilendirmeleri gerçekleştirilirken gerçek bir SMS gönderilmesi ve doğrulanması gerekmez.

Simüle Edilmiş SMS-MO Kimlik Doğrulama Akışı

Diyagramdaki nesnelerin ve temsil ettikleri öğelerin listesi aşağıda verilmiştir:

  • Test kullanıcısı: SMS-MO ilişkilendirme teşhis testini başlatan kişidir.
  • Google kullanıcı arayüzü: Test kullanıcısının SMS-MO teşhis testinin başladığı ve durumunu izlediği Google kullanıcı arayüzü.
  • Google Sunucusu: Bir Kimlik Doğrulama İsteği Kimliği (ARID) ile SMS talimatlarını oluşturan, simüle edilmiş SMS mesajını gönderen ve kimlik doğrulama sonucunu entegratörden alan, Google'daki arka uç sunucusu.
  • Ödeme Entegratörü Sunucusu: Simüle edilmiş kimlik doğrulama SMS'ini alan ve Kimlik Doğrulama İsteği Kimliğini Google'a döndüren entegratörün arka uç sunucusu.

Bu akıştaki adımlar şunlardır:

  1. Test kullanıcısı, test için kullanılacak bir test abone kimliğini (SID) sağlayarak SMS-MO teşhis testine başlar. Bu SID, Ödeme Entegratörü ile yapılan simulateSms çağrısına dahil edilecek.
  2. Google kullanıcı arayüzü, SMS-MO Challenge'ı başlatmak için Google Sunucusu'nu çağırır.
  3. Google Sunucusu, bir hedef ve Kimlik Doğrulama İsteği Kimliğini içeren bir gövdeden oluşan SMS talimatlarını döndürür. Bu testte hedef, Ödeme Entegratörü'nün korumalı alan HTTPS bağlantısı tarafından geçersiz kılınır.
  4. Google kullanıcı arayüzü, simüle edilmiş SMS mesajını göndermek için Google Sunucusu'nu çağırır.
  5. Google Sunucusu'ndan Ödeme Entegratörü Sunucusu'na simulateSms çağrısı yapılır. API çağrısına hem Kimlik Doğrulama İsteği Kimliği hem de Abone Kimliği (1. adımda belirtildiği şekilde) dahil edilir.
  6. Ödeme Entegratörü Sunucusu ACKNOWLEDGED yanıtı verir.
  7. Google Sunucusu, Google kullanıcı arayüzüne BAŞARILI yanıtını verir.
  8. Ödeme Entegratörü Sunucusu, Google Sunucusu'ndaki Kimlik Doğrulama İsteği Kimliğine sahip AuthenticationResultBildirim uç noktasını çağırır.
  9. Google Sunucusu BAŞARILI yanıtını veriyor.
  10. Google kullanıcı arayüzü, kimlik doğrulama girişiminin sonucunu almak için Google Sunucusu'nu çağırır.
  11. Google Sunucusu COMPLETED yanıtını verir.
  12. Google kullanıcı arayüzü, bir İlişkilendirme denemesi yürütmek için Google Sunucusu'nu çağırır.
  13. Google Sunucusu'ndan Ödeme Entegratörü Sunucusu'na associateAccount çağrısı yapılır.
  14. Ödeme Entegratörü Sunucusu BAŞARILI yanıtını veriyor.
  15. Google Sunucusu BAŞARILI yanıtını veriyor.
  16. Google kullanıcı arayüzü, test kullanıcısı için SMS-MO teşhis testinin başarıyla tamamlandığını gösterecek şekilde güncellenir.

En iyi uygulamalar ve dikkat edilmesi gereken diğer noktalar

Platform seçimi

Mobil uygulama ve masaüstü web kimlik doğrulama akışı sağlanması, entegratörün en fazla sayıda kullanıcıya ulaşmasını sağlar. Google, en iyi kullanıcı deneyimini sunarak en yüksek dönüşüm oranını sağladığından, Android uygulamasını entegre edenlerin desteklemesini önemle tavsiye eder. Web ve Android uygulamaları için kimlik doğrulama API'lerinde iletilen parametreler aynıdır.