TsgcHTTP_OAuth2_Client

Bir istemci yeni bir Access Token'a ihtiyaç duyduğunda, Authorization sunucusundan gelen yanıtı işlemek için otomatik olarak bir HTTP sunucusu başlatır.

Giriş

Bu bileşen, istemci ile diğer roller arasındaki akışı işlemenize olanak tanır, temel olarak, Active := True ayarladığınızda yeni bir Web Tarayıcısı açar ve kullanıcıdan yetkilendirme izni ister, başarılı olursa, yetkilendirme sunucusu uygulamaya işlenen bir token gönderir ve bu token ile istemci kaynak sunucusuna bağlanabilir. Bu bileşen, yetkilendirme sunucusu yanıtlarını işleyen basit bir HTTP sunucusu başlatır ve Access Token istemek için bir HTTP istemcisi kullanır.

 

GrantType

 

İstemci aşağıdaki Yetkilendirme türlerini destekler:

 

auth2Code: Tek sayfalık uygulamalar, web uygulamaları ve yerel olarak yüklenen uygulamalar dahil olmak üzere uygulama türlerinin çoğunda kimlik doğrulama ve yetkilendirme gerçekleştirmek için kullanılır. Akış, uygulamaların güvenli kaynaklara erişmek için kullanılabilen access_token'ları güvenli bir şekilde edinmesini, ayrıca ek access_token'lar almak için refresh token'ları ve oturum açan kullanıcı için ID token'larını edinmesini sağlar.

 

 

auth2CodePKCE: PKCE etkinleştirilmiş auth2Code ile aynı kimlik doğrulama akışıdır. PKCE (Proof Key for Code Exchange), yerel ve tek sayfalı uygulamalar için yetkilendirme akışlarının güvenliğini artırmak üzere tasarlanmış OAuth 2.0 için bir güvenlik uzantısıdır. Özellikle yetkilendirme kodunun aktarım sırasında ele geçirilmeye maruz kalabileceği genel istemcilerde, ele geçirme saldırıları riskini azaltır. Genellikle bu seçenek yerel ve mobil uygulamalarda kullanılır.

 

auth2ClientCredentials: Bu tür izin (grant), bir kullanıcıyla anında etkileşim olmadan arka planda çalışması gereken sunucudan sunucuya etkileşimler için yaygın olarak kullanılır. Bu tür uygulamalara genellikle daemon veya hizmet hesabı denir.

 

 

auth2DeviceCode: tarayıcısı olmayan veya sınırlı giriş yeteneklerine sahip akıllı TV'ler, medya konsolları ve IoT cihazları gibi giriş kısıtlamalı cihazlar için Device Authorization Grant (RFC 8628). Cihaz bir kullanıcı kodu ve doğrulama URI'si görüntüler; kullanıcı, ikincil bir cihazda (telefon veya bilgisayar) URI'yi ziyaret eder ve yetkilendirmek için kodu girer.

 

LocalServerOptions

 

Bir istemci yeni bir Access Token'a ihtiyaç duyduğunda, Authorization sunucusundan gelen yanıtı işlemek için otomatik olarak bir HTTP sunucusu başlatır. Bu sunucu kullanıcı için şeffaftır ve genellikle localhost'ta çalışır. Varsayılan olarak port 8080 kullanır ancak gerekirse değiştirebilirsiniz.

 

 

AuthorizationServerOptions

 

Burada Authorization ve Access Token için URL ayarlamanız gerekir, bunlar genellikle API belirtiminde sağlanır. Scope, istemci tarafından istenen tüm kapsamların bir listesidir. Örnek:

 

 

OAuth2Options

 

ClientId, sunucuya istemcinin tanımlamasının ne olduğunu bildiren zorunlu bir alandır. ClientId'yi nasıl alacağınızı öğrenmek için API belirtiminizi kontrol edin. Aynısı istemci gizli anahtarı için de geçerlidir.

Bazen, sunucu Temel Kimlik Doğrulama kullanarak bağlanmak için bir kullanıcı ve parola gerektirir, bu durumda bunu Username/Password alanlarında ayarlayabilirsiniz. Örnek:

 

 

HTTPClientOptions

 

Yeni bir token istemek için HTTP Server'a bağlanırken İstemci Seçeneklerini burada özelleştirebilirsiniz.

 

TLSOptions: TLS etkinleştirilmişse, burada bazı TLS özelliklerini özelleştirebilirsiniz.

 

ALPNProtocols: sunucuya gönderilecek ALPN protokollerinin listesi.

RootCertFile: kök sertifika dosyasının yolu.

CertFile: sertifika dosyasının yolu.

KeyFile: sertifika anahtar dosyasının yolu.

Password: sertifika bir parolayla korunuyorsa, buraya ayarlayın.

VerifyCertificate: sertifikanın doğrulanması gerekiyorsa, bu özelliği etkinleştirin.

VerifyDepth: X.509 sertifikası için doğrulama yapıldığında izin verilen maksimum bağlantı sayısını temsil eden bir Integer özelliğidir.

Version: varsayılan olarak TLS 1.0 kullanır, sunucu daha yüksek bir TLS sürümü gerektiriyorsa, burada seçilebilir.

IOHandler: TLS kullanarak bağlanmak için kullanacağınız kütüphaneyi seçin.

iohOpenSSL: OpenSSL kütüphanesini kullanır ve Indy bileşenleri için varsayılandır. win32/win64 için openssl kütüphanelerinin dağıtılmasını gerektirir.

iohSChannel: Microsoft tarafından Windows için uygulanan bir güvenlik protokolü olan Secure Channel'ı kullanır, openssl kütüphanelerini dağıtmayı gerektirmez. Yalnızca Windows 32/64 bit'te çalışır.

OpenSSL_Options: hangi OpenSSL API'sinin kullanılacağını tanımlamanıza olanak tanır.

APIVersion: hangi OpenSSL API'sinin kullanılacağını tanımlamaya olanak tanır.

oslAPI_1_0: API 1.0 OpenSSL kullanır, Indy tarafından desteklenen en son sürümdür

oslAPI_1_1: API 1.1 OpenSSL kullanır, özel Indy kütüphanemizi gerektirir ve OpenSSL 1.1.1 kütüphanelerinin (TLS 1.3 desteğiyle) kullanılmasına izin verir.

oslAPI_3_0: API 3.0 OpenSSL kullanır, özel Indy kütüphanemizi gerektirir ve OpenSSL 3.0.0 kütüphanelerinin (TLS 1.3 desteğiyle) kullanılmasına olanak tanır.

LibPath: burada openSSL kütüphanelerinin nerede bulunduğunu yapılandırabilirsiniz

oslpNone: bu varsayılandır, OpenSSL kitaplıkları ikili dosyanın bulunduğu klasörde veya bilinen bir yolda olmalıdır.

oslpDefaultFolder: tüm IDE kişilikleri için kütüphanelerin bulunması gereken openSSL yolunu otomatik olarak ayarlar.

oslpCustomFolder: seçilen seçenek buysa, tam yolu LibPathCustom özelliğinde tanımlayın.

LibPathCustom: LibPath = oslpCustomFolder olduğunda openSSL kütüphanelerinin bulunduğu tam yolu burada tanımlayın.

UnixSymLinks: Unix sistemlerinde SymLinks yüklemesini etkinleştirin veya devre dışı bırakın (varsayılan olarak etkindir, OSX64 hariç):

oslsSymLinksDefault: OSX64 dışında varsayılan olarak etkindir (MacOS Monterey'den sonra kütüphaneyi sürüm olmadan yüklemeye çalışırken başarısız olur).

oslsSymLinksLoadFirst: SymLinks'i yükle ve bunu sürüm kitaplıklarını yüklemeyi denemeden önce yap.

oslsSymLinksLoad: Sürüm kütüphanelerini yüklemeyi denedikten sonra SymLinks'i yükle.

oslsSymLinksDontLoad: SymLink'leri yükleme.

SChannel_Options: Windows Sertifika Deposundan bir sertifika kullanmanıza olanak tanır.

CertHash: sertifika Hash değeridir. Sertifika Hash değerini powershell'de bir dir komutu çalıştırarak bulabilirsiniz.

CertStoreName: sertifikanın saklandığı depo adı. Aşağıdakilerden birini seçin:

scsnMY (varsayılan)

scsnCA

scsnRoot

scsnTrust

CertStorePath: sertifikanın saklandığı depo yolu. Aşağıdakilerden birini seçin:

scspStoreCurrentUser (varsayılan)

scspStoreLocalMachine

 

LogOptions: bir dosya adı ayarlanırsa, HTTP istemcisinin HTTP isteklerinin/yanıtlarının günlüğünü kaydeder

 

Başvuru