[2] [DFN[[RUBYB[資源鯖]@en[resource server]]]]は、
[[被保護資源]]を[[ホスト]]している[[鯖]]のことで、
[[アクセストークン]]を使った[[被保護資源要求]]を受理し応答する能力のあるものです [SRC[>>1]]。

* 仕様書

[REFS[
- [7] [CITE@en[RFC 5849 - The OAuth 1.0 Protocol]] ([TIME[2014-12-28 14:19:21 +09:00]] 版) <http://tools.ietf.org/html/rfc5849#section-2.3>
- [1] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-1.1>
- [5] [CITE@en[RFC 6749 - The OAuth 2.0 Authorization Framework]] ([TIME[2014-12-15 14:15:35 +09:00]] 版) <http://tools.ietf.org/html/rfc6749#section-7>
]REFS]

* OAuth 1.0 被保護資源へのアクセス

[6] [[クライアント]]は、[[トークンcredentials]]を得たら、
[[クライアントcredentials]]と[[トークンcredentials]]を使った[[認証された要求]]により、
[[資源所有者]]にかわって[[保護資源]]にアクセスすることができます [SRC[>>7]]。

[4] [[鯖]]は、[[資源所有者]]が認めた処理の範囲、期間その他の指定を記憶し、
[[トークンcredentials]]を使った要求を処理する際にその制限を適用しなければなりません [SRC[>>7]]。

* OAuth 2.0 被保護資源へのアクセス

[8] [[クライアント]]は、[[資源鯖]]に[[アクセストークン]]を示すことで、
[[被保護資源]]にアクセスします [SRC[>>5]]。その具体的方法は[[アクセストークン]]の[[トークン型]]に依存しますが、
一般的には[[HTTP認証]]を使います [SRC[>>5]]。

[9] [[資源鯖]]は、[[アクセストークン]]を[RUBYB[検証]@en[validate]]し、
[[満期]]しておらず[[適用範囲]] ([[scope]]) が要求されている[[資源]]をカバーしていることを確認しなければ[['''なりません''']]。
その具体的方法や[[誤り]]の[[応答]]については [[OAuth]] 仕様の範囲外とされていますが、
一般的には何らかの[[資源鯖]]と[[認可鯖]]との協調が必要となります。 [SRC[>>5]]

[10] [[資源鯖]]は、アクセス要求が失敗した時には[[クライアント]]に[[誤り]]を通知する[['''べきです''']]。
しかしその具体的方法は [[OAuth]] 仕様の範囲外とされています。 [SRC[>>5]]

[11] 主として [[OAuth]] の[[アクセストークン]]認証に用いる[[認証方式]]は、
[[クライアント]]に[[誤り]]の状態符号を伝える仕組みを定義し、
[[OAuth 2.0]] の[[誤り]]の状態符号のの[[IANA登録簿]]に登録された値
(の一部または全部) を使うことができるものとする[['''べきです''']]。
その[[引数]]名が必要なら、 [CODE[[[error]]]] とする[['''べきです''']]。
[[OAuth]] が主用途でない[[認証方式]]も、 [[IANA登録簿]]の誤りの値を使うことができます。
いずれにせよ、 [CODE(URI)@en[[[error_description]]]] [[引数]]や
[CODE(URI)@en[[[error_uri]]]] [[引数]]も [[OAuth]] 本体と同じように使うことができます。
[SRC[>>5]]

[12] 次の[[認証方式]]が [[OAuth 2.0]] と共に使われています。
[FIG(short list)[
- [[ベアラートークン]]
]FIG]

* 歴史

[3] [[OAuth 1.0]] では[[認可鯖]]と[[資源鯖]]が[[鯖]] ([[サービス提供者]])
と呼ばれ、区別されませんでしたが、[[OAuth 2.0]] では別のものとなっています。

;; しかし同一のものが両方の機能を実装することは排除されていません。