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

ID トークンからユーザーの基本 4 情報を取得する

ログイン直後に、氏名、性別、生年月日、住所の基本 4 情報をすぐ使いたい場合のフローです。 最新値の参照ではなく、認可時点のスナップショットで十分なときに向いています。

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

  • id_token だけで基本 4 情報を受け取る
  • Userinfo エンドポイントを追加で呼ばずに初期表示へ進める
  • スコープだけで必要属性を表現する

フロー図

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

パラメータ役割
client_id7f3b41e2-a81c-4e35-b08d-2c7e60a4d073OIDC クライアント ID
redirect_urihttps://rp.example.com/callbackコールバック先
response_typecodeAuthorization Code Flow
scopeopenid personal_infoID トークンと基本 4 情報を要求
state1aa9...サービス側の対応付け
nonceb7d4...ID トークン検証用
code_challengexxxxxPKCE
code_challenge_methodS256PKCE の方式
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%20personal_info
&state=1aa9...
&nonce=b7d4...
&code_challenge=xxxxx
&code_challenge_method=S256

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

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 トークンのイメージ

{
"iss": "https://id.mock.klon.you",
"aud": "7f3b41e2-a81c-4e35-b08d-2c7e60a4d073",
"sub": "subscription-id",
"nonce": "b7d4...",
"name": "山田 太郎",
"gender": "male",
"birthdate": "1990-01-01",
"address": "東京都千代田区千代田1-1"
}

address は Registry の「住所」リソースと同じ完全な住所の文字列(string)です。

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

  • personal_info により name, gender, birthdate, address が ID トークンに入る
  • ID トークンは認可時点のスナップショットなので、最新値が必要なら userinfo を使う
  • メールアドレスも必要なら scope=openid personal_info email のように追加する