前段階で取得したリクエストトークン。サービスプロバイダは、このパラメータを必須(REQUIRED)パラメータであるとしても構いませんし、この値がない場合を受け入れて、無い場合にユーザにそれを手動で入力するように促しても構いません。コンシューマが指定しても構いません(MAY)。行くようにユーザに指示しても構いません(SHALL)。リクエストトークンが手動入力するのに適しているものであるようにすべきです(SHOULD)。確認して、詳細についての利用同意を確認します。OAuth仕様では、サービスプロバイダがユーザをどう認証するかは定義していません。手順は定義しています。確認しなければなりません(MUST)。ユーザがログインしていない場合は、ログイン画面を表示してもかまいません(MAY)。サービスプロバイダは、コンシューマがアクセスを要求している(コンシューマデベロッパが登録した通りの)情報をユーザに提示します。この情報にはアクセスする期間と保護リソースが含まれます。この情報にはサービスプロバイダ特有の他の詳細な情報を含んでいてもかまいません(MAY)。ユーザになりかわって保護リソースにコンシューマがアクセスできるように、ユーザは承認するか拒否するかをサービスプロバイダに伝えます。ユーザに、コンシューマキーに基づいて得られたコンシューマの識別情報を提示する場合、サービスプロバイダはコンシューマの本当の識別情報を取得することができないかどうかをユーザに知らせなければなりません(MUST)。サービスプロバイダがこの識別情報がどの程度確かなものかを保障するかは、この仕様の範囲外です。[#y20a9a5a]ユーザの認証をしてコンシューマアクセスがサービスプロバイダに認められた後、リクエストトークンが承認されてアクセストークンに変換できる状態になったことをコンシューマは知らせられなければなりません(MUST)。ユーザが拒否した場合、コンシューマはリクエストトークンが破棄されたことを通知されてもかまいません(MAY)。次のパラメータをつけてユーザのウェブブラウザをリダイレクトします。コンシューマがつけたクエリーパラメータを含めてもかまいません(MAY)。パラメータを連結しなければなりません(MUST)。ない場合は、ユーザがコンシューマに認証が完了したことを手動で伝えなければならないことを、サービスプロバイダはユーザに提示しなければなりません。[#l4c8fb64]コンシューマは、リクエストトークンを保護リソースにアクセスすることのできるアクセストークンに変換します。アクセストークンの取得はつぎのステップを踏みます。[#m7aaf636]リクエストトークンとトークンシークレットは、アクセストークンとトークンシークレットと交換されなければなりません(MUST)。リクエストを発行します。推奨されています(RECOMMEND)。次のパラメータを含んでいます。なければなりません(MUST)。あると仮定しなければなりません(MUST)。ない場合の、サービスプロバイダからのレスポンスについては未定義です。アクセストークンをリクエストする際には、サービスプロバイダ特有の追加パラメータをつけてはいけません。これはトークンに紐付くすべての情報が、ユーザの同意を取る前に提示されているようにするためです。[#b85e8bdd]サービスプロバイダは次のことを確認しなければなりません(MUST)。レスポンスボディに格納して送り返します。アクセストークンとトークンシークレットはコンシューマに保存され、保護りソースに署名する際に使われます。応答には次のパラメータが含まれます。アクセストークン(訳注:ここはリクエストトークンではなくアクセストークンです。いう同じ名前を使うので、混乱しないように注意してください。レスポンスコード」で定義されている適切な応答コードを返すべきです(SHOULD)。レスポンスボディ中に含めてもかまいません(MAY)。[#fdcee783]アクセストークンとトークンシークレットを無事受け取った後、コンシューマはユーザに成り代わって保護リソースにアクセスできるようになります。リクエストは「署名リクエスト」ごとに署名しなければならず(MUST)、次のパラメータを含んでいなければなりません。アクセストークン(訳注:ここはリクエストトークンではなくアクセストークンです。いう同じ名前を使うので、混乱しないように注意してください。なければなりません(MUST)。あると仮定しなければなりません(MUST)。ない場合の、サービスプロバイダからのレスポンスについては未定義です。1970年1月1日の0時0分0秒(GMT)からの秒数で表現されます。タイムスタンプの値は正の整数でなければならず(MUST)、以前のリクエストと同じか大きくなければなりません(MUST)。値生成するでしょう(SHALL)。ランダム文字列で、各リクエストごとにユニークになるように生成されます。使うことで、サービスプロバイダはそのリクエストが以前発行されたものではないことを確認し、セキュアでない通信路(HTTPなど)上でのリプレイアタックを防ぎます。[#b328c7fc]すべてのトークンつきリクエストや保護リソースへのリクエストは、コンシューマ側で署名し、サービスプロバイダ側でその署名を検証しなければなりません。トークンリクエストや保護されたりソースに対するリクエストを行う際に、承認されていないパーティがコンシューマキーやトークンを使うことを防止するために、リクエストに署名をします。署名のプロセスの中で、コンシューマシークレットとトークンシークレットは検証できる値にエンコードされてリクエストの中に格納されます。仕様では特定の署名方法を指定することはしません。定義していますが、サービスプロバイダは自身で定義する方法で実装することができます。これ以外の特定の署名方法を推奨することは、この仕様の範囲外とします。パラメータに保存します。サービスプロバイダは署名方法に指定されている従って署名の値を検証します。値をチェックして以前同じコンシューマリクエストが使われていないか確認するべきです(SHOULD)。間の大きな違いは、鍵の使い方にあります。[#safe55ba]署名ベース文字列は、リクエストの要素を復元できる形でひとつの文字列に連結したものです。署名アルゴリズムの入力値として使われます。署名を生成する際に署名ベース文字列を使う例を示します(訳注:付録にて)。署名ベース文字列を構築する前に、全てのリクエストパラメータは「パラメータエンコード」に記載されている方法で、エンコードされていなければなりません。パラメータは除外されていなければなりません。パラメータは次の手順でひとつの文字列に正規化されます。パラメータはパラメータ名でソートされます。ソート順は辞書的なバイト値順です。同じパラメータ名を使うものが二つ以上ある場合は、値の順番でソートします。パラメータはソートした順番に従ってひとつの文字列に連結されます。61)で区切られいてます。