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