OfficialSPIMFA / PasswordlessActive
keycloak-push-mfa-extension
ba-itsys/keycloak-push-mfa-extension ↗
Push-notification MFA.プッシュ通知によるMFA
- ★
- 12
- Forks
- 8
- Contributors
- 12
- Updated
- 2026-10-19
- KC
- 26.8.1
- License
- Apache-2.0
What it can doできること5
- Add push-based MFA — the user approves or denies a login in a mobile app enrolled to their account.プッシュ通知によるMFAを追加できる。ユーザーは登録済みのモバイルアプリでログインを承認・拒否する
- Keep the app pseudonymous (it only sees a credential ID) and bind approvals to the enrolled device key, with DPoP-bound access tokens for the app's API calls.アプリ側は資格情報のIDしか知らない仮名的な設計で、承認は登録した端末の鍵に紐づく。アプリのAPI呼び出しにはDPoPで束縛したアクセストークンを使う
- Update the browser over SSE across cluster nodes via shared storage, with heartbeats and stream rotation.共有ストレージ経由で、クラスタの複数ノードにまたがってSSEでブラウザに状態を通知(ハートビートとストリームのローテーション付き)
- Send real notifications via the bundled Firebase Cloud Messaging provider, or plug in your own push, event and rate-limit SPIs; test with a simulator.同梱のFirebase Cloud Messagingプロバイダーで実際に通知を送れる。プッシュ・イベント・レート制限は独自SPIに差し替え可能。シミュレータでのテストにも対応
- Only explicit denials count toward Keycloak's brute-force protection — timeouts and rate limits do not lock users out.Keycloakのブルートフォース対策にカウントされるのは明示的な拒否だけ。タイムアウトやレート制限ではユーザーはロックされない
What it cannot do / limitsできないこと・制約2
- No mobile app is included — you implement the app yourself (an implementation guide and API reference are provided).モバイルアプリは含まれていない。アプリは自分で実装する必要がある(実装ガイドとAPIリファレンスあり)
- Not WebAuthn/passkeys — it borrows some passkey ideas but is a separate protocol.WebAuthnやパスキーではない。考え方の一部を借りているが、別のプロトコル
Requirements前提条件
- Copy the JAR to
providers/and restart; FCM needs a Google service account (GOOGLE_APPLICATION_CREDENTIALS) and project URL.JARをproviders/に置いて再起動。FCMを使う場合はGoogleのサービスアカウント(GOOGLE_APPLICATION_CREDENTIALS)とプロジェクトURLが必要