VC ウォレットのサポート
前提知識
- VC 入門 - Verifiable Credential の考え方
- EUDI Wallet のエコシステム / IT-Wallet - ウォレットを中心にした制度とシステムの全体像
- Wallet Attestation - ウォレットが本物であることの証明
- OID4VCI / OID4VP - 発行と提示のプロトコル
概要
利用者のスマ ートフォンのウォレットに、本人情報や資格を Verifiable Credential(VC)として発行し、必要な場面で提示してもらう。EUDI Wallet や IT-Wallet は、この仕組みを国の制度として運用しています。
このエコシステムで idp-server が担うのは、Credential Issuer(本人情報や資格を VC として発行する側)です。発行に先立って、ウォレットを OAuth のクライアントとして認証し、本物のアプリ・端末から来たリクエストかを確かめます。将来は、提示を受ける Verifier も担う想定です。
| 登場人物 | 役割 | idp-server |
|---|---|---|
| Wallet Instance | 利用者の端末のアプリ。VC を保管し、提示する | 対象外(ウォレット事業者が提供) |
| Wallet Provider | アプリが本物であることを証明する(Wallet Attestation を発行) | 対象外。発行された証明を受け取って検証する |
| Credential Issuer | 本人確認のうえで VC を発行する | 中心の役割 |
| Verifier | VC の提示を受けて、サービスに使う | 将来の役割 |
エコシステムの全体像
v0.14.0 で動くのは、ウォレットを認証 し、本物のアプリ・端末かを確かめるところまでです。VC の発行(OID4VCI)と提示(OID4VP)は、これからの対応になります。
対応状況(v0.14.0)
ウォレットの認証と真正性の確認
| 機能 | 状態 | 補足 |
|---|---|---|
Attestation-Based Client Authentication(attest_jwt_client_auth) | 対応 | draft-11 準拠。トークン・PAR・CIBA・introspection・revocation で使える(→ 解説) |
| 信頼元の切り替え | 対応 | attester_jwks(Wallet Provider の鍵)/ x5c(証明書チェーン)/ registered_instance_key(登録したインスタンスの鍵) |
| 端末の証明によるインスタンス登録 | 対応 | Android Key Attestation / Apple App Attest。登録は利用者のログインで認証する |
| Challenge エンドポイント | 対応 | サーバーが発行した Challenge を PoP に入れさせる |
| DPoP | 対応 | トークン・リフレッシュ・introspection |
| PAR | 対応 | |
| X.509 証明書チェーンの検証 | 対応 | 発行者の CA 制約まで検証する(→ 証明書チェーンの信頼) |
Wallet Attestation の失効確認(client_status / key_storage_status) | 未対応 | EUDI の Wallet Unit Attestation(TS3)で必須の確認 |
VC の発行(OID4VCI)
| 機能 | 状態 | 補足 |
|---|---|---|
authorization_details(openid_credential)の検証 | 一部 | 認可リクエストで型と、クライアントに許された型かを検証する |
トークン応答の c_nonce | 一部 | 認可コードのトークン応答に載る。旧ドラフトの形 |
| Credential / Batch / Deferred エンドポイント | 未対応 | 旧ドラフト(draft 13 相当)で書かれた処理はあるが、HTTP には公開していない |
| Credential Issuer メタデータ、Nonce エンドポイント | 未対応 | |
| Credential Offer / Pre-Authorized Code | 未対応 | |
鍵の証明(proof) | 未対応 | |
| 形式: SD-JWT VC / mdoc | 未対応 | |
| 発行した VC の失効(Token Status List) | 未対応 |
VC の提示(OID4VP)と信頼の枠組み
| 機能 | 状態 |
|---|---|
OID4VP(DCQL / direct_post)、SD-JWT VC・mdoc の検証 | 未対応 |
| OpenID Federation(IT-Wallet) | 未対応 |
| Trusted List / LoTE(EUDI) | 未対応 |
システムの方針
標準仕様を基準にし、制度ごとの違いは設定で吸収する
OID4VCI 1.0・OID4VP 1.0・HAIP 1.0・Attestation-Based Client Authentication を基準にします。EUDI や IT-Wallet の違い(信頼の枠組み、必須の確認、使うグラント)は、テナントとクライアントの設定で選べる形にし、制度ごとの専用実装は作りません。