問題タブ [totp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
237 参照

express - Passportjs でオプションの 2 要素認証を実装する方法

私はExpressでAPIを実装し、passportjsのローカル認証戦略を使用しています.今、ユーザーが2要素認証を使用してログインできるようにすることでセキュリティを強化したいと考えています。いくつかの実用的な例を見ましたが、実装したいものをまだ見つけていません。同じルート(/loginとしましょう)で、認証ユーザーが以前に2faを有効にしているかどうか(これはユーザー設定によって処理されます)を確認したいと思います。有効になっている場合は、ユーザーが有効になっていない場合は、2fa 追加検証に従って認証し、単純なログイン/パスワード資格情報によってユーザーを認証します。

誰かがそれを行う方法(全体像)を説明してくれたり、似たような実装の例を知っていれば、私はとても喜んでいます!

ありがとうございました

0 投票する
1 に答える
710 参照

reactjs - AWS Cognito AmplifyAuthenticator でオプションの MFA を設定する方法を教えてください。

Cognito プールを MFA (TOTP) に設定すると、from を使用しrequireたクライアント側の実装が自動的に正常に機能します。AmplifyAuthenticator@aws-amplify/ui-react

しかし、MFA が である cognito プールを作成した場合optional、ユーザーが MFA をオプトインするための自動オプションはありません。ワークフローは、ユーザー名/パスを使用した典型的なオンボーディングです。これに関する適切なドキュメントも見つかりませんでした。<AmplifySelectMfaType>コンポーネントを子として明示的に配置しようとしまし<AmplifySignIn>たが、何もしませんでした。

設定は非常に簡単です。最上位レベルで、Cognito ユーザーが見つかった場合はアプリを表示し、そうでない場合はAmplifyAuthenticatorログインするために を表示します。ユーザーが自分でアプリにサインアップすることを許可していないため、最初のログイン時にユーザー定義が Cognito に存在します。

app.component.tsx

0 投票する
1 に答える
262 参照

authentication - AWS Amplify/Cognito - ユーザーの初回ログイン時にのみ TOTP MFA を設定する方法

MFA がオプションではない認証を設定しています。つまり、登録後の最初のログイン試行から、ユーザーは MFA を設定するように求められます (この場合、時間ベースのワンタイム パスコード (TOPT) を使用します)。 . このため、次の手順が妥当であることがわかります。

1)ログインフォームからユーザー情報を取得 -Auth.signUp()

2) 手順 1) で取得したユーザー データから、ユーザーに TOPT ベースの MFA が既に設定されているかどうかを判断します。そうでない場合は、ステップ 3) またはステップ 4) に進みます。

3) TOPT が設定されていない場合は、この MFA 機能を設定するために QRCode が生成されるフォームにリダイレクトします。コードを確認したら、ユーザーをログインさせます。

4)TOPTが設定されている場合は、パスコードを要求します。確認後、ユーザーをログインします。

私のジレンマ: ステップ 2) の情報、つまり、ユーザーがまだ認証されていない状態でユーザーに TOPT ベースの MFA が設定されているかどうかを取得できないようです。challengeName手順 1) でペイロードで取得したフラグは、 Auth.signUp()MFA が有効かどうか ( 'MFA_SETUP') に関する情報のみを提供し、TOTP ベースの MFA が既に設定されているかどうかについては情報を提供しません。そのために、メソッドAuth.getPreferredMFA()はトリックを行うものですが、渡されるユーザーオブジェクトが認証された (または既にログインしている) ユーザーを表す場合にのみ機能します。ログインしようとしている (まだログインしていない) ユーザーに対して TOTP MFA が設定されているかどうかを判断する方法はありますか?

また、この問題に取り組むための他の解決策は大歓迎です。最初のログイン自体から MFA が必須であるという、私と同じシナリオに遭遇した人がいるはずです。