* 仕様書 [REFS[ - [15] [CITE@en[RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication]] ([TIME[2012-01-09 21:04:30 +09:00]] 版) ]REFS] * 構文 [3] [[誰何]]は [CODE(ABNF)@en[[[auth-scheme]]]] と [CODE(ABNF)@en[[[auth-param]]]] で構成されます。 [4] 両者の間は1文字以上の [CODE(ABNF)[[[SP]]]] で分離します。 ;; [5] [CODE(ABNF)[[[LWS]]]] ではなく [CODE(ABNF)[[[SP]]]] とされています。 従って[[タブ]]や[[折り畳み]]はできません。 [FIG[ [FIGCAPTION[ [2] [[RFC 1945]] / [[RFC 2068]] における [CODE(ABNF)[[[challenge]]]] の構文 ]FIGCAPTION] [PRE(ABNF code)[ challenge = [[auth-scheme]] 1*[[SP]] [[realm]] *( "," [[auth-param]] ) ]PRE] ]FIG] * 引数 [7] [[誰何]]における[[引数]]は [CODE(ABNF)[[[auth-param]]]] と呼ばれています。 ;; [8] ただし [[ABNF]] 構文上 [CODE(HTTP)@en[[[realm]]]] は [CODE(ABNF)@en[[[auth-param]]]] に含まれないことになっています。 詳しくは [[auth-param]] の項を参照してください。 * 誰何の選択 [11] 1つの[[要求]]の [CODE(HTTP)@en[[[WWW-Authenticate:]]]] 欄には複数の[[誰何]]を含めることができます。 それぞれの[[誰何]]の [[auth-scheme]] は違っていても構いません。 [13] この時[[誰何]]の順は[[鯖]]が使って欲しい順序にするべきです。[[鯖]]はより「安全」 な方法を最初に持ってくるべきです。[[利用者エージェント]]は、対応しているより最初のものを使うべきです。 [SRC[>>10]] [12] また[[利用者エージェント]]は提示された[[誰何]]のうち対応している最も「安全」な方法を選択するべきです。 [SRC[>>10]] ;; [14] と、安全上の理由から >>13 と >>12 の2つの矛盾する方針が同時に勧められています・・・。 * 歴史 ** RFC [REFS[ - [1] [CITE@en[RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0]] ([TIME[2012-02-18 23:25:56 +09:00]] 版) - [9] [CITE@en[RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1]] ([TIME[2012-02-18 23:30:14 +09:00]] 版) - [10] [CITE@en[RFC 2068 - Hypertext Transfer Protocol -- HTTP/1.1]] ([TIME[2012-02-18 23:30:14 +09:00]] 版) ]REFS]