概要
Authlete の Process Introspection Request API には、イントロスペクション対象のアクセストークンが特定のスコープを持つかどうかを照会する機能があります。確認する際には、同 API に対し、スコープを配列の値として指定します。トークンが持つスコープの照会
たとえば、あるリソースサーバーの「注文 API」では、その API に対するリクエストに付与されたアクセストークンが少なくともpayment スコープを持つ場合のみ、処理を進めるとしましょう。
Authlete の Process Introspection Request
API を用いる場合、2 つの実現方法があります。
-
アクセストークンのみを API に送信し、そのレスポンスとして取得できる「トークンが持つスコープ一覧」をチェックし、
paymentスコープの有無を確認 -
アクセストークンとともに「そのトークンが持つべきスコープ」として
paymentスコープも併せて API に送信し、その上でトークンが有効かどうかをレスポンスとして取得

利用方法
Process Introspection Request API を呼び出す際にscopes パラメーターを用いると、「token パラメーターで渡されたアクセストークン」が「scopes パラメーターで指定されたスコープ群」をカバーしているかどうかをチェックできます。
scopes パラメーターは配列であり、各スコープを値として記述します。たとえば account と payment の 2 つのスコープがカバーされているかどうかをチェックするためには以下のような表記になります。
account payment」という一つのスコープであると認識します。そして「account payment」は存在しないため、結果として以下と同等に解釈します。
scopes リクエストパラメーターを指定していないのと同じような動作になり、スコープに関するチェックは行われません。
実行例
以下は、あるアクセストークン (MhVD...) について、特定のスコープの有無を照会する例です。このアクセストークンは以下の 3 種類のスコープを持つとします。
openidprofilepayment
照会したスコープが指定されている場合
openid および payment スコープの有無を照会するには、以下の API リクエストを送信します。ここでは curl を用いてリクエスト・レスポンスを実行しています(読みやすさのため折り返しています)。
照会したスコープが指定されていない場合
openid および email スコープの有無を照会するには、以下の API リクエストを送信します。
email スコープを持ちません。そのため、Authlete はそのアクセストークンは有効ではないと判断し、エラーの API レスポンスを返却します。