2017-09-06 15 views
2

Auth0 Redirect Users from rulesから、この記事の後、我々は我々のアプリで次のシナリオを持っているに:Auth0:ルールからのリダイレクト、状態の保護方法

  • ユーザーは、いくつかの特定の条件(複数可)のため
  • にログインしようとすると、彼らは尋ねるエンドポイントにリダイレクトされる可能性があります正しく答えた場合にチャレンジ質問
  • のために、認証機構は、前述のURLを使用して再開:

    domain/continue?state=STATE_GENERATED 
    

サンプルアプリケーションを作成しました.1つの問題でうまくいきました。 Auth0によって生成された '状態'はユーザーに表示されます。リダイレクトでもブラウザのネットワークタブでも可能です。

だから我々は、次を試してみました:

ログイン - >質問(状態URLに追加)を挑戦するリダイレクト - >我々は進むが、状態をコピーして、ブラウザに履歴書のURLを立ち上げませんでした:

https://DOMAIN.auth0.com/continue?state=THE_ORIGINAL_STATE 

同じブラウザ内からトークンを使ってアプリにリダイレクトしました。ユーザーは、そのようなチャレンジ質問を緩和することができます。

ルールを使用してマルチファクタ認証が行われ、ルールからリダイレクトされる類似のフローで「状態」を保護するためのベストプラクティス/推奨方法はありますか?

答えて

1

stateは、認証時にCSFRを防止するために使用されます。ユーザーがあなたの「チャレンジ質問」ページで何らかのアクションに遭遇したことを確実にするために使用できるものではありません。あなたは単に状態を通過させるべきです。

共有シークレットを使用して、チャレンジ質問ページからルールに渡してトークンを検証できるトークンを生成する必要があります。基本的には、ユーザーが質問に正しく答えた後に、チャレンジページサーバーとルールの両方が知っている秘密を使ってJWTトークンを生成します。 JWTトークンは何でもかまいません。たとえば、{ challenge_success: true }のようなものを含めることができます。

https://DOMAIN.auth0.com/continue?state=THE_ORIGINAL_STATE&token=GENERATED_JWT

次にあなたが読んでtokenを確認し、あなたが期待するよう請求があることを確認し、ルールで:あなたはトークンを生成した後

あなたはに戻ってリダイレクトします。あなたが、これはここでどのように機能するかの完全な例を見ることができます

https://auth0.com/docs/rules/current/redirect#how-to-securely-process-results

+0

おかげネイサン、はい私はまさにそれをやってしまいました。うまく動作します、ありがとう! – chad

関連する問題