nginxでHTTP認証を実装することは、基本的およびダイジェスト認証方法を使用して実行できます。これらをセットアップする方法に関する段階的なガイドを次に示します。
基本認証:
パスワードファイルの作成:まず、ユーザー名とパスワードを含むファイルを作成する必要があります。 htpasswd
コマンドを使用して、このファイルを作成および管理します。
<code>sudo htpasswd -c /etc/nginx/.htpasswd username</code>
これにより、指定されたユーザーのパスワードを入力するように求められます。 -c
フラグなしで追加のユーザーを追加できます。
nginxの構成: nginx構成ファイルを変更して、認証の詳細を含めます。サーバーまたはロケーションブロックに以下を追加します。
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; }</code>
これには/protected/
ディレクトリにアクセスするための認証が必要です。
nginxを再起動:変更を行った後、nginxを再起動して新しい構成を適用します。
<code>sudo systemctl restart nginx</code>
認証を消化する:
パスワードファイルの作成: Basic Authと同様に、パスワードファイルが必要です。 htdigest
などのツールを使用して作成できます。
<code>sudo htdigest -c /etc/nginx/.htdigest "Realm Name" username</code>
「レルムネーム」を希望のレルム名に置き換えます。
configure nginx: digest authには、 ngx_http_auth_digest_module
が必要です。これは、nginxのデフォルトビルドに含まれていない場合があります。あなたがそれを持っている場合、次のようにnginxを構成します:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; auth_digest_user_file /etc/nginx/.htdigest; }</code>
基本認証とダイジェスト認証の両方に独自のセキュリティの意味合いがあります。
基本認証:
認証を消化する:
比較:
Nginxの認証レルムは、一般名で認証を必要とするリソースをグループ化するために使用されます。これは、ユーザー管理の改善に役立ち、ユーザーがアクセスしているものについて明確なコンテキストを提供します。認証領域を使用するようにNginxを構成する方法は次のとおりです。
領域を使用した基本認証:
<code class="nginx">location /protected/ { auth_basic "Restricted Area"; # This is the realm name auth_basic_user_file /etc/nginx/.htpasswd; }</code>
引用符のテキストは、認証プロンプト中にユーザーに表示されるレルム名です。
領域で認証を消化する:
<code class="nginx">location /protected/ { auth_digest "Restricted Area"; # This is the realm name auth_digest_user_file /etc/nginx/.htdigest; }</code>
Basic Authと同様に、引用符のテキストは領域名です。
複数の領域:
さまざまな場所に異なるレルムをセットアップして、サーバーのさまざまな部分へのアクセスを管理できます。
<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>
この例では、管理者とユーザーの領域に異なる領域と異なるパスワードファイルを使用して、ユーザー管理を強化しています。
Nginxは、同じロケーションブロック内で基本認証と消化認証を組み合わせることをネイティブにサポートしていませんが、異なる認証方法で個別の場所を設定することにより、強化されたセキュリティの形式を実現できます。構成方法は次のとおりです。
敏感な領域の基本的な認証:
<code class="nginx">location /less_sensitive/ { auth_basic "Less Sensitive Area"; auth_basic_user_file /etc/nginx/.htpasswd_less_sensitive; }</code>
より敏感な領域のためのAuthを消化します:
<code class="nginx">location /more_sensitive/ { auth_digest "More Sensitive Area"; auth_digest_user_file /etc/nginx/.htdigest_more_sensitive; }</code>
フォールバック認証:
ユーザーがコンテンツにアクセスするためのフォールバック方法を持っている場合は、代替認証方法を備えた別の場所を設定できます。
<code class="nginx">location /fallback/ { auth_basic "Fallback Area"; auth_basic_user_file /etc/nginx/.htpasswd_fallback; }</code>
このセットアップでは、同じ場所内の2つの方法を技術的に組み合わせていませんが、サーバーのさまざまな領域の基本認証とダイジェスト認証の両方の強度を活用して、データの感度に基づいて適切な認証メカニズムを提供することによりセキュリティを強化することができます。
以上がNginxにHTTP認証(Basic Auth、Digest Auth)を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。