Nginxユーザー認証ページの設定方法

PHPz
リリース: 2023-05-12 08:10:11
転載
2403 人が閲覧しました

序文

アプリケーション シナリオ: おそらく内部 Web サイトには外部ユーザーがアクセスする必要があり、同時に訪問者には Web サイト アカウントの権限を与えることができないため、次のような制限が課されます。 nginxのレベル。たとえば、アウトソーシングプロジェクトでは、社内の従業員はドキュメントを操作するためのアカウントを持っていますが、外注先の従業員は社内のアカウントを持っていませんが、ドキュメントを参照できる必要があるため、nginx レベルでユーザー認証を設定することが最も簡単で最良のオプションです。ほとんどの場合、雇用主は外注先の従業員に対して基本的なアクセス権を持つアカウントを開設しません。

nginx レベルでのユーザー認証の前提条件: apache2-utils (debian、ubuntu) や httpd-tools (rhel/centos/oracle linux) など、対応するパスワード作成プログラムが必要です。オペレーティング システムは異なります。異なるソフトウェア。

アカウント パスワード ファイルの作成

  • コマンド sudo htpasswd -c /etc/apache2/.htpasswd user1 ## を使用します。 #最初のアカウントを作成し、Enter キーを押してパスワードを入力します。同じコマンドには、2 番目のユーザーとパスワードを作成するための -c パラメータはありません。-c パラメータはファイルを作成するためのものです。繰り返す必要はありません。 2回目以降のコマンドでファイルを作成します。

  • ファイルとアカウント情報が正常に生成されたことを確認します。コマンド cat /etc/apache2/.htpasswd を使用してファイルの内容を表示します。これはアカウント番号と暗号化されたパスワードであるはずです。例:

    user1 :$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0 など。

http 基本ユーザー認証用に nginx を構成する

auth_basic ディレクティブを使用して、保護領域の名前を指定します。この名前は、アカウントとパスワードのポップアップ ウィンドウで、auth_basic_user_file コマンドを使用して、アカウントとパスワードの情報を含む .htpasswd パスを設定します。たとえば、構成:

location /api {
 auth_basic   "administrator's area";
 auth_basic_user_file /etc/apache2/.htpasswd; 
}
ログイン後にコピー

さらに、ブロックが認証システム全体を継承したくない場合は、ブロック内で auth_basic をオフに設定できます。つまり、ユーザー認証がオフになります。設定例:

server {
 ...
 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;

 location /public/ {
  auth_basic off;
 }
}
ログイン後にコピー

認証と IP アドレスによるアクセス制限の組み合わせ

http 基本認証は、IP アドレスによるアクセス制限と効果的に組み合わせることができます。少なくとも 2 つのシナリオを実装できます。

  • ユーザーは認証され、IP アクセスが必要です。

  • ユーザーは認証されるか、IP アクセスが必要です。許可

1. 指定した IP へのアクセスを許可または制限するには、allow ディレクティブと拒否ディレクティブを使用します。たとえば、次のように設定します。 192.168.1.2 アドレス その他のネットワークの場合は、192.168.1.1/24 へのアクセスのみが許可されます。注: 許可ディレクティブと拒否ディレクティブは、定義された順序で適用されます。


IP および http 認証を介して制限を満足ディレクティブと組み合わせます。ディレクティブが all に設定されている場合、クライアントがこれら 2 つの条件を満たしたときにアクセスが許可されます。ディレクティブが any に設定されている場合、クライアントが少なくとも 1 つの条件 (例: 構成) を満たしていればアクセスが許可されます。

location /api {
 #... deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;
}
ログイン後にコピー

上記は完全な例にまとめることができます:

location /api {
 #... satisfy all; 

 deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;

 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;
}
ログイン後にコピー

最終的な効果は次のとおりです:

以上がNginxユーザー認証ページの設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!