web-dev-qa-db-ja.com

REST APIでのAuthorizationヘッダーのカスタム使用

私はREST apiを構築しています。ここで、クライアントはクライアント証明書を使用して認証されます。この場合のクライアントは、個々のユーザーではなく、ある種のプレゼンテーション層です。ユーザーは、カスタムアプローチを使用して認証されますこれが正しく行われていることを確認するのはプレゼンテーション層の責任です(注:これは適切なアプローチではないことを知っていますが、APIはパブリックではありません)。

リクエストごとに(パスワードではなく)ユーザー名を渡したいのですが、これをどこで行うのかわかりません。 Authorizationヘッダーを使用するのは良い考えでしょうか?

9
Matsen75

Authorizationヘッダーの使用は、正しいことのように思えます。これがAuthorizationヘッダーの目的です。

http://tools.ietf.org/html/rfc7235#section-4.2 から:

「Authorization」ヘッダーフィールドを使用すると、ユーザーエージェントは自身をオリジンサーバーで認証できます。通常、401(Unauthorized)応答を受信した後、必ずしもそうとは限りません。その値は、要求されているリソースのレルムのユーザーエージェントの認証情報を含む資格情報で構成されます。

独自の認証スキームを文書化しているが、ホイールを再発明する必要はない場合。

20
Zach Dennis

標準のHTTPヘッダーを非標準で使用することはお勧めしません。主に、AuthoriziationヘッダーがHTTP認証でどのように使用されるかを知っている他の開発者に誤解を与える可能性があるだけでなく、同じリクエストヘッダーの認識の競合があるスタックの他の部分の潜在的な問題を回避するため。

いずれにせよ、特に目的に応じて、カスタムの非標準のX-Authorization-Userヘッダーを使用することを妨げるものは何もありません。

3