トークン情報更新における対象トークンの指定方法

概要


認可サーバーは Authlete の API を用いることにより、発行済トークンの有効期間やスコープを更新することが可能です。

どのトークンを更新対象とするかは、ある 1 つのトークンを指定する方法と、あるクライアントとユーザーに関連するトークンを指定する方法があります。それぞれの方法によって更新できる内容は異なります。

2 つの方法についてそれぞれ以下にまとめます。

ある 1 つのトークンを指定する方法


/auth/token/update API を用います。ある発行済のアクセストークン(accessToken) について、新たな有効期間 (accessTokenExpiresAt) やスコープ (scopes) を設定することが可能です。

また OAuth 2.0 関連のパラメーター以外にも、任意の key/value を「プロパティ (properties)」として追加することができます。これにより、そのアクセストークンにひもづく情報を Authlete のデータベースに格納することが可能となります。

あるクライアントとユーザーに関連するトークンを指定する方法


/client/authorization/update API を用います。対象範囲は、あるクライアント (clientId) に対して発行されているトークンのうち、さらにそのクライアントに対して許可を与えたユーザー (subject) に関連するものというかたちになります。

この API は、あるユーザーがあるクライアントに対して行った認可をすべて更新する場合に有用です。たとえば以下のようなユースケースが想定されます。

  1. ユーザーは当初、あるクライアントの利用に際し、情報参照のみの権限をそのクライアントに許可する。その結果として、クライアントには、readスコープだけが付与されたアクセストークン(1個目)が発行される
  2. クライアントのサービスを利用し続けるうちに、ユーザーは、情報更新も許可して問題ないと考えるようになる。そこでユーザーは、情報参照と情報更新の権限をそのクライアントに許可する。その結果として、クライアントには、readとwrite の 2 つのスコープが付与された 2 個目のアクセストークンが追加発行される
  3. さらにサービスを利用し続けているうちに、ユーザーは、情報更新については権限付与を取り消したいと考えるようになる。そこでユーザーは認可サーバーにアクセスし、当該クライアントに与えている「情報更新」権限について取り消しを行う

認可サーバーは 3. の処理を実装するにあたり、この /client/authorization/update API を用いることによって、そのクライアントに与えている個々のトークンに対してではなく、そのユーザーが許可したトークン全てについて、一括して write スコープを外す(read スコープのみにする)ことが可能となります。
2019-01-21_kbFigures_02.png 66.98 KB

実行例については別記事(ユーザー単位での発行済トークン管理)の「あるユーザーが認可しているクライアントのうち、特定のクライアントに与えた認可範囲の変更」をご参照ください。

関連記事

How did we do with this article?