Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimanakah saya melaksanakan pengesahan HTTP (Auth Basic, Digest Auth) dalam Nginx?
Melaksanakan pengesahan HTTP di Nginx boleh dilakukan dengan menggunakan kaedah pengesahan asas dan mencerna. Berikut adalah panduan langkah demi langkah mengenai cara menetapkannya:
Pengesahan Asas:
Buat fail kata laluan: Pertama, anda perlu membuat fail yang mengandungi nama pengguna dan kata laluan. Gunakan arahan htpasswd
untuk membuat dan menguruskan fail ini.
<code>sudo htpasswd -c /etc/nginx/.htpasswd username</code>
Ini akan meminta anda memasukkan kata laluan untuk pengguna yang ditentukan. Pengguna tambahan boleh ditambah tanpa bendera -c
.
Konfigurasikan Nginx: Ubah suai fail konfigurasi Nginx anda untuk memasukkan butiran pengesahan. Tambahkan yang berikut ke pelayan atau blok lokasi anda:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Ini memerlukan pengesahan untuk mengakses /protected/
direktori.
Mulakan semula nginx: Setelah membuat perubahan, mulakan semula nginx untuk memohon konfigurasi baru:
<code>sudo systemctl restart nginx</code>
Pengesahan Digest:
Buat fail kata laluan: Sama dengan asas auth, anda memerlukan fail kata laluan. Anda boleh menggunakan alat seperti htdigest
untuk menciptanya:
<code>sudo htdigest -c /etc/nginx/.htdigest "Realm Name" username</code>
Gantikan "Nama Realm" dengan nama Realm yang anda inginkan.
Konfigurasi Nginx: Digest Auth memerlukan ngx_http_auth_digest_module
, yang mungkin tidak dimasukkan ke dalam binaan lalai nginx. Sekiranya anda memilikinya, konfigurasikan nginx seperti berikut:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; auth_digest_user_file /etc/nginx/.htdigest; }</code>
Kedua -dua pengesahan asas dan pencernaan mempunyai implikasi keselamatan mereka sendiri:
Pengesahan Asas:
Pengesahan Digest:
Perbandingan:
Alam Pengesahan di Nginx digunakan untuk sumber kumpulan yang memerlukan pengesahan di bawah nama biasa. Ini dapat membantu dalam pengurusan pengguna yang lebih baik dan memberikan konteks yang jelas kepada pengguna tentang apa yang mereka akses. Inilah cara mengkonfigurasi Nginx untuk menggunakan Alam Pengesahan:
Pengesahan Asas dengan Realm:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; # This is the realm name auth_basic_user_file /etc/nginx/.htpasswd; }</code>
Teks dalam petikan adalah nama alam yang akan ditunjukkan kepada pengguna semasa prompt pengesahan.
Pengesahan Digest dengan Realm:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; # This is the realm name auth_digest_user_file /etc/nginx/.htdigest; }</code>
Sama seperti Auth Basic, teks dalam petikan adalah nama alam.
Pelbagai alam:
Anda boleh menyediakan alam yang berbeza untuk lokasi yang berbeza untuk menguruskan akses ke bahagian pelayan yang berlainan.
<code class="nginx">location /admin/ { auth_basic "Admin Area"; auth_basic_user_file /etc/nginx/.htpasswd_admin; } location /user/ { auth_basic "User Area"; auth_basic_user_file /etc/nginx/.htpasswd_user; }</code>
Contoh ini menggunakan alam yang berbeza dan fail kata laluan yang berbeza untuk admin dan kawasan pengguna, meningkatkan pengurusan pengguna.
Walaupun Nginx tidak menyokong secara asli menggabungkan pengesahan asas dan mencerna dalam blok lokasi yang sama, anda boleh mencapai bentuk keselamatan yang dipertingkatkan dengan menubuhkan lokasi berasingan dengan kaedah pengesahan yang berbeza. Inilah cara anda boleh mengkonfigurasinya:
Asas Auth untuk Kawasan Kurang Sensitif:
<code class="nginx">location /less_sensitive/ { auth_basic "Less Sensitive Area"; auth_basic_user_file /etc/nginx/.htpasswd_less_sensitive; }</code>
Digest Auth untuk kawasan yang lebih sensitif:
<code class="nginx">location /more_sensitive/ { auth_digest "More Sensitive Area"; auth_digest_user_file /etc/nginx/.htdigest_more_sensitive; }</code>
Pengesahan Fallback:
Jika anda mahu pengguna mempunyai kaedah sandaran untuk mengakses kandungan, anda boleh menyediakan lokasi yang berasingan dengan kaedah pengesahan alternatif:
<code class="nginx">location /fallback/ { auth_basic "Fallback Area"; auth_basic_user_file /etc/nginx/.htpasswd_fallback; }</code>
Walaupun persediaan ini tidak secara teknikal menggabungkan kedua -dua kaedah dalam lokasi yang sama, ia membolehkan anda memanfaatkan kekuatan kedua -dua asas dan pencerna pengesahan untuk pelbagai bidang pelayan anda, meningkatkan keselamatan dengan menyediakan mekanisme pengesahan yang sesuai berdasarkan kepekaan data.
Atas ialah kandungan terperinci Bagaimanakah saya melaksanakan pengesahan HTTP (Auth Basic, Digest Auth) dalam Nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!