Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır?
#1
Merhaba,
Google Cloud Platform API'lerinden Speech To Text'i kullanabilmek için Google Console üzerinden tanımlamaları yaptıktan sonra gerekli olan parametreleri aldım.
REST bileşenleri (TRESTClient, TRESTRequest, TRESTRespons) ile bu parametreleri set ettim. 
OAuth 2.0 güvenlik doğrulaması için  TOAuth2Authenticator bileşenini kullandım. 
Tasarım anında TOAuth2Authenticator ile bir saat geçerli Access-Token ve Refresh-Token'lar oluşturulabiliyor.

   

Bir saat boyunca bu API'yi kullanabiliyorum. Süre bitiminde yeni Token'ları almak gerekiyor. 
Çalışma anında TOAuth2Authenticator bileşenine ait Authorize metodunu nasıl yenileyebilirim?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#2
Authorize işlemini arka planda gerçekleştirmek için REST.Authenticator.OAuth.WebForm.Win kütüphanesinde yer alan Tfrm_OAuthWebForm formundan faydalanayım dedim.
Bu defa da her saatte bir son kullanıcının karşısına doğrulama ekranı çıkıyor.

   

Bu ekranda Google hesabı ile giriş yaptıktan sonra Allow buton seçimi yapılması isteniyor. 
Her iki aşmadan sonra Authentication codu ve Token'lar üretiliyor. 
Kullanıcıyı bu pencere ile muhatap etmeden arka planda kimlik bilgilerini (token ve authcode) yenileme imkanı var mı?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
s.a
mrmarman hocanın çözümü burada mevcut
http://www.delphican.com/showthread.php?tid=2076
Cevapla
#4
(29-04-2019, Saat: 17:48)theSinan Adlı Kullanıcıdan Alıntı: s.a
mrmarman hocanın çözümü burada mevcut
http://www.delphican.com/showthread.php?tid=2076

Bilgilendirme için teşekkür ederim. Referans verdiğiniz konuyu inceledim. 
Burada, ikinci mesajımda belirttiğim web üzerinden kullanıcı doğrulama yönteminden bahsediliyor. Bu pencereyi son kullanıcıya yansıtmadan bir güvenlik doğrulaması yapmak istiyorum. 
@mrmarman üstadımız da bu durumdan muzdarip olacak ki; pencereyi bir ilizyon marifetiyle onaylamış.  Smile
Lokal (geliştirici) bilgisayarında kullanıcı adı ve şifresi kaydedilip, yalnızca Allow butonunun arka planda tetiklenmesi sorunu bir nebze çözüyor. Fakat uygulamanın son kullanıcılara dağıtılması durumunda kullanıcı adı ve şifresi sorun olacaktır.

TOAuth2Authenticator ile çalışma anında herhangi bir Google hesap talebi olmadan güvenlik doğrulaması yapılabiliyor, fakat çalışma anında bu doğrulamayı sağlayacak bir metod yok. 
Yalnızca AuthCode'un elde edilmesi durumunda (arka planda bu kodu almak için de çok uğraştım) iki satırlık bir kod ile yine kullanıcı bilgilerine ihtiyaç olmadan doğrudan geliştirici API anahtarları ile güvenlik doğrulamasının yapılabileceğini öğrendim.  
örneğin
with OAuth2Authenticator1 do
begin
 AuthCode := FAuthorisationCode;
 ChangeAuthCodeToAccesToken;
end;
Örnekte AuthCode'un set edilmesi durumunda TOAuth2Authenticator bileşenine ait ChangeAuthCodeToAccesToken global metodu ile arka planda tekrar bir saatlik işlem anahtarları (token'lar) alınabiliyor. 
AuthCode'un arka planda elde edilmesi veya farklı çözüm önerileriniz varsa bekliyorum.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
Google Cloud Platform OAuth 2.0 güvenlik seviyesinin arka planda doğrulanması JWT (JSON Web Tokens) yöntemi ile sağlanabiliyormuş.
Bunun için Google Cloud Console'dan proje bilgilerini içeren bir JSON dosyası veya .p12 sertifika dosyası (.pem dosyasına dönüştürme zorunluluğu var) indirmek gerekiyor.

   

Daha sonra bu dosyaların JWT'ye dönüştürülüp, servis sağlayıcıdan yeni token talepleri yapılıyormuş.
Bu konuda tecrübesi olan arkadaşlar varsa, yardımlarını bekliyorum.

KaynakPreparing to make an authorized API call
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#6
Delphi için hazırlanmış bir JWT implemantasyonu mevcut;
https://github.com/paolo-rossi/delphi-jose-jwt

Birçok protokolü destekliyor.
Cevapla
#7
(02-05-2019, Saat: 09:39)mad85 Adlı Kullanıcıdan Alıntı: Delphi için hazırlanmış bir JWT implemantasyonu mevcut;
https://github.com/paolo-rossi/delphi-jose-jwt

Birçok protokolü destekliyor.

Teşekkür ederim.
İnceleyeyim, bir sonuca ulaşınca buradan yazarım.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#8
Rica ederim. Dört gözle bekliyorum üstad Smile
Cevapla
#9
(02-05-2019, Saat: 10:13)mad85 Adlı Kullanıcıdan Alıntı: Rica ederim. Dört gözle bekliyorum üstad Smile

Tüm Google Cloud Platform API hizmetleri oAuth 2.0 ile kullanılabildiğine göre; bir çok proje entegrasyonunda bu sınıf kullanılabilir.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#10
(02-05-2019, Saat: 10:40)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(02-05-2019, Saat: 10:13)mad85 Adlı Kullanıcıdan Alıntı: Rica ederim. Dört gözle bekliyorum üstad Smile

Tüm Google Cloud Platform API hizmetleri oAuth 2.0 ile kullanılabildiğine göre; bir çok proje entegrasyonunda bu sınıf kullanılabilir.

Kesinlikle...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Krityere göre listeleme - çözüldü ekank 3 413 16-07-2020, Saat: 22:05
Son Yorum: ekank
  (Çözüldü)Memory aşımı powerghost 14 1.162 16-07-2020, Saat: 10:50
Son Yorum: mrmarman
  [ÇÖZÜLDÜ SOLVED] Fast Report Kontrollü Component Gizleme 3ddark 0 208 01-07-2020, Saat: 17:08
Son Yorum: 3ddark
  pageControl başlangıç tabını 300px den nasıl başlatabilirim info@guzelceker.com 7 592 30-06-2020, Saat: 12:30
Son Yorum: Fesih ARSLAN
  [ÇÖZÜLDÜ] Drag Drop Hatası wiseman 7 680 26-06-2020, Saat: 12:44
Son Yorum: wiseman



Konuyu Okuyanlar: 1 Ziyaretçi