FAPI(Financial-grade API)
FAPIとは
FAPI(Financial-grade API) は、金融取引など高セキュリティが要求される環境でOAuth 2.0/OpenID Connectを安全に利用するための仕様です。
目的:
- 標準のOAuth 2.0/OIDCよりも厳格なセキュリティ要件を定義
- オープンバンキング(PSD2、Open Banking UK)等で要求される金融グレードのセキュリティを実現
主な特徴:
- 署名付きリクエスト・レスポンスの強制によるデータ改竄防止
- mTLS(Mutual TLS)によるトークンバインディングによるアクセストークン盗難の防御
idp-serverのFAPI対応
対応状況
| プロファイル | 選択基準(用途) | idp-server対応 | 実装モジュール |
|---|---|---|---|
| FAPI 1.0 Baseline | 読み取り専用API 残高照会、取引履歴参照等 | ✅ 対応済み | idp-server-core-extension-fapi |
| FAPI 1.0 Advance | 書き込みAPI 送金実行、口座設定変更、決済実行等 | ✅ 対応済み | idp-server-core-extension-fapi |
| FAPI CIBA | デバイス分離認証 ATM送金認証、窓口本人確認、コールセンター認証等 | ✅ 対応済み | idp-server-core-extension-fapi-ciba |
選択の原則: 参照だけならBaseline、書き込みがあればAdvance、デバイスが分離しているならCIBA
プロファイル適用条件
idp-serverは、リクエストされたスコープに基づいてFAPIプロファイルを自動判定します。
判定ロジック(優先順位順):
- FAPI Advance: テナント設定の
fapiAdvanceScopesに一致するスコープが含まれる場合 - FAPI Baseline: テナント設定の
fapiBaselineScopesに一致するスコープが含まれる場合 - OIDC: スコープに
openidが含まれる場合 - OAuth 2.0: それ以外
設定例(テナント設定):
{
"extension": {
"fapi_baseline_scopes": ["read", "account"],
"fapi_advance_scopes": ["write", "transfers", "payment_initiation"]
}
}