プレビュー版
PocketSign Link v2 は現在プレビュー版です。正式提供までに仕様が変更される可能性があります。
UserInfo とトークン照会
PocketSign Link v2 では、アクセストークンから現在のユーザー属性を取得する userinfo と、トークンの有効性を照会する introspect、トークンを失効する revoke を提供します。
UserInfo
GET /api/oidc/v1/userinfo
POST /api/oidc/v1/userinfo
通常は Authorization: Bearer <access_token> で呼び出します。
返るクレーム
sub と jpki_verified は常に返ります。
その他の属性は、トークンが持つスコープに応じて返ります。
| クレーム | 返却条件 |
|---|---|
sub | 常に返る(subscription_id) |
jpki_verified | 常に返る |
name, gender, birthdate | profile または personal_info |
email, email_verified | email |
address | address または personal_info |
phone_number, phone_number_verified | phone |
ID トークンとの違い
- UserInfo は最新の属性値を返します
- ID トークンは認可時点のスナップショットです
Token Introspection
POST /api/oidc/v1/introspect
クライアント認証を行ったうえで、token パラメータをフォームで送信します。
リクエスト
| パラメータ | 必須 | 説明 |
|---|---|---|
token | はい | 照会対象のアクセストークンまたはリフレッシュトークン |
client_secret_basic の例:
curl -X POST "https://id.mock.klon.you/api/oidc/v1/introspect" \
-u "7f3b41e2-a81c-4e35-b08d-2c7e60a4d073:client-secret" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=<access_or_refresh_token>"
レスポンス
無効なトークンの場合は、{"active": false} だけが返ります。
有効な場合は以下のフィールドが返ります。
| フィールド | 説明 |
|---|---|
active | トークンが有効かどうか |
token_type | 通常は Bearer。DPoP バインド時は DPoP |
exp | 有効期限 |
iat | 発行時刻 |
client_id | クライアント ID |
jti | アクセストークン時のみ返るトークン ID |
iss | Issuer |
sub | サービスごとのサブスクリプション ID |
aud | アクセストークン時に返る audience |
grant_id | 紐づくグラント ID |
cnf | DPoP バインド時に返る公開鍵情報 |
Token Revocation
POST /api/oidc/v1/revoke
クライアント認証を行ったうえで、token パラメータをフォームで送信します。
リクエスト
| パラメータ | 必須 | 説明 |
|---|---|---|
token | はい | 失効したいアクセストークンまたはリフレッシュトークン |
client_secret_basic の例:
curl -X POST "https://id.mock.klon.you/api/oidc/v1/revoke" \
-u "7f3b41e2-a81c-4e35-b08d-2c7e60a4d073:client-secret" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=<access_or_refresh_token>"
挙動
- 対象トークンが属するトークンファミリー全体を失効します
- 関連するアクセストークンとリフレッシュトークンもまとめて失効します
- ユーザーが同意した権限自体は失効しません
- 対象トークンが見つからなくても、RFC 7009 に従って
200 OKを返します