2017-07-25 15 views
0

複数の認証方式(OAuth,、およびBasic)をサポートするREST APIを開発中です。 Authorizationヘッダが存在しないか、またはサポートされていないスキームが含まれている場合は、サービスが複数でWWW-Authenticateヘッダを応答します。複数認証スキームとWWW認証チャレンジ

WWW-Authenticate: OAuth realm="myRealm" 
WWW-Authenticate: Bearer realm="myRealm" 
WWW-Authenticate: Basic realm="myRealm" 

要求がAuthorizationサポートスキームのいずれかを含むヘッダーが、無効な資格情報が含まれている場合は、私のサービスはで応答しなければなりませんすべてWWW-Authenticateスキームをサポートしていますか、またはちょうどのリクエストで提供されていますか?

は例えば、クライアントが提供している場合:

Authorization: Bearer invalid 

私のサービスはちょうどBearer課題に対応すべき?

WWW-Authenticate: Bearer realm="myRealm", error="invalid_token", error_description="token is malformed or represents invalid credentials" 

またはすべてWWW-Authenticate件のチャレンジで対応する必要がありますか?

WWW-Authenticate: Bearer realm="myRealm", error="invalid_token", error_description="token is malformed or represents invalid credentials" 
WWW-Authenticate: OAuth realm="myRealm" 
WWW-Authenticate: Basic realm="myRealm" 

EDIT:RFC 7235その具体的ではないが、提案を提供しているようです。それに応じてanswerを追加しました。

+0

質問:なぜ*すべて*を送信しないのですか? –

+0

私は仕様で明確な指針を見つけられず、試行されたもの以外の他のスキーム/領域にも問題を追加すると、発信者を混乱させる可能性があります。それは、私が同意すると言っている、そうでない理由は十分ではありません。それに応じて[回答](https://stackoverflow.com/questions/45307985/multiple-authentication-schemes-and-www-authenticate-challenges/45335224#answer-45335224)を追加しました。 – shelley

答えて

1

は、RFC 7235すべてサポートされている認証スキームが返されるべきであることを示唆しているようです。これにより、発信者にこれらのヘッダーを適切に解析できるという条件で最も多くの情報が提供されます。

4.1。 WWW-Authenticate

「WWW-Authenticate」ヘッダーフィールドは、認証 スキームと対象リソースに適用可能なパラメータを示します。

WWW認証= 1つの#チャレンジ

401(不正な)応答を生成するサーバは、少なくとも一つの挑戦を含む WWW-Authenticateヘッダフィールドを送らなければなりません。 サーバは、他の応答 メッセージにWWW-Authenticateヘッダーフィールドを生成して、資格情報の提供(または別の 資格情報)が応答に影響を与える可能性があることを示すことがあります。

-2

オーセンティケータは、リンク確立フェーズ中にConfigure-Requestで使用される認証プロトコルを指定します。 RFC1994

更新RFC7235は言う:

注:多くのクライアントが未知のスキームが含まれている課題を解析するために失敗することがあります。この問題を回避するには、最初に適切にサポートされているスキーム(「basic」など)をリストすることです。それは厳密には必須ではありませんが、

+0

この回答は、HTTPプロトコルまたはRESTfulサービスに関連しないCHAPプロトコルを指します。 – shelley

+0

あなたは正しいです。 HTTPは簡単なチャレンジ/レスポンス認証フレームワークを提供します。正解は次のようにする必要があります。まず、すべてのスキームと適切にサポートされているスキームのリストを提供します。 – ExploitFate

関連する問題