1. ホーム
  2. basic-authentication

[解決済み】HTTP基本認証 - 期待されるWebブラウザの体験とは?

2022-04-03 16:31:31

質問

サーバーがHTTP基本認証でアクセスを許可する場合、どのような体験が期待されますか? ウェブブラウザで ?

Web ブラウザを無視して、Basic Auth リクエストを作成する方法を説明します。 curl :

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

しかし、ウェブブラウザではどうでしょうか?私がいくつかのウェブサイトで見たのは、私がそのURLにアクセスすると、サーバーがレスポンスコード401を返すというものでした。ブラウザは、ユーザー名とパスワードのプロンプトを表示します。

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

解決方法は?

皆さんが混乱しないように、質問を2つに分けて再構成します。

第一に: BASIC認証を使って、ブラウザで認証されたHTTPリクエストを行うにはどうすればよいのでしょうか? .

ブラウザでは、まずプロンプトが来るのを待つか、この書式に従えばURLを編集することでhttp basic authを行うことができます。 http://myusername:[email protected]

注:コマンドラインと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:[email protected]/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では、認証のプロンプトがまったく表示されず、認証されていないというページが表示されるだけなんです。somesiteがBasic Authワークフローを正しく実装していないのか、それとも他に何か必要なことがあるのでしょうか?"。

curlのドキュメントによると -u オプションは多くの認証方式に対応していますが、デフォルトはBasicです。