プレビュー版
PocketSign Link v2 は現在プレビュー版です。正式提供までに仕様が変更される可能性があります。
マイナンバーカード認証を要求しながらログイン連携する
ログイン時点で JPKI 相当の強い本人確認を要求したい場合のフローです。
本人確認レベルを引き上げたいときは、acr_values で要求するのが基本です。
このフローで実現すること
- ログイン成功時の
id_token.acrをurn:klon:acr:high以上にする amrから JPKI ベースで認証されたことを確認する- 既存セッションが弱い場合でも、必要に応じてマイナンバーカード認証に進ませる
フロー図
認可エンドポイントで送るパラメータ
| パラメータ | 例 | 役割 |
|---|---|---|
client_id | 7f3b41e2-a81c-4e35-b08d-2c7e60a4d073 | OIDC クライアント ID |
redirect_uri | https://rp.example.com/callback | コールバック先 |
response_type | code | Authorization Code Flow |
scope | openid | ID トークン発行を要求 |
state | 3b8a... | サービス側の対応付け |
nonce | f4de... | ID トークン検証用 |
code_challenge | xxxxxxx | PKCE |
code_challenge_method | S256 | PKCE の方式 |
acr_values | urn:klon:acr:high | JPKI 利用者証明相当を要求 |
GET /api/oidc/v1/authorize
?client_id=7f3b41e2-a81c-4e35-b08d-2c7e60a4d073
&redirect_uri=https%3A%2F%2Frp.example.com%2Fcallback
&response_type=code
&scope=openid
&state=3b8a...
&nonce=f4de...
&code_challenge=xxxxxxx
&code_challenge_method=S256
&acr_values=urn%3Aklon%3Aacr%3Ahigh
トークンエンドポイントで送るパラメータ
通常のログインと同じく、authorization_code グラントで交換します。
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/callback" \
-d "code_verifier=random-verifier"
サービス側で確認するポイント
id_token.acrが少なくともurn:klon:acr:highであることを確認するid_token.amrにjpkiとjpki_card_user_authnが含まれることを確認する- さらに強い認証が必要なら
acr_values=urn:klon:acr:very_highを使う
使い分け
- 初回ログイン時から強い本人確認を要求したいときに向いています
- すでにサービスにログイン済みのユーザーへ追加確認だけをしたいときは 重要な操作の前に PocketSign Link v2 での再認証を要求する を使います