Authorization Nedir? Tanımı, Nasıl Çalışır ve Kullanım Alanları
Authorization, kimliği doğrulanmış bir kullanıcının hangi kaynaklara ve işlemlere erişebileceğini belirleyen erişim kontrol sistemidir. Şifre doğrulama (authentication) gerçekleştikten sonra uygulanır. Kurumsal sistemlerde, bulut hizmetlerinde ve mobil uygulamalarda veri güvenliğini sağlamak için kullanılır.
Authorization, kullanıcının kimliği doğrulandıktan sonra hangi kaynaklara erişebileceğini ve hangi işlemleri gerçekleştirebileceğini belirleyen güvenlik mekanizmasıdır. Türkçe'de "yetkilendirme" veya "erişim kontrolü" olarak adlandırılır. Authentication (kimlik doğrulama) ile sıkça karıştırılsa da, authorization daha sonraki aşamada devreye girer ve sistemi koruyan kritik bir güvenlik katmanıdır.
Authorization ve Authentication Arasındaki Fark
Birçok kişi authorization ile authentication terimlerini eş anlamda kullanır, ancak iki kavram farklı işlevlere sahiptir:
- Authentication (Kimlik Doğrulama): "Sen kimsin?" sorusuna cevap verir. Kullanıcının söylediği kişi olup olmadığını kontrol eder. E-posta/şifre, parmak izi, yüz tanıma gibi yöntemlerle gerçekleştirilir.
- Authorization (Yetkilendirme): "Ne yapabilirsin?" sorusuna cevap verir. Doğrulanmış kullanıcının hangi işlemleri gerçekleştirebileceğini kontrol eder. Örneğin admin mi, kullanıcı mı, moderatör mü olduğunu belirler.
"Authentication kimliğinizi ispatlayan kapıcıdır, authorization ise kapıdan sonra hangi odaları açmanıza izin veren rehberdir."
Authorization Nasıl Çalışır?
Authorization süreci adım adım şöyle ilerlenir:
- Kullanıcı Giriş Yapar: E-posta ve şifre gibi kimlik bilgileriyle sistemin authentication katmanını geçer.
- Token/Session Oluşturulur: Sistem, kullanıcının kimliğini ve rolünü içeren bir token veya session oluşturur. Bu bilgi genellikle veritabanında depolanır.
- İzin Kontrol Edilir: Kullanıcı bir kaynağa veya işleme erişmeye çalıştığında, sistem kullanıcının token'ındaki bilgileri kontrol eder.
- Erişim Veya Reddedilir: Kullanıcının rolü ve izinleri talep ettiği işleme uygunsa erişim sağlanır, uygun değilse "403 Forbidden" veya benzer hata mesajı döndürülür.
Authorization Türleri
Authorization uygulaması birkaç farklı model üzerinden gerçekleştirilebilir:
| Model | Açıklama | Örnek Kullanım |
|---|---|---|
| Role-Based Access Control (RBAC) | Kullanıcıların rollere (admin, editör, ziyaretçi) atanması ve her rolle ilişkili izinlerin tanımlanması | WordPress, Jira, İş yönetim platformları |
| Attribute-Based Access Control (ABAC) | Kullanıcı özellikleri, kaynak özellikleri ve ortam koşullarına göre karar verme | Kurumsal ağ yönetimi, AWS politikaları |
| Access Control List (ACL) | Her kaynağa yapılacak işlemlerin listesi ve bu işlemleri kimin yapabileceğinin belirtilmesi | Dosya sistemleri, kamu bulut hizmetleri |
| OAuth 2.0 | Üçüncü taraf uygulamalara sınırlı erişim izni verme. Parolayı paylaşmadan yetkilendirme | Google ile oturum açma, Facebook uygulamaları |
| JWT (JSON Web Token) | Şifrelenmiş token kullanarak stateless authorization gerçekleştirme | Mobil uygulamalar, API'ler, modern web uygulamaları |
Authorization Nerede Kullanılır?
Authorization, hemen hemen tüm dijital hizmetlerin temelini oluşturur:
- Sosyal Medya Platformları: Kullanıcı profili, takip edilen kişilerin gönderileri görme, mesaj gönderme izinleri
- E-ticaret Siteleri: Admin paneline erişim, satış temsilcilerine ürün güncelleme izni, müşterilere sadece kendi siparişlerini görme hakkı
- Kurumsal Yazılımlar: Muhasebe departmanının mali raporlara erişmesi, İK'nın personel bilgilerine erişmesi
- Bulut Hizmetleri (AWS, Google Cloud, Azure): Farklı kullanıcılara farklı kaynakları yönetme izinleri
- Mobil Uygulamalar: Uygulamanın kamera, konum, fotoğraf kütüphanesi gibi cihaz özelliklerine erişim izinleri
- Sağlık Bilişim Sistemleri: Doktorlara hasta kayıtları, hemşirelere laboratuvar sonuçları, laboratuvar teknisyenlerine test siparişleri görme izinleri
Authorization'ın Avantajları
- Güvenlik Sağlar: Yetkisiz kişilerin hassas bilgilere erişmesini engeller.
- Veri Gizliliği: Her kullanıcı sadece ihtiyacı olan bilgilere erişebilir (least privilege prensibi).
- Kontrolü Merkezileştirir: Yönetici, kim hangi işlemi yapabileceğini merkezi bir noktadan belirler.
- Uyumluluğu Sağlar: GDPR, HIPAA gibi yasal düzenlemelere uyumlu sistemler oluşturmayı mümkün kılar.
- Kullanıcı Deneyimini İyileştirir: Her rol kendi ihtiyaçlarına uygun bir arayüz sunulabilir.
- Denetim Kaydı Tutulabilir: Kimin ne zaman ne yaptığı kaydedilerek sorumluluk belirlenir.
Authorization'ın Dezavantajları
- Karmaşıklık: Çok sayıda rol ve izin yönetimi hata riskini artırır.
- Yönetim Yükü: İzin değişiklikleri manuel olarak gerçekleştirilirse zaman alıcıdır.
- Yanlış Yapılandırma Riski: Dengesiz izin ayarları güvenlik açığı oluşturabilir.
- Performans Etkisi: Her işlemde izin kontrolü yapılması sistemin hızını düşürebilir.
- İzin Iptali Sorunları: Bir çalışan ayrılınca tüm izinlerini geri almak unutulabilir.
Authorization İyi Uygulamaları
- Principle of Least Privilege (En Az Ayrıcalık Prensibi): Kullanıcılara sadece ihtiyacı olan minimum izinleri verin.
- Rol Tanımlarını Belirleyin: Kurumda kaç farklı rol olacağını önceden planlayın.
- Düzenli Denetim Yapın: Kullanıcı izinlerini periyodik olarak kontrol edin.
- Çok Katmanlı (Multi-Layer) Yapı Kurun: Kritik işlemler için birden fazla onay mekanizması kullanın.
- Denetim Logları Tutun: Kim hangi kaynağa erişti, ne değiştirdi tüm işlemleri kaydedin.
- Şifreleme Kullanın: Token ve session bilgilerini şifreleyerek aktarın.
- Zaman Sınırı Belirleyin: Session ve token'ların belirli süre sonra sona ermesini sağlayın.
Authorization'ın Örnek Senaryoları
Senaryo 1: Bankacılık Uygulaması
Müşteri, şifre giriş yaparak authentication aşamasını geçer (kimlik doğrulama). Ardından authorization kontrol edilir: müşteri sadece kendi hesaplarını görebilir, başkasının hesabına erişemez. Gişe görevlisi ise hem kendi hem müşteri hesaplarını görebilir ama para transferi başlatamaz. Müdür seviyesi yönetici tüm işlemleri yapabilir.
Senaryo 2: E-öğrenme Platformu
Öğretmen dersleri yayınlar ve ödevleri kontrol eder. Öğrenci sadece kayıtlı olduğu dersleri görebilir, başka dersleri göremez. Yönetici ise tüm dersleri ve öğretmenleri yönetebilir. Burada authorization, her kullanıcının rolüne uygun erişim sağlar.