OAuth2.0 と互換性のある図書館利用者向けの API を指定すると、 OAuth スコープに出くわしました。OAuth2.0 仕様は、RFC 6749 で定義されているように、Google がスペースを使用しているのに対し、 GitHub はコンマを使用してスコープを区切るなど、いくつかの点で異なる解釈をしているようです。RFC は次のように伝えています。
発行されたアクセス トークンのスコープがクライアントによって要求されたものと異なる場合、承認サーバーは「スコープ」応答パラメーターを含めて、付与された実際のスコープをクライアントに通知する必要があります。
ただし、スコープ応答パラメーターは仕様の後半で言及されていません。特に、 Resource Owner Password Credentials Grant (セクション 4.3.)を実装したいと考えています。この応答の例は、OAuth2.0 仕様に記載されています。
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
スコープをスペース区切りリスト、コンマ区切りリスト、または JSON arary として含める必要がありますか?
{
"scope": [ "read", "write", "foobar" ],
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}