"Enter"a basıp içeriğe geçin

NGINX HTTP Temel Kimlik Doğrulaması ile Erişim Kontrolü

Last updated on 10 Eylül 2020

HTTP Temel Kimlik Doğrulamasını kullanarak belirli yollar için kimlik doğrulamasını nasıl gerektirebileceğimize bir göz atalım.

Bu işlemlerde ihtiyacımız olan nginx module ve direktiflerin kaynak bilgilerini aşağıda paylaşıyorum.

Temel Kimlik Doğrulama Modülünü Kullanma

HTTP temel kimlik doğrulaması, bir kullanıcının belirli bir URL’ye erişmesine izin vermeden önce bir kullanıcı adı ve parola istememizi sağlar. NGINX’i HTTP temel kimlik doğrulaması ile kurmak için, auth_basic modülünü kullanacağız. Belirli location bloklarının temel kimlik doğrulamasını kullanırken diğerlerinin kullanmadığını belirtebiliriz. Belirli bir HTML dosyasının erişilebilir olmasını engelleyecek yeni bir konum bloğu oluşturalım:

/etc/nginx/conf.d/default.conf

server {
    listen 80 default_server;
    server_name _;
    root /usr/share/nginx/html;

location = /admin.html {
    auth_basic "Login Required";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

error_page 404 /404.html;
error_page 500 501 502 503 504 /50x.html;

}

Location = /admin.html, birisi /admin.html yoluna giderse ve tam olarak eşleşirse ne olacağını belirleme yapılandırmamızdır. Oradan, bir dizin kullanarak (herhangi bir dizin olur) auth_basic için bir değer belirleyebiliriz ve erişimi olan kullanıcı adı / şifre çiftlerini içeren dosyanın yolunu belirtiriz.

Şimdi erişebileceğimiz admin.html dosyasını oluşturmamız gerekiyor ve şimdi test edersek erişilebilir olacak:

[root] $ echo "<h1>Admin Page</h1>" > /usr/share/nginx/html/admin.html

Parola Dosyası Oluşturma

Yapılandırmamız şu anda geçerli, ancak henüz üzerinde çalışabileceğimiz bir şifre dosyamız yok. .htpasswd dosyamızı oluşturmak için httpd araçlarını yükleyeceğiz:

[root] $ yum install -y httpd-tools

Not: Debian tabanlı bir sistemde bunun yerine apache2-utils paketini kurarsınız.

Bu araçlar kurulduktan sonra artık bizim için kullanıcılarımız için şifrelenmiş şifrelerle bir dosya oluşturabilen htpasswd yardımcı programına erişebiliriz.

Şimdi dosyayı oluşturalım:

[root] $ htpasswd -c /etc/nginx/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin

Oluşturulan bu dosya ile artık NGINX yapılandırmamızı yeniden yüklemeye ve tarayıcımızda kimlik doğrulamamızı test etmeye hazırız.

[root] $ systemctl reload nginx

Şimdi tarayıcıda /admin.html yoluna giderseniz, bir şifre girmeniz istenir.

CURL ile HTTP Temel Kimlik Doğrulamasını kullanma

Yönetici sayfasına tarayıcı olmadan erişmek istiyorsak, curl kullanarak istekteki Yetkilendirme başlığını geçebiliriz. Başlık olmadan istek şu şekilde görünür:

[root] $ curl localhost/admin.html
401 Authorization Required

Curl için -u etiketini kullanırsak, kullanıcı adı ve parolayı a :: ile bölerek geçirebiliriz.

[root] $ curl -u admin:123456Aa localhost/admin.html
Admin Page

Başka bir yazımızda görüşmek üzere,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.