プレビュー版
PocketSign Link v2 は現在プレビュー版です。正式提供までに仕様が変更される可能性があります。
ID トークンからユーザーの基本 4 情報を取得する
ログイン直後に、氏名、性別、生年月日、住所の基本 4 情報をすぐ使いたい場合のフローです。 最新値の参照ではなく、認可時点のスナップショットで十分なときに向いています。
このフローで実現すること
id_tokenだけで基本 4 情報を受け取る- Userinfo エンドポイントを追加で呼ばずに初期表示へ進める
- スコープだけで必要属性を表現する
フロー図
認可エンドポイントで送るパラメータ
| パラメータ | 例 | 役割 |
|---|---|---|
client_id | 7f3b41e2-a81c-4e35-b08d-2c7e60a4d073 | OIDC クライアント ID |
redirect_uri | https://rp.example.com/callback | コールバック先 |
response_type | code | Authorization Code Flow |
scope | openid personal_info | ID トークンと基本 4 情報を要求 |
state | 1aa9... | サービス側の対応付け |
nonce | b7d4... | ID トークン検証用 |
code_challenge | xxxxx | PKCE |
code_challenge_method | S256 | PKCE の方式 |
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のように追加する