OAuth scope nedir?
Kısa cevap
OAuth scope, uygulamanın kullanıcı adına hangi bilgilere ya da izinlere erişmek istediğini bildiren değerlerdir; authorization isteğinde boşlukla ayrılarak gönderilir, ör. openid email profile (RFC 6749 §3.3). Sağlayıcı kullanıcıya bu izinleri onaylatır ve verdiği token yalnızca onaylanan scope'lar için geçerlidir. OpenID Connect'te ID token istemek için openid scope'u zorunludur; email ve profile gibi scope'lar ilgili claim'leri getirir. TR7 AGS'de OAuth2 ve OpenID Connect türlerinde scope'lar OAuth Scopes alanına girilir. Hazır sağlayıcılarda alan boş bırakılırsa katalogdaki varsayılan scope'lar kullanılır, doldurulursa girilen değer geçerli olur; e-Devlet'te scope'lar ; ile ayrılır. Custom Provider'da Fetch Endpoints from Issuer kullanılırsa sağlayıcının duyurduğu openid, profile ve email scope'ları alana yazılır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| AGS → Authentication → Authentication Providers (OAuth2, OpenID Connect) | OAuth Scopes | Sağlayıcıdan istenen bilgi ve izinler |
| Aynı form | OAuth Provider (hazır sağlayıcı) | Alan boşken kullanılan varsayılan scope'ların katalogdan gelmesi |
| Aynı form (Custom Provider) | Fetch Endpoints from Issuer | Sağlayıcının duyurduğu kimlik scope'larının alana yazılması |
| Aynı form (Custom Provider) | User Info Parameters; {scope} yer tutucusu | Scope değerinin user info isteğine parametre olarak eklenmesi |
Hazır Sağlayıcılarda Varsayılan Scope'lar
| OAuth provider | Varsayılan scope |
|---|---|
| Google, Microsoft, GitLab, Keycloak, Okta, Auth0, LinkedIn | openid ile profile ve email |
| GitHub, GitHub Enterprise | read:user user:email |
| Apple; yalnızca OpenID Connect türünde | name email |
| X (Twitter) | users.read tweet.read offline.access |
public_profile email | |
| Yandex | login:email login:info login:avatar |
| e-Devlet | Kimlik-Dogrula (scope'lar ; ile ayrılır) |
Sık Karıştırılan Noktalar
- "Daha çok scope istemek zararsızdır." Gereksiz scope'lar kullanıcı onay ekranını ağırlaştırır ve ele geçirilen bir token'ın etkisini büyütür; yalnızca gereken bilgiler istenir.
- "Grup bilgisi her sağlayıcıdan kendiliğinden gelir." Grup ve rol gibi bilgiler çoğu sağlayıcıda ayrı bir scope ya da sağlayıcı tarafında ek ayar gerektirir; gelen claim'ler Custom User Attribute Mapping ile AGS alanlarına eşlenir.
- "OAuth scope, AGS'deki erişim kuralının kapsamıdır." OAuth scope sağlayıcıdan istenen izinlerdir; kullanıcının hangi uygulamaya erişeceği AGS akışındaki Decision Point, Allow ve Deny adımlarıyla belirlenir.
Dokümantasyonda nasıl yapılır
