メインコンテンツまでスキップ
プレビュー版
PocketSign Link v2 は現在プレビュー版です。正式提供までに仕様が変更される可能性があります。

重要な操作の前に PocketSign Link v2 での再認証を要求する

すでにサービスにログイン済みのユーザーに対して、送金、連携解除、重要情報の変更などの直前で再認証を求めるフローです。 この用途では、通常のログイン導線とは別に、もう一度認可リクエストを実行します。

このフローで実現すること

  • 重要操作の直前にユーザーの再確認を行う
  • auth_time を更新した新しい ID トークンを受け取る
  • acr_values を組み合わせることで、より強い再認証も要求可能

フロー図

認可エンドポイントで送るパラメータ

パラメータ役割
client_id7f3b41e2-a81c-4e35-b08d-2c7e60a4d073OIDC クライアント ID
redirect_urihttps://rp.example.com/reauth/callback再認証用コールバック
response_typecodeAuthorization Code Flow
scopeopenidID トークン再発行を受ける
state9af1...サービス側の再認証要求と結び付ける
nonce2d43...ID トークン検証用
code_challengexxxxxxxPKCE
code_challenge_methodS256PKCE の方式
promptlogin明示的に再認証を要求
max_age0常に新しい認証イベントを要求したい場合に併用
acr_valuesurn:klon:acr:high高強度再認証も必要な場合だけ指定
GET /api/oidc/v1/authorize
?client_id=7f3b41e2-a81c-4e35-b08d-2c7e60a4d073
&redirect_uri=https%3A%2F%2Frp.example.com%2Freauth%2Fcallback
&response_type=code
&scope=openid
&state=9af1...
&nonce=2d43...
&code_challenge=xxxxxxx
&code_challenge_method=S256
&prompt=login
&max_age=0

:::info acr_values とフローの関係 acr_values を指定すると、v2 は指定された認証強度(ACR)を満たす方法でユーザーを再認証させます。 指定しない場合は prompt=login のみで再認証が要求されますが、acr_values=urn:klon:acr:high を追加するとマイナンバーカード認証など高強度の手段が求められます。 再認証後に サービスは id_tokenacr クレームを確認することで、要求した強度が実際に満たされたかを検証できます(フロー図のステップ 11 を参照)。 :::

トークンエンドポイントで送るパラメータ

curl -X POST "https://id.mock.klon.you/api/oidc/v1/token" \
-u "7f3b41e2-a81c-4e35-b08d-2c7e60a4d073:client-secret" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code" \
-d "code=SplxlOBeZQQYbYS6WxSbIA" \
-d "redirect_uri=https://rp.example.com/reauth/callback" \
-d "code_verifier=random-verifier"

サービス側で確認するポイント

  • id_token.auth_time が直近であることを確認する
  • 操作に応じて acramr も確認する
  • このフローは「サービスのログアウト」ではなく「追加の認証確認」として扱う

典型パターン

  • とにかく再入力させたい: prompt=login
  • 一定時間以内の認証で足りる: max_age=3600
  • 高強度再認証も必要: prompt=loginacr_values=urn:klon:acr:high