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


9

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

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

回答:


20

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

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

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

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


3
それだけではありませんように見えるそれは、正しいことのようである正しいこと。(私はこれを一日中調査しています)RFC 7235のセクション4.1は、「インスタンス」でのカスタムスキーム「Newauth」の使用と、クライアントがどちらかのスキームの選択を使用できるようにする標準スキーム「Basic」の使用を明示的に示しています。つまり、「標準」スキームを使用している場合は、正しく使用する必要があります。ザックの答えは正しく、フィリップの答えは正しくありません
スティーブンP

3

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

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


100%同意。あなたが何かカスタムをしたいのなら、それがX-接頭辞付きヘッダーの目的です。標準ヘッダーを使用する場合は、異常な、または予期しないものには使用しないでください。
Carson63000 2013

2
:ちょうど私は「X-」は廃止されていることを言及する必要があります考えstackoverflow.com/questions/3561381/...を
Matsen75

この回答によれば、それはAmazon S3が間違っていることを意味していますか?docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
Tom Lianza

4
-1。Zach Dennisが述べたように、他のほとんどのHTTPヘッダーとは異なり、Authorizationヘッダーは拡張されるように設計されており、独自の認証スキームを定義する方法が明確に規定されています。簡単に言えば、カスタム認証スキーム名を使用していることを確認してください。
リーライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.