[1] [[OAuth 1.0]] の [DFN[[[credentials]]]] は、
[DFN[[RUBYB[[[識別子]]]@en[identifier]]]]と[DFN[[RUBYB[[[共有秘密]]]@en[shared-secret]]]]の組です。

* 仕様書

[REFS[
- [37] [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-1.1>
- [20] [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>
-- [40] [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.1>
-- [42] [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.2>
-- [45] [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>
- [8] [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-3.1>
]REFS]

* 意味

[5] [[credentials]] は、 [[識別子]]と[[共有秘密]]で構成されます。

[6] [[識別子]]は[[プロトコル]]上その他の方法で直接 (安全でない方法で)
送受信されることがある文字列です。[[利用者]]名や[[応用]]名、
[[アカウント]]といったような対象となる者を識別するものに相当しています。
この値は秘密にする必要はありません。

[7] [[共有秘密]]は、発行時を除き[[プロトコル]]上で直接送受信されない文字列です。
[[合言葉]]に相当するもので、秘密にする必要があります。発行時も[[保安輸送路]]を使うことが求められています。

[FIG(quote)[
[FIGCAPTION[
[37] [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-1.1>
]FIGCAPTION]

>
:    credentials:
Credentials are a pair of a unique identifier and a matching
shared secret.  OAuth defines three classes of credentials:
client, temporary, and token, used to identify and authenticate
the client making the request, the authorization request, and
the access grant, respectively.
]FIG]

* 構文

[2] 値の長さや[[値域]]に仕様上の制限はありません [SRC[>>45]]。

;; [3] 一般的には[[ASCII文字]]の十数文字程度の列とするようです。
また[[記号]]は避けた方が無難なようですが、[[記号]]を含める[[実装]]もあるようです。

;; [4] [[空文字列]]でも構わないのでしょうか? (実用的ではないかもしれませんが。)

* 分類

[39] 次の3種類があります。
[FIG(short list)[
- [[クライアントcredentials]]
- [[一時credentials]]
- [[トークンcredentials]]
]FIG]

* 文脈

[41] [[一時credentials要求]]に対する[[応答]]では、 
[CODE(MIME)@en[[[application/x-www-form-urlencoded]]]] を使って[[引数]]を[[符号化]]し、
[[一時credentials]]を[[鯖]]から[[クライアント]]に通知します。
[CODE(URI)@en[[[oauth_token]]]] は[[一時credentials]]の[[識別子]]を、
[CODE(URI)@en[[[oauth_token_secret]]]] は[[一時credentials]]の[[共有秘密]]を表します
[SRC[>>40]]。

[43] [[資源所有者認可]]の[[要求]]では、 [[URL query]]
の [CODE(URI)@en[[[oauth_token]]]] [[引数]]で[[クライアント]]が[[鯖]]から与えられた[[一時credentials]]の[[識別子]]を指定し
[WEAK[(たものを[[クライアント]]からの指示で[[資源所有者]]が[[リダイレクト]]され)]] ます
[SRC[>>42]]。
ただし、[[鯖]]が[[資源所有者]]に対して[[一時credentials]]の[[識別子]]を指定させる他の方法を用意している場合には、
この[[引数]]は省略できます [SRC[>>42]]。

[44] [[資源所有者認可]]の[[応答]]が[[リダイレクト]]する
([[鯖]]が構築して[[資源所有者]]に渡す) [[コールバック]] [[URL]]
では、 [[URL query]] の [CODE(URI)@en[[[oauth_token]]]] [[引数]]に[[一時credentials]]
の[[識別子]]を指定します [SRC[>>42]]。

[46] [[トークン要求]]に対する[[応答]]では、 
[CODE(MIME)@en[[[application/x-www-form-urlencoded]]]] を使って[[引数]]を[[符号化]]し、
[[トークンcredentials]]を[[鯖]]から[[クライアント]]に通知します。
[CODE(URI)@en[[[oauth_token]]]] は[[トークン識別子]]を、
[CODE(URI)@en[[[oauth_token_secret]]]] は[[トークン共有秘密]]を表します
[SRC[>>45]]。

[9] [[認証された要求]]では、[[資源所有者]]を表すために使います [SRC[>>6]]。
通常の [[Web API]] の利用では[[トークンcredentials]]の[[識別子]]を表し、
[[トークン要求]]では[[一時credentials]]の[[識別子]]を表します。
該当するものがない時は、この[[引数]]は省略できます [SRC[>>6]]。

* 処理

[10] [[一時credentials要求]]、[[資源所有者認可]]、[[認証された要求]]を参照。