回答:
RFC2617で定義されている形式はcredentials = auth-scheme #auth-param
です。だから、フマンチュに同意すると、修正された認可スキームは次のようになると思います
Authorization: FIRE-TOKEN apikey="0PN5J17HBGZHT7JJ3X82", hash="frJIUN8DYpKDtOLCwo//yllqDzg="
どこFIRE-TOKEN
スキームがあり、2つのキーと値のペアは、認証パラメータです。引用符はオプションであると思いますが(p7-auth-19のApendix Bから)...
auth-param = token BWS "=" BWS ( token / quoted-string )
これは最新の標準に適合し、既に使用されており(以下を参照)、単純な拡張用のKey-Value形式を提供します(追加のパラメーターが必要な場合)。
このauth-param構文のいくつかの例をここに見ることができます...
http://tools.ietf.org/html/draft-ietf-httpbis-p7-auth-19#section-4.4
https://developers.google.com/youtube/2.0/developers_guide_protocol_clientlogin
https://developers.google.com/accounts/docs/AuthSub#WorkingAuthSub
別のカスタムヘッダーに配置します。
標準のHTTPヘッダーをオーバーロードすると、おそらくそれよりも混乱が生じ、最小の驚きという原則に違反することになります。また、標準形式のHTTPヘッダー(などAuthorization
)のみを処理できる既成のツールキットを使用するAPIクライアントプログラマーにとって、相互運用性の問題が発生する可能性もあります。
Authorization
独自のカスタムスキーマを持つ仕様標準ヘッダーで十分です。さらに、@ wilmooreが示すように、プリフライトOriginリクエストを回避できます。カスタムスキームは、私が知っている最近のHTTPサーバーに干渉しません。さらに、独自のスキームを使用する場合は、自分で解析する必要があります。
Authorization
カスタムヘッダーではなくヘッダーで送信する適切な理由は、プロキシとロガーが情報を機密情報として扱うことを知っているためです。
いいえ、これはRFC 2617の「クレデンシャル」定義によると有効な生成ではありません。有効なauth-schemeを指定しますが、auth-param値は形式token "=" ( token | quoted-string )
(セクション1.2を参照)である必要があり、例ではそのように「=」を使用していません。
古い質問ですが、好奇心旺盛です。
信じられないかもしれませんが、この問題は20年ほど前に値をbase64エンコードされたユーザー名:パスワードとして渡すHTTP BASICで解決されました。(http://en.wikipedia.org/wiki/Basic_access_authentication#Client_sideを参照)
同じことができるので、上の例は次のようになります。
Authorization: FIRE-TOKEN MFBONUoxN0hCR1pIVDdKSjNYODI6ZnJKSVVOOERZcEtEdE9MQ3dvLy95bGxxRHpnPQ==