[2] OAuth 1.0 は scope のような仕組みが必要なことがよくあるとしつつも、 その方式の標準化には踏み込んでいません >>1。
[14] scope (適用範囲) は、アクセストークンによって資源所有者がアクセスすることをクライアントから認められている資源や操作の範囲を表すものです。 短い ASCII 文字列によって表されます。
[36] scope
の値はプログラム的に利用されることを想定しており、
末端利用者に表示することは想定していません >>34。
[7] scope
引数の値は、
U+0020
で区切った認可鯖定義の文字列のリストです >>3, >>33, >>34。
文字列の順序は意味を持ちません >>3, >>34。
[9] 各文字列は、印字可能ASCII文字のうち、 U+0020
、
U+0022
、U+005C
を除いたもので構成される1文字以上の列です
>>3, >>33, >>34。
[53] URL が用いられることがよくありますが、そうしなければならないわけではありません。
[5] OAuth 2.0 クライアントは、認可エンドポイント
(認証符号、暗示的承諾型) とトークンエンドポイント
(資源所有者合言葉credentials、クライアントcredentials) で要求の
scope
引数によってアクセス要求の適用範囲を指定することができます >>3, >>15, >>16, >>19, >>20。
[24] クライアントは、トークンエンドポイントで更新トークンからアクセストークンを得る要求で
scope
引数によって取得したいアクセストークンの適用範囲を指定することができます。
ただし、元々資源所有者に承諾された適用範囲以外を指定してはなりません。
またこの引数省略すると、元々資源所有者に承諾された適用範囲を表します。
>>23
[6] 認可鯖は、発行したアクセストークンの適用範囲をクライアントに知らせるために応答で
scope
引数を指定します >>3。
[18] 認可鯖は、アクセストークンを求められた認可エンドポイントからリダイレクトされるリダイレクトURLの素片識別子の
scope
引数によってアクセストークンの適用範囲を指定できます。
クライアントの要求と異なる適用範囲である場合には、
scope
引数を指定しなければなりません。 >>17
[22] 認可鯖は、トークンエンドポイントからのアクセストークンを含む
JSON 応答の
scope
引数によってアクセストークンの適用範囲を指定できます。
クライアントの要求と異なる適用範囲である場合には、
scope
引数を指定しなければなりません。 >>21
[35] 資源鯖は、 WWW-Authenticate: Bearer
ヘッダーに
scope
引数を指定できます >>34。
[11] 認可鯖は、認可鯖の方針や資源所有者の指示、
クライアントの identity に基づき、
クライアントに指定された適用範囲の一部または全部を無視して構いません >>3, >>25。
クライアントが要求した適用範囲と異なるアクセストークンを発行する時は、
応答に scope
引数を指定してアクセストークンの適用範囲を明示しなければなりません >>3。
[30] 資源所有者合言葉credentialsは特に危険であるとの認識から、 利用可能な適用範囲をより限定的にすることを検討するべきです >>29。
[12] クライアントが認可エンドポイントへの要求で scope
引数を指定しなかった時は、予め定義された既定値として処理するか、
妥当でない適用範囲として失敗にしなければなりません >>3。
[13] 認可鯖は適用範囲の要件と既定値を明文化するべきです >>3。
[28] クライアントは、アクセストークンを得た時に scope
引数を確認して、希望した適用範囲がすべて認められたかどうかを調べる必要があります。
一部しか認められなかったとしても、その理由までは示されないので、
クライアントの登録の設定を変更するなど認可鯖依存の方法でクライアントの開発者が手動で操作しなければならない可能性もあります。
[38] OpenID Connect >>37 は OAuth 2.0 の scope
の値を規定しています。
[39] openid
が指定されていると、 OpenID Connect
の実装は OpenID Connect により当該 OAuth 要求を処理することになります。
[40] profile
、email
、
address
、phone
の意味が規定されています >>37。
[43] offline_access
の意味が規定されています >>42。
[41] OpenID Connect を実装しない場合、これらの値を OpenID Connect
が規定する意味に従って解釈する義務はありません。しかし openid
という値を OpenID 以外で使用する意味は無いでしょう。またそれ以外の値は将来
OpenID Connect に対応する可能性があるなら、 OpenID Connect
と矛盾する意味で使うべきでは無いでしょう。
[44] Using OAuth 2.0 for Web Server Applications - Google Accounts Authentication and Authorization — Google Developers ( 版) <https://developers.google.com/accounts/docs/OAuth2WebServer#incrementalAuth>
[45] Cross-client Identity - Google Accounts Authentication and Authorization — Google Developers ( 版) <https://developers.google.com/accounts/docs/CrossClientAuth>
[47] Google は OAuth 1.0 時代から scope
を使っていました >>46。
[50] はてなは OAuth 1.0 で scope
引数を使っていますが、
,
区切りで複数指定できるとしています >>48, >>49。
[52] GitHub は OAuth 2.0 scope
で ,
区切りとしています。
,
が禁止されているわけではないので、仕様違反ではありません。