11

How do you determine if a REST webservice is using Basic, Kerberos, NTLM, or one of the many other authentication methods?

4

3 に答える 3

11

認証されていないリクエストを送信すると、サービスは「HTTP/1.1 401 Unauthorized」で応答する必要があり、応答には、WWW-Authenticate期待される認証方式 ( Basic, Digest)、セキュリティ レルム、およびその他の特定の値 (Digets の nonce など)を指定するヘッダーが含まれます。 . したがって、サーバーが次のように応答する場合:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: Digest realm="example.com",
                        qop="auth,auth-int",
                        nonce="...",
                        opaque="..."

ダイジェスト認証が必要です。応答が次のようになっている場合:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="example.com"

次に、基本認証が必要です。一部の (不十分な) 実装のサーバー/サイトは Basic を正しく処理せず、最初にチャレンジする代わりに 403 Forbidden で直接応答します。

NTLM は、サーバーが 401 と WWW-Authenticate ヘッダーで値 を返すという点で似ていますNTLMが、Microsoft 独自のものであるため、公式の公開仕様はありません。さまざまなリバース エンジニアリングの記述があります。

残念ながら、REST には、アプリオリに使用される認証方式を発見するためのサービスの WSDL スタイルの記述が付属していません。

于 2010-08-11T23:57:47.380 に答える
4

リクエストを送信し、おそらく HTTP 401 コードを取得し、 ( RFC 2616に従って) レスポンスに含まれるWWW-Authenticateヘッダーを確認します。代わりに 403 やその他の奇妙なステータス、またはヘッダーの欠落が発生した場合は、コアの HTTP RFC に従わない Web サイトの作成者をののしり、トラフィックの盗聴を開始して、彼らが行った非標準的な混乱をリバース エンジニアリングしようとします時間;-)。MUSTWWW-Authenticate

于 2010-08-11T23:53:04.193 に答える
1

ブラック ボックスのシナリオの場合、通常はFiddlerに接続し、実際のトラフィックを調べます。

于 2010-08-11T23:49:25.527 に答える