OAuth2, üçüncü taraf uygulamaların HTTP protokolünü kullanarak kısıtlı kaynaklara erişmesine olanak tanır. RFC 6749, OAuth2 spesifikasyonunu kapsar. 4 rol vardır:
- Client
- Resource Owner
- Authorization Server
- Resource Server
OAuth2 Akışı
(A) İstemci, kaynak sahibinden yetkilendirme talep eder. Yetkilendirme talebi doğrudan kaynak sahibine (gösterildiği gibi) ya da tercihen aracı olarak yetkilendirme sunucusu aracılığıyla dolaylı olarak yapılabilir.
(B) İstemci, kaynak sahibinin yetkilendirmesini temsil eden bir kimlik bilgisi olan bir yetkilendirme grant'ı alır; bu, bu spesifikasyonda tanımlanan dört grant türünden biri kullanılarak veya bir uzantı grant türü kullanılarak ifade edilir. Yetkilendirme grant türü, istemcinin yetkilendirme talep etmek için kullandığı yönteme ve yetkilendirme sunucusunun desteklediği türlere bağlıdır.(C) İstemci, yetkilendirme sunucusuyla kimlik doğrulaması yaparak ve yetkilendirme grant'ını sunarak bir erişim token'ı talep eder.
(D) Yetkilendirme sunucusu istemcinin kimliğini doğrular ve yetkilendirme grant'ını doğrular; geçerliyse bir erişim token'ı verir.
(E) İstemci, kaynak sunucusundan korunan kaynağı talep eder ve erişim token'ını sunarak kimlik doğrulaması yapar.
(F) Kaynak sunucusu erişim token'ını doğrular ve geçerliyse isteğe yanıt verir.

OAuth2 WebSockets
sgcWebSockets, WebSocket istemci bileşeninde Bearer token'ları destekler. Yalnızca TsgcWebSocketClient içindeki Authentication ve Token özelliğini etkinleştirmeniz ve istemci sunucuya bağlandığında hangi token'ın gönderileceğini ayarlamanız gerekir.
Client := TsgcWebSocketClient.Create(nil); Client.Authentication.Enabled := True; Client.Authentication.Token.Enabled := True; Client.Authentication.Token.AuthName := 'Bearer'; Client.Authentication.Token.AuthToken := '<your token here>';
Bir sonraki sürüm olan sgcWebSockets 4.3.4'te, OAuth2 için yeni bir bileşen yayınlanacak ve OAuth2 kimlik bilgilerini otomatik olarak alabilecek.
