E2Eテストカバレッジレポート
最終更新日: 2025-10-20 総テストファイル数: 87 テストフレームワーク: Jest
概要
本ドキュメントは、idp-serverプロジェクトのEnd-to-End(E2E)テストカバレッジの包括的な概要を提供します。E2Eテストは3つの主要カテゴリに分類されています:
- 📘 spec/ - 仕様準拠テスト(RFCおよび標準プロトコル検証)
- 📕 scenario/ - 実践的統合シナリオテスト
- 🐒 monkey/ - カオステストおよびエッジケース検証
テスト統計
| カテゴリ | テストファイル数 | 説明 |
|---|---|---|
| RFC準拠テスト (spec) | 32 | プロトコル仕様テスト |
| アプリケーションシナリオ | 11 | エンドユーザーアプリケーションフローテスト |
| Control Plane - システムレベル | 14 | システムレベル管理APIテスト |
| Control Plane - 組織レベル | 28 | 組織レベル管理APIテスト |
| Resource Server | 1 | トークンイントロスペクション拡張テスト |
| Monkeyテスト | 1 | カオス・ストレステスト |
| 合計 | 87 |
1. RFC準拠テスト (spec/)
総ファイル数: 32
これらのテストは、OAuth 2.0、OIDC、および関連プロトコル仕様への準拠を検証します。
1.1 OAuth 2.0 Core (RFC 6749)
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
rfc6749_4_1_code.test.js | RFC 6749 Section 4.1 | 認可コードフロー |
rfc6749_4_1_code_secret_basic.test.js | RFC 6749 Section 4.1 | 認可コード + client_secret_basic |
rfc6749_4_2_implicit.test.js | RFC 6749 Section 4.2 | インプリシットグラントフロー |
rfc6749_4_3_resource_owner_password_credentials.test.js | RFC 6749 Section 4.3 | リソースオーナーパスワードクレデンシャルグラント |
rfc6749_4_4_client_credentials.test.js | RFC 6749 Section 4.4 | クライアントクレデンシャルグラント |
rfc6749_6_refresh_token.test.js | RFC 6749 Section 6 | リフレッシュトークングラント |
主要テストケース:
- 認 可エンドポイント HTTP GET/POST サポート
- トークンエンドポイント検証
- エラーレスポンスと不正リクエスト処理
- state パラメータ検証
- redirect_uri 検証
1.2 OpenID Connect Core 1.0
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
oidc_core_2_id_token.test.js | OIDC Core Section 2 | IDトークン構造と検証 |
oidc_core_2_id_token_extension.test.js | OIDC Core Section 2 | IDトークン拡張クレーム |
oidc_core_3_1_code.test.js | OIDC Core Section 3.1 | 認可コードフロー(OIDC) |
oidc_core_3_2_implicit.test.js | OIDC Core Section 3.2 | インプリシットフロー(OIDC) |
oidc_core_3_3_hybrid.test.js | OIDC Core Section 3.3 | ハイブリッドフロー |
oidc_core_5_userinfo.test.js | OIDC Core Section 5 | UserInfoエンドポイント |
oidc_core_6_request_object.test.js | OIDC Core Section 6 | Request Object(JWT) |
oidc_core_9_client_authenticartion.test.js | OIDC Core Section 9 | クライアント認証方式 |
oidc_discovery.test.js | OIDC Discovery | Discoveryエンドポイント(.well-known) |
主要テストケース:
- IDトークン署名検証(RS256、ES256)
- IDトークンクレーム検証(iss、aud、exp、iat、nonce等)
- UserInfoエンドポイントクレーム
- Request Object JWT検証
- クライアント認証:client_secret_basic、client_secret_post、private_key_jwt
1.3 拡張仕様
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
rfc7009_token_revocation.test.js | RFC 7009 | トークン失効 |
rfc7636_pkce.test.js | RFC 7636 | PKCE(Proof Key for Code Exchange) |
rfc7662_token_introspection.test.js | RFC 7662 | トークンイントロスペクション |
rfc8705_mtls.test.js | RFC 8705 | OAuth 2.0 Mutual-TLS |
rfc9126_par.test.js | RFC 9126 | PAR(Pushed Authorization Requests) |
rfc9396_rar.test.js | RFC 9396 | RAR(Rich Authorization Requests) |
主要テストケース:
- access_tokenおよびrefresh_tokenの失効
- PKCEのcode_challengeおよびcode_verifier検証(S256、plain)
- トークンイントロスペクションレスポンス形式
- mTLSクライアント証明書検証
- PAR request_uri処理
- RAR authorization_details構造
1.4 CIBA(Client-Initiated Backchannel Authentication)
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
ciba_authentication_request.test.js | CIBA Core 1.0 | 認証リクエスト開始 |
ciba_token_request.test.js | CIBA Core 1.0 | auth_req_idを使用したトークンリクエスト |
ciba_ping.test.js | CIBA Core 1.0 | Pingモードフロー |
ciba_push.test.js | CIBA Core 1.0 | Pushモードフロー |
ciba_discovery.test.js | CIBA Discovery | CIBAディスカバリーメタデータ |
主要テストケース:
- バックチャネル認証エンドポイント
- auth_req_id生成と検証
- Push通知配信
- Pingポーリングメカニズム
- ユーザー承認/拒否処理
1.5 FAPI(Financial-grade API)
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
fapi_baseline.test.js | FAPI 1.0 Part 1 | ベースラインセキュリティプロファイル |
fapi_advance.test.js | FAPI 1.0 Part 2 | アドバンスドセキュリティプロファイル |
jarm.test.js | JARM | JWT Secured Authorization Response Mode |
主要テストケース:
- FAPI Baseline: PKCE、stateパラメータ、scope検証
- FAPI Advanced: PAR、request object、mTLS
- JARM: JWT署名付き認可レスポンス
1.6 Identity Assurance & Verifiable Credentials
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
oidc_for_identity_assurance.test.js | OIDC4IDA 1.0 | Identity Assuranceクレーム |
openid_for_verifiable_credential_rar.test.js | OIDC4VC | RARを使用したVerifiable Credentials |
主要テストケース:
- verified_claims構造
- trust_framework検証
- authorization_detailsを使用したVerifiable Credential発行
1.7 Shared Signals Framework(SSF)
| テストファイル | 仕様 | カバー範囲 |
|---|---|---|
ssf_discovery.test.js | SSF 1.0 draft-04 | SSF Discoveryエンドポイント |
主要テストケース:
- SSFディスカバリーメタデータ
- Security Event Token(SET)設定
2. シナリオテスト (scenario/)
2.1 アプリケーション層テスト (scenario/application/)
総ファイル数: 11
これらのテストは、実世界のエンドユーザーアプリケーションフローをシミュレートします。
| テストファイル | シナリオ | 説明 |
|---|---|---|
scenario-01-user-registration.test.js | ユーザー登録 | メールベースのユーザー登録フロー |
scenario-02-sso-oidc.test.js | SSO | OpenID ConnectによるSingle Sign-On |
scenario-03-mfa-registration.test.js | MFA | 多要素認証登録(TOTP、WebAuthn) |
scenario-04-ciba-mfa.test.js | CIBA + MFA | MFAチャレンジを伴うCIBAフロー |
scenario-05-identity_verification-application.test.js | 身元確認 | 身元確認申請送信 |
scenario-06-identity_verification-result.test.js | 身元確認 | 身元確認結果取得 |
scenario-07-identity-verification-retry.test.js | 身元確認 | HttpRequestExecutorリトライ機能 |
scenario-07-user-deletion.test.js | ユーザーライフサイクル | ユーザー削除とクリーンアップ |
scenario-08-identity-verification-token-validation.test.js | トークン検証 | 身元確認用トークン検証 |
scenario-08-multi-app_fido-authn.test.js | マルチアプリ | 複数クライアント間のFIDO認証 |
scenario-09-token-refresh.test.js | トークンリフレッシュ | トークンリフレッシュ戦略 |
主要シナリオ:
- ユーザーオンボーディング: メール認証チャレンジ → ユーザー登録 → プロファイル作成
- SSOフロー: 認可リクエスト → 認証 → トークン発行 → UserInfo取得
- MFAセットアップ: TOTPシークレット生成 → QRコード表示 → 検証コード検証
- 身元確認: 外部サービス連携 → コールバック処理 → ステータス追跡
- FIDO/WebAuthn: クレデンシャル登録 → 認証セレモニー → クロスアプリ認証
2.2 Control Plane - システムレベルテスト (scenario/control_plane/system/)
総ファイル数: 14
これらのテストは、システムレベル管理APIを検証します。
| テストファイル | 管理API | テスト対象操作 |
|---|---|---|
user-management.test.js | ユーザー管理 | ユーザーのCRUD操作 |
client_management.test.js | クライアント管理 | OAuthクライアントのCRUD操作 |
role-management.test.js | ロール管理 | ロール作成、権限割り当て |
permission-management.test.js | 権限管理 | 権限のCRUD操作 |
authentication_management.test.js | 認証設定 | 認証設定管理 |
authorization_server_management.test.js | 認可サーバー | 認可サーバー設定 |
federation_management.test.js | フェデレーション設定 | フェデレーション設定管理 |
identity_verification_management.test.js | 身元確認 | 身元確認設定 |
security-event-management.test.js | セキュリティイベント | セキュリティイベント管理 |
security-event-hook-management.test.js | セキュリティイベントフック | フック登録と実行 |
security-event-hook-management-retry.test.js | セキュリティイベントフック | フックリトライメカニズム |
security_event_hook_config_management.test.js | セキュリティイベントフック設定 | フック設定管理 |
audit-log-management.test.js | 監査ログ | 監査ログ取得とフィルタリング |
tenant_invitation_management.test.js | テナント招待 | テナント招待ワークフロー |
主要管理操作:
- ユーザー管理: provider_idを使用したユーザー作成、プロファイル更新、ユーザーアカウント削除
- クライアント管理: OAuthクライアント登録、クライアントメタデータ更新、クライアントシークレットローテーション
- RBAC: ロール作成、 権限割り当て、ロール階層管理
- セキュリティイベントフック: Webhookエンドポイント登録、リトライポリシー設定、フック実行
2.3 Control Plane - 組織レベルテスト (scenario/control_plane/organization/)
総ファイル数: 28
これらのテストは、組織スコープの管理APIを検証します。
| テストファイル | 管理API | スコープ |
|---|---|---|
organization_user_management.test.js | ユーザー管理 | 組織スコープ |
organization_client_management.test.js | クライアント管理 | 組織スコープ |
organization_client_management_structured.test.js | クライアント管理 | 構造化テストスイート |
organization_role_management.test.js | ロール管理 | 組織スコープ |
organization_role_management_structured.test.js | ロール管理 | 構造化テストスイート |
organization_permission_management.test.js | 権限管理 | 組織スコープ |
organization_permission_management_structured.test.js | 権限管理 | 構造化テストスイート |
organization_tenant_management.test.js | テナント管理 | 組織スコ ープ |
organization_tenant_management_structured.test.js | テナント管理 | 構造化テストスイート |
organization_authentication_config_management.test.js | 認証設定 | 組織スコープ |
organization_authentication_config_management_structured.test.js | 認証設定 | 構造化テストスイート |
organization_authentication_policy_config_management.test.js | 認証ポリシー | 組織スコープ |
organization_authentication_policy_config_management_structured.test.js | 認証ポリシー | 構造化テストスイート |
organization_authentication_interaction_management.test.js | 認証インタラクション | 組織スコープ |
organization_authentication_transaction_management.test.js | 認証トランザクション | 組織スコープ |
organization_authorization_server_management.test.js | 認可サーバー | 組織スコープ |
organization_federation_config_management.test.js | フェデレーション設定 | 組織スコープ |
organization_federation_config_management_structured.test.js | フェデレーション設定 | 構造化テストスイート |
organization_identity_verification_config_management.test.js | 身元確認設定 | 組織スコープ |
organization_identity_verification_config_management_structured.test.js | 身元確認設定 | 構造化テストスイート |
organization_security_event_management.test.js | セキュリティイベント | 組織スコープ |
organization_security_event_management_structured.test.js | セキュリティイベント | 構造化テストスイート |
organization_security_event_hook_management.test.js | セキュリティイベントフック | 組織スコープ |
organization_security_event_hook_config_management.test.js | セキュリティイベントフック設定 | 組織スコープ |
organization_security_event_hook_config_management_structured.test.js | セキュリティイベントフック設定 | 構造化テストスイート |
organization_audit_log_management.test.js | 監査ログ | 組織スコープ |
organization_audit_log_management_structured.test.js | 監査ログ | 構造化テストスイート |
api_behavior_debug.test.js | デバッグ | API動作デバッグ |
主要な組織レベル機能:
- マルチテナンシー: 組織スコープのテナント管理
- 委譲: 組織管理者権限
- 分離: 組織レベルのデータ分離
- 構造化テスト: 体系的なカバレッジを持つ包括的テストスイート
2.4 Resource Serverテスト (scenario/resource_server/)
総ファイル数: 1
| テストファイル | カバー範囲 |
|---|---|
token_introspection_extensions.test.js | トー クンイントロスペクション拡張クレーム |
3. Monkeyテスト (monkey/)
総ファイル数: 1
| テストファイル | カバー範囲 |
|---|---|
ciba-monkey.test.js | CIBAカオステストおよびエッジケース |
主要シナリオ:
- 並行CIBAリクエスト
- タイムアウト処理
- 無効な状態遷移
- リソース枯渇
4. テストインフラストラクチャ
4.1 設定管理
ファイル: e2e/src/tests/testConfig.js
機能:
- 環境変数による動的テナント設定
- マルチ環境サポート(ローカル、ステージング、CI)
- クライアント設定管理
- サーバーエンドポイント設定
環境変数:
IDP_SERVER_URL=http://localhost:8080
IDP_SERVER_TENANT_ID=<tenant-id>
CIBA_USER_SUB=<user-sub>
CIBA_USER_EMAIL=<email>
CIBA_USERNAME=<username>
CIBA_PASSWORD=<password>
4.2 テストユーティリティ
場所: e2e/src/lib/
| ユーティリティ | 用途 |
|---|---|
http.js | HTTPクライアント(GET、POST、PUT、PATCH、DELETE) |
jose.js | JWT作成と検証 |
oauth.js | OAuthヘルパー関数(ハッシュ計算等) |
util.js | ユーティリティ関数(ランダム生成、エンコーディング等) |
4.3 APIクライアント
場所: e2e/src/api/
| クライアント | 用途 |
|---|---|
oauthClient.js | OAuth/OIDCエンドポイントクライアント |
4.4 OAuthフローヘルパー
場所: e2e/src/oauth/
| ヘルパー | 用途 |
|---|---|
request.js | 認可リクエスト、ログアウト等 |