261

サーバーが基本 HTTP 認証を介したアクセスを許可する場合、Web ブラウザーでどのようなエクスペリエンスが期待されますか?

しばらく Web ブラウザを無視して、次のように Basic Auth リクエストを作成しますcurl

curl -u myusername:mypassword http://somesite.com

しかし、Web ブラウザではどうでしょうか。一部の Web サイトで見たのは、URL にアクセスすると、サーバーが応答コード 401 を返したことです。ブラウザは、ユーザー名とパスワードのプロンプトを表示します。

ただし、somesite.com では、認証プロンプトがまったく表示されず、認証されていないというページだけが表示されます。どこかのサイトが Basic Auth ワークフローを正しく実装していませんでしたか、それとも他に何かする必要がありますか?

4

6 に答える 6

162

誰もが混乱しないように、質問を 2 つの部分に分けて再構成します。

最初:「BASIC認証を使用して、ブラウザで認証済みのHTTPリクエストを作成するにはどうすればよいですか?」.

ブラウザーでは、プロンプトが表示されるのを待つか、次の形式に従う場合は URL を編集して、最初に http 基本認証を行うことができます。http://myusername:mypassword@somesite.com

注意:コマンドラインとcurlがインストールされている場合、質問に記載されているcurlコマンドはまったく問題ありません。;)

参考文献:

また、CURLのマニュアルページによるとhttps://curl.haxx.se/docs/manual.html

HTTP

  Curl also supports user and password in HTTP URLs, thus you can pick a file
  like:

      curl http://name:passwd@machine.domain/full/path/to/file

  or specify user and password separately like in

      curl -u name:passwd http://machine.domain/full/path/to/file

  HTTP offers many different methods of authentication and curl supports
  several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which
  method to use, curl defaults to Basic. You can also ask curl to pick the
  most secure ones out of the ones that the server accepts for the given URL,
  by using --anyauth.

  NOTE! According to the URL specification, HTTP URLs can not contain a user
  and password, so that style will not work when using curl via a proxy, even
  though curl allows it at other times. When using a proxy, you _must_ use
  the -u style for user and password.

2 番目の本当の質問は、「しかし、somesite.com では、認証プロンプトがまったく表示されず、認証されていないというページだけが表示されます。あるサイトは基本認証ワークフローを正しく実装していませんでしたか、それとも何かありますか?」他に私がしなければならないことはありますか?」

curl のドキュメントによると、この-uオプションは多くの認証方法をサポートしており、Basic がデフォルトです。

于 2013-10-24T13:32:38.297 に答える
15

古い無効なユーザー名/パスワードがブラウザーにキャッシュされている可能性があります。それらをクリアして、もう一度確認してください。

IE を使用していて、somesite.com がイントラネット セキュリティ ゾーンにある場合、IE が Windows 資格情報を自動的に送信している可能性があります。

于 2010-01-12T02:14:41.367 に答える
9

WWW 認証ヘッダー

サーバーが 401 応答コードを送信しているが、WWW-Authenticate ヘッダーを正しく設定していない場合にも、これが発生する可能性があります。VB アプリが認証プロンプトをポップアップしていなかったため、独自のコードで修正したばかりです。

于 2010-04-07T16:42:29.950 に答える
7

要求ヘッダーに資格情報が提供されていない場合、IE がユーザーに資格情報の入力を求め、要求を再送信するために最低限必要な応答は次のとおりです。

Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");
于 2012-10-26T02:29:53.167 に答える
5

Chrome 用のプラグインである Postman を使用できます。各リクエストに必要な認証タイプを選択できます。そのメニューでは、ユーザーとパスワードを構成できます。Postman は、構成を、リクエストと共に送信される認証ヘッダーに自動的に変換します。

于 2015-11-11T12:35:26.640 に答える