OAuth 2.0 nedir?
Kısa cevap
OAuth 2.0, kullanıcının parolasını paylaşmadan bir uygulamaya kendi adına sınırlı erişim yetkisi verdiği authorization framework'üdür (RFC 6749); "Google ile giriş yap" türü akışların temelidir. Authorization code akışında kullanıcı sağlayıcının authorization sayfasına yönlendirilir ve orada giriş yapıp onay verir; uygulama geri döndüğünde aldığı authorization code'u sağlayıcının token endpoint'inde access token ile değiştirir. TR7 AGS'de OAuth2 türündeki Authentication Provider bu akışı işletir ve kullanıcı bilgisini aldığı access token ile sağlayıcının user info endpoint'inden okur; parola TR7'ye hiç gelmez. OAuth Provider alanında e-Devlet, Google, Microsoft, GitHub, GitLab, Keycloak, Okta gibi hazır sağlayıcılar ya da adresleri elle girilen Custom Provider seçilir. Sağlayıcı OpenID Connect destekliyorsa kimliği imzalı ID token'dan okuyan OpenID Connect türü tercih edilir.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| AGS → Authentication → Authentication Providers | Provider Type = OAuth2; OAuth Provider (hazır sağlayıcı ya da Custom Provider) | Harici sağlayıcıyla giriş |
| Aynı form (Custom Provider) | Authorization URL, Token URL, User Info URL, Fetch Endpoints from Issuer | Sağlayıcının endpoint'leri; hazır sağlayıcılarda katalogdan gelir |
| Aynı form | Client ID, Client Secret, OAuth Scopes, Redirect URI | Sağlayıcıdaki uygulama kaydının bilgileri |
| Aynı form (Custom Provider) | Client Authentication, Enable PKCE, User Info Request Method | Token ve user info isteklerinin biçimi |
| Aynı form | Revoke Tokens on Logout, Sign Out from Provider on Logout | Çıkışta token'ların iptali ve sağlayıcıdaki oturumun kapatılması |
| AGS etkin vService → Flowchart | Authentication Provider adımı | OAuth2 sağlayıcısının erişim akışına eklenmesi |
Nasıl Çalışır?
- Kullanıcı AGS etkin vService'e gelir; akıştaki OAuth2 adımı onu sağlayıcının Authorization URL adresine yönlendirir.
- Kullanıcı sağlayıcıda giriş yapar ve istenen scope'lara onay verir.
- Sağlayıcı kullanıcıyı authorization code ile Redirect URI adresine geri gönderir.
- TR7 code'u Client ID ve Client Secret ile Token URL'de access token'a çevirir.
- TR7 access token ile User Info URL'den kullanıcı bilgisini okur; bilgiler oturuma yazılır ve akış devam eder.
Sık Karıştırılan Noktalar
- "OAuth 2.0 bir authentication protokolüdür." OAuth 2.0 erişim yetkisi devri içindir; kullanıcının kimliğini standart biçimde ve imzalı olarak OpenID Connect taşır (OpenID Connect (OIDC) nedir?).
- "OAuth akışında TR7 kullanıcının parolasını alır." Parola yalnızca sağlayıcının sayfasında girilir; TR7 yalnızca code ve token görür.
- "Hazır sağlayıcı seçmek uygulama kaydını gereksiz kılar." Hazır sağlayıcı yalnızca endpoint adreslerini ve varsayılanları getirir; Client ID ve Client Secret için sağlayıcıda uygulama kaydı yine oluşturulur ve Redirect URI oraya yazılır.
Dokümantasyonda nasıl yapılır
