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.

5 dk okuma
Authorization

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:

  1. Kullanıcı Giriş Yapar: E-posta ve şifre gibi kimlik bilgileriyle sistemin authentication katmanını geçer.
  2. 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.
  3. İ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.
  4. 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.

Authorization ve authentication arasında ne fark vardır?+
Authentication kimliğinizi doğrulayan süreçtir (şifre girişi gibi), authorization ise doğrulama sonrasında hangi işlemleri yapabileceğinizi belirleyen kontrol mekanizmasıdır. Biri giriş sağlar, diğeri giriş sonrasında erişim sınırlarını belirler.
OAuth 2.0 nedir ve nasıl çalışır?+
OAuth 2.0, üçüncü taraf uygulamalara şifre paylaşmadan sınırlı erişim izni veren bir protokoldür. Örneğin "Google ile oturum aç" seçeneğini kullandığınızda, uygulama Google'a yönlendirilir, Google verilerinize erişmeyi onaylar ve sizi geri gönderir. Şifrenizi hiç paylaşmadığınız halde erişim sağlanmış olur.

A harfindeki diğer terimler