タグ付けされた質問 「totp」

1
Spring Boot 2およびSpring Security 5を使用した多要素認証
Spring Boot Security Starterのデフォルトにできるだけ近づけながら、Angular&SpringアプリケーションにTOTPソフトトークンを使用した多要素認証を追加したいと思います。 トークンの検証はローカルで行われ(aerogear-otp-javaライブラリを使用)、サードパーティのAPIプロバイダーは使用されません。 ユーザーのトークンの設定は機能しますが、Spring Security Authentication Manager / Providersを利用してトークンを検証することはできません。 TL; DR 追加のAuthenticationProviderをSpring Boot Security Starter構成済みシステムに統合する公式の方法は何ですか? リプレイ攻撃を防ぐために推奨される方法は何ですか? ロングバージョン APIにはエンドポイント/auth/tokenがあり、そこからフロントエンドはユーザー名とパスワードを提供することでJWTトークンを取得できます。応答には認証ステータスも含まれ、AUTHENTICATEDまたはPRE_AUTHENTICATED_MFA_REQUIREDのいずれかになります。 ユーザーがMFAを必要とする場合、トークンは、許可された単一の権限PRE_AUTHENTICATED_MFA_REQUIREDと5分の有効期限で発行されます。これにより、ユーザーはエンドポイントにアクセスして/auth/mfa-token、AuthenticatorアプリからTOTPコードを提供し、完全に認証されたトークンを取得してサイトにアクセスできます。 プロバイダーとトークン 私はMfaAuthenticationProvider実装する私のカスタムを作成しましたAuthenticationProvider: @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { // validate the OTP code } @Override public boolean supports(Class<?> authentication) { return OneTimePasswordAuthenticationToken.class.isAssignableFrom(authentication); } そして、(署名されたJWTから取得した)ユーザー名とOTPコードを保持するようOneTimePasswordAuthenticationTokenに拡張AbstractAuthenticationTokenされたです。 構成 私は私のカスタム持ってWebSecurityConfigurerAdapter、私は私のカスタムを追加し、AuthenticationProvider経由しますhttp.authenticationProvider()。JavaDocによると、これは正しい場所のようです: 使用する追加のAuthenticationProviderを追加できます …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.