Nginx yetkilendirme (authentication) nasıl yapılır? (Temel kimlik doğrulama, istek ile kimlik doğrulama)

Giriş

Nginx, yüksek performanslı bir web sunucusu ve ters proxy olarak yaygın olarak kullanılmaktadır. Nginx, kullanıcıların belirli kaynaklara erişimini kontrol etmek için bir dizi yetkilendirme (authentication) yöntemi sunmaktadır. En yaygın yöntemler arasında temel kimlik doğrulama ve istek ile kimlik doğrulama bulunmaktadır. Bu yöntemler, uygulamaların güvenliğini artırmak ve yetkisiz erişimlerin önüne geçmek için kullanılabilir.

Temel Kimlik Doğrulama

Temel kimlik doğrulama, kullanıcıların bir kullanıcı adı ve şifre kullanarak kimliklerini doğrulamalarını gerektiren basit bir yöntemdir. Nginx ile temel kimlik doğrulama yapılandırmak için aşağıdaki adımlar izlenir:

1. Kimlik Doğrulama Dosyasının Oluşturulması: İlk olarak, kullanıcı adları ve şifrelerin saklanacağı bir dosya oluşturulmalıdır. Bu dosya, `htpasswd` komutu kullanılarak oluşturulabilir. Örneğin, `htpasswd` aracı ile yeni bir kullanıcı eklemek için aşağıdaki komut kullanılabilir:

“`bash
htpasswd -c /etc/nginx/.htpasswd kullanıcı_adı
“`

Bu komut, belirtilen dosyada `kullanıcı_adı` adlı bir kullanıcı için şifre belirlemeyi sağlar.

2. Nginx Yapılandırması: Ardından, Nginx yapılandırma dosyasında kimlik doğrulama ayarları yapılmalıdır. Aşağıdaki örnek yapılandırma, belirli bir dizine erişimi kısıtlamak için özelleştirilmiştir:

“`nginx
location /protected {
auth_basic “Restricted Area”;
auth_basic_user_file /etc/nginx/.htpasswd;
}
“`

Bu konfigürasyon ile `/protected` dizinine erişmek isteyen kullanıcıların, belirtilen kullanıcı adı ve şifreyi girmeleri gerekmektedir. `auth_basic` direktifi, korunan alanın adını tanımlarken, `auth_basic_user_file` ise kimlik doğrulama dosyasının yolunu belirtir.

3. Yeniden Yükleme: Yapılandırma dosyasında değişiklik yapıldıktan sonra, Nginx sunucusunu yeniden yüklemek gerekir. Bu işlem, değişikliklerin uygulanabilmesi için gereklidir:

“`bash
sudo systemctl reload nginx
“`

İstek ile Kimlik Doğrulama

İstek ile kimlik doğrulama yönteminde, kullanıcıların belirli bir erişim token’ı veya anahtarı sağlamaları gereklidir. Bu yöntem genellikle API erişiminde ve kullanıcıların belirli kaynaklara erişimlerini kontrol etmek için kullanılır. Token tabanlı bir kimlik doğrulama sistemi uygulamak için aşağıdaki adımlar izlenebilir:

1. Token Oluşturma: Kullanıcılara atanacak benzersiz token’lar oluşturulmalıdır. Bu işlem genellikle bir uygulama düzeyinde gerçekleştirilir. Token’lar, JWT (JSON Web Tokens) veya benzeri yöntemler ile oluşturulabilir.

2. Nginx Yapılandırması: Token doğrulama, Nginx üzerinde bir `location` bloğunda yapılabilir. Aşağıdaki örnek, belirtilen bir token’ın geçerliliğini kontrol eden bir yapılandırmayı göstermektedir:

“`nginx
location /api {
if ($http_authorization !~ “^Bearer (.+)$”) {
return 403;
}

Token kontrolü yapılmalıdır.
Geçerli bir token yoksa 403 hata dönebilir.
}
“`

Bu yapılandırma, başlıkta `Bearer token` olan isteklere izin verir. Eğer geçerli bir token yoksa, sunucu 403 (Forbidden) hatası dönecektir.

3. Gelişmiş Doğrulama: Gelişmiş senaryolarda, belirli bir token’ı doğrulamak için bir arka uç uygulama ya da başka bir servis kullanılabilir. Örneğin, Nginx bir proxy olarak yapılandırılabilir ve arka uç uygulama gerçek token doğrulamasını yapar. Bu durumda Nginx, arka uca iletilecek olan istekleri yönlendirebilir.

Güvenlik ve İzleme

Nginx üzerinde yetkilendirme yaparken, güvenlik en önemli faktördür. Temel kimlik doğrulamayı kullanırken, şifrelerin şifrelenmiş bir biçimde saklandığından emin olunmalıdır. Ayrıca, token temelli kimlik doğrulama sisteminin uygun şekilde yapılandırılması ve token sürelerinin yönetilmesi gereklidir.

Nginx, günlük dosyalarını yöneterek istekleri izlemek için kullanışlıdır. Günlük dosyaları, kullanıcı erişimlerini, hata mesajlarını ve olası bir saldırıyı tespit etmeye yardımcı olabilecek diğer bilgileri içerir. İzleme, sistemin güvenliğini artırmanın yanı sıra, sorunun hızla teşhis edilmesine olanak tanır.

Sonuç

Nginx üzerinde yetkilendirme yapmanın temel yolları, temel kimlik doğrulama ve istek ile kimlik doğrulamasıdır. Her iki yöntem de kullanıcıların belirli kaynaklara erişimini kontrol etmek için etkili araçlar sunmaktadır. Yapılandırma işlemleri dikkatle yapılmalı ve güvenlik her zaman öncelikli bir hedef olarak değerlendirilmelidir. Nginx’in yetkilendirme yetenekleri sayesinde, uygulama güvenliği optimize edilebilir ve kullanıcı deneyimleri geliştirilebilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR