ビジネスフロー・データフロー¶
エコシステム全体像¶
実用的なビジネス価値の実現
本セクションでは、Wallet SDKが実際のビジネス現場でどのように活用され、どのような価値を生み出すかを具体的に説明します。技術基盤については「技術基盤・概念」をご参照ください。
Wallet SDKは、分散型アイデンティティ(DID)とVerifiable Credentials(VC)エコシステムにおいて、Holder(保有者)として個人や組織がデジタル証明書を安全に受け取り・保存・提示するための包括的なソリューションを提供します。
主要ステークホルダー¶
🏛️ Issuer(発行者)¶
デジタル証明書を発行する信頼できる機関
代表的な組織:
- 大学・教育機関: 学位証明書、資格証明書
- 企業: 従業員証、研修修了証、スキル認定証
- 政府機関: 身分証明書、許可証、資格免許
- 医療機関: 健康証明書、ワクチン接種証明書
技術的役割:
- OpenID4VCIプロトコルによるセキュアな発行
- クレデンシャルメタデータの定義
- 発行認証・承認プロセスの管理
- 秘密鍵の生成・管理
📱 Holder(保有者)- SDK担当領域¶
デジタル証明書を保有・管理する個人や組織
技術的役割:
- VC受信: OpenID4VCIプロトコルによる安全なクレデンシャル受信
- データ暗号化: AES暗号化による機密性保護
- 統合管理: 複数DID・複数証明書の一元管理
- VP生成: OpenID4VPプロトコルによる検証可能なプレゼンテーション生成
🔍 Verifier(検証者)¶
デジタル証明書を検証・受理するサービス提供者
代表的なサービス:
- 金融サービス: KYC、信用審査、本人確認
- Eコマース: 資格証明、年齢確認、会員認証
- 医療サービス: 資格確認、健康状態証明
- 教育プラットフォーム: 学歴確認、継続教育資格
技術的役割:
- OpenID4VPプロトコルによるリクエスト
- 暗号学的署名検証
- 発行者の信頼性確認
発行フロー(Issuer → Holder)¶
クレデンシャル発行の全体的なビジネスプロセス
sequenceDiagram
participant I as 🏛️ Issuer<br/>(発行者)
participant W as 📱 Wallet App<br/>(Holderアプリ)
participant S as 🔧 Wallet SDK
participant L as 📦 ローカルストレージ
note over I,L: OpenID4VCI プロトコルフロー
%% 1. オファー段階
I->>+W: 1. クレデンシャルオファー<br/>(QRコード・ディープリンク)
W->>+S: 2. オファー解析要求
S->>S: 3. オファーパラメータ抽出
S->>I: 4. 発行者メタデータ取得
I-->>S: 5. メタデータ応答
S-->>-W: 6. 受け取り可能データ表示
%% 2. 認証段階
W->>+S: 7. 受け取り承認
alt 事前認可コードフロー
S->>I: 8a. トークンリクエスト<br/>(PINコード含む)
I-->>S: 9a. アクセストークン発行
else 認可コードフロー
S->>I: 8b. 認可エンドポイントリダイレクト
I-->>S: 9b. 認可コード発行
S->>I: 10b. トークン交換
I-->>S: 11b. アクセストークン発行
end
%% 3. 発行段階
S->>I: 12. クレデンシャルリクエスト
I-->>S: 13. 署名済みVC発行
%% 4. 保存段階
S->>S: 14. VC検証・暗号化
S->>+L: 15. 暗号化VC保存
L-->>-S: 16. 保存完了
S-->>-W: 17. 発行完了通知
note over I,L: ✅ VCがローカルに安全保存完了
事前認可コードフロー『Pre-Authorized Code Flow』
ユーザーが事前に認可を受けた後に、クレデンシャルを安全に受け取るためのプロセスです。ユーザーは、PINコードなどの認証情報を使用して、発行者からのクレデンシャルオファーを受け取ります。この方法により、ユーザーは自分のデジタルアイデンティティをより安全に管理でき、発行者との信頼関係を強化します。
認可コードフロー『Authorization Code Flow』
OAuth 2.0に基づく標準的な認可プロセスで、ユーザーが発行者にリダイレクトされ、認可コードを取得します。その後、クライアントはこのコードを使用してアクセストークンを取得し、クレデンシャルを発行者から受け取ります。このプロセスは、ユーザーのプライバシーを保護しつつ、セキュアなクレデンシャル発行を実現します。
発行フローの特徴¶
🔐 セキュリティ重視設計¶
- 事前認可コードフローによる二重認証
- DIDベースの暗号学的証明
- エンドツーエンド暗号化
⚡ 柔軟な認証方式¶
- 事前認証: PINコードによる簡易認証(学生証発行等)
- 認可コード: OAuth2.0ベースの認可コードフロー
提示フロー(Holder → Verifier)¶
VerifiablePresentation提示の全体的なビジネスプロセス
sequenceDiagram
participant V as 🔍 Verifier<br/>(検証者)
participant W as 📱 Wallet App<br/>(Holderアプリ)
participant S as 🔧 Wallet SDK
participant L as 📦 ローカルストレージ
note over V,L: OpenID4VP プロトコルフロー
%% 1. リクエスト段階
V->>+W: 1. VPリクエスト<br/>(QRコード・ディープリンク)
W->>+S: 2. リクエスト解析
S->>S: 3. 要求事項分析<br/>(PD/DCQL)
%% 2. 証明書選択段階
S->>+L: 4. 保存済みVC検索
L-->>-S: 5. 該当VC一覧
S-->>W: 6. 選択可能VC表示
W->>S: 7. ユーザーVC選択<br/>(選択的開示含む)
%% 3. プレゼンテーション作成段階
S->>+L: 8. 選択VCデータ取得
L-->>-S: 9. 暗号化VC取得
S->>S: 10. VC復号・検証
alt SD-JWT形式(選択的開示)
S->>S: 11a. ディスクロージャー選択
S->>S: 12a. 最小限開示VP作成
else JWT-VC形式
S->>S: 11b. 完全開示VP作成
end
S->>S: 13. VP署名(一時キー)
%% 4. 提示段階
S->>+V: 14. VP提示
V->>V: 15. VP検証<br/>(署名・発行者・有効性)
V-->>-S: 16. 検証結果・リダイレクト
S-->>-W: 17. 提示完了通知
note over V,L: ✅ プライバシー保護された証明完了
提示フローの特徴¶
🔒 プライバシー保護優先¶
- 選択的開示による情報最小化
- 一時キーによるプレゼンテーション署名
- ローカル処理によるデータ漏洩防止
🎯 柔軟な要求対応¶
- Presentation Definition(PD)準拠
- DC Query Language(DCQL)対応
- 複数証明書の組み合わせ提示
⚡ シームレスな体験¶
- QRコード・ディープリンクによる簡単開始
- リアルタイム検証フィードバック
- 自動リダイレクトによる継続的体験
データの流れとアーキテクチャ¶
セキュリティレイヤー¶
graph TB
subgraph "セキュリティ多層防御"
direction TB
subgraph Network["🌐 ネットワークレイヤー"]
HTTPS["HTTPS/TLS"]
OAuth["OAuth 2.0"]
OID4VCI["OpenID4VCI"]
OID4VP["OpenID4VP"]
end
subgraph Application["🔧 アプリケーションレイヤー"]
JWT["デジタル署名"]
Crypto["暗号化アルゴリズム"]
DID["分散型ID証明"]
Proof["データ整合性証明"]
end
subgraph Device["📱 デバイスレイヤー"]
KeyChain["ハードウェア鍵管理"]
Encryption["データ暗号化"]
Storage["セキュアストレージ"]
end
subgraph Privacy["🔒 プライバシーレイヤー"]
LocalFirst["ローカルファースト"]
SelectiveDisclosure["選択的開示"]
MinimalData["データ最小化"]
end
end
Network --> Application
Application --> Device
Device --> Privacy
classDef networkClass fill:#e3f2fd,stroke:#1976d2
classDef appClass fill:#f3e5f5,stroke:#7b1fa2
classDef deviceClass fill:#e8f5e8,stroke:#388e3c
classDef privacyClass fill:#fff3e0,stroke:#f57c00
class Network,HTTPS,OAuth,OID4VCI,OID4VP networkClass
class Application,JWT,Crypto,DID,Proof appClass
class Device,KeyChain,Encryption,Storage deviceClass
class Privacy,LocalFirst,SelectiveDisclosure,MinimalData privacyClass
SDK導入による価値¶
🚀 開発効率の大幅向上¶
- 迅速な実装: 複雑なDID/VC仕様を抽象化し、シンプルなAPIで実装可能
- 標準準拠: W3C標準とOpenID4VCI/VPに準拠し、相互運用性を保証
- 技術的負荷軽減: 暗号化、署名検証、セキュリティ機能をSDKが自動処理
💰 コスト削減とリスク軽減¶
- 開発コスト削減: ゼロから実装する場合と比較して大幅な開発工数削減
- セキュリティリスク軽減: 実績ある暗号化技術とセキュリティベストプラクティスを内包
- 保守コスト削減: 国際標準準拠により、将来的な仕様変更への対応が容易
🎯 競合優位性の獲得¶
- 市場投入速度: 他社に先駆けてデジタル証明書機能を提供可能
- 技術的信頼性: 国際標準準拠による技術的な信頼性の確保
- スケーラビリティ: 複数DID管理、大量証明書処理に対応した拡張性
🔧 柔軟な統合オプション¶
- 段階的導入: 既存システムを維持しながら段階的に導入可能
- カスタマイズ性: 用途に応じた認証方式(事前認証/認可コード)の選択
開発者フレンドリーなSDK
Wallet SDKは、複雑なDID/VC技術をシンプルなAPIで提供し、開発者が本来のビジネス価値創造に集中できる環境を実現します。
技術的詳細について
本SDKの技術的基盤について詳しく知りたい場合は、「技術基盤・概念」をご参照ください。国際標準への準拠、暗号学的セキュリティ、Self-Sovereign Identityの革新性について詳しく解説しています。