メインコンテンツへスキップ

概要

Authlete は発行済トークンの情報(有効期間やスコープなど)を更新するための API を 2 種類提供しています。これらの API はそれぞれ、更新対象の指定方法と、更新可能な項目が異なります。用途に応じて使い分けてください。
ある 1 つのトークンを更新あるクライアントとユーザーに関連するトークンを更新
API/auth/token/update/client/authorization/update
対象の指定方法ある 1 つのアクセストークン(“accessToken”)クライアント (“clientId”) とユーザー (“subject”) の組
対象の個数11 以上複数
更新可能な項目
- スコープ (“scopes”)
- 有効期間 (“accessTokenExpiresAt”)
- プロパティ (“properties”)
など

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

関連記事

アクセストークンの単一化