問題タブ [implicit-flow]
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.
javascript - Implicit Flow 使用時のリプレイ攻撃
暗黙的なフローを使用してユーザーを承認する React アプリがあります。
フローは次のようになります。 1. sessionStorage にアクセス トークンまたはユーザー情報が保存されていない場合、ユーザーはログイン ページにリダイレクトされます。2. ユーザーがログインすると、React アプリのホームページにリダイレクトされます。2.1. ホームページにリダイレクトする場合、リダイレクト URL には、url パラメータの一部としてすでに access_token と id_token が含まれています。3. React アプリはアクセス トークンを保存し、id_token をデコードしてユーザーに関する情報を取得します。
問題は、誰かが 2.1 でリダイレクト URL を盗んだ場合です。ブラウザに貼り付けて、基本的にこのログインを再生できます。
解決策の 1 つはナンスを実装することでした。
https://auth0.com/docs/api-auth/tutorials/nonce
上記の記事によると、nonce は localStorage に格納する必要があり、id_token を nonce と共に取得したら、localStorage の元の nonce で検証する必要があります。しかし、攻撃者は次のことを行うことができます: 1. この id_token を取得します。2. オンライン ツールを使用してデコードします。3. どんなノンスが入っていたのかを確認します。4. Chrome Dev Tool を使用して、必要な nonce で hist localStorage を変更します。
そのような攻撃を防ぐためのより良いアイデアを知っている人はいますか?
azure - MS Identity Azure アプリは登録されていますが、暗黙的なフローで無許可のクライアントを送信します
Microsoft ID プラットフォーム用に Azure にアプリを登録しました。MS アカウント (outlook.com など) を許可するように構成し、基本的にこことここでいくつかのクイックスタートをオンラインで実行しました(「Web アプリに資格情報を追加する」を除く)。暗黙的なフローを有効にするボックスもチェックしました。
React アプリケーションを URL にリダイレクトして (暗黙的なフローを使用して) サインインします。ユーザー名を入力する必要がありますが、
無許可クライアント: クライアントが存在しないか、コンシューマーに対して有効になっていません。アプリケーション開発者である場合は、Azure ポータル ( https://go.microsoft.com/fwlink/?linkid=2083908 ) のアプリ登録を通じて新しいアプリケーションを構成します。
上で述べたように、いくつかのクイック スタートを実行し、ここで暗黙的なフローについて読み、コードの例に従いました。
また、アプリの登録を削除して最初からやり直してみました。運がない。
Implicit Flow を実装しようとしている JS コード
Microsoft の暗黙的なフロー ページの最初の例のように見える URL にブラウザをリダイレクトする JS コード
Azure でのアプリ構成:
Azure -> ID -> アプリの登録 -> MyApp -> 認証
- リダイレクト URI: http://localhost:3000/signin (React アプリは 3000 で実行され、/signin 用に構成されたルートがあります)
- 推奨されるリダイレクトを使用していません。
- ID Token と Access Token の Implicit チェックボックスをオンにしました
- ライブ SDK サポートが有効
- サポートされているアカウントの種類は、「組織のディレクトリ内のアカウントと個人の Microsoft アカウント (Skype、Xbox、Outlook.com など)」に設定されています。
Azure -> ID -> アプリの登録 -> MyApp -> API のアクセス許可
- MS グラフ
- ユーザー.読み取り
- Eメール
- プロフィール
- openid
私が読んだドキュメントから、私は id トークンに対して十分なことをしたと思いました。それを機能させるためにどのような微調整を行う必要があるのか わかりません。
redirect - Actions On Google: 暗黙的な Oauth フロー、リダイレクトが失敗する
https://developers.google.com/actions/identity/oauth2?oauth=implicitの指示に従って、暗黙的なフロー用に独自の Oauth サーバーを実装しました。
クライアントの詳細を確認した後にトークンをリダイレクトするだけなので、簡単に思えます。しかし、問題が発生した場所があります。これを送信します: https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID?access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
ただし、この URL にリダイレクトすると、Google での操作が台無しになるようです。「Sing in Helper」インテントが機能しているように見えて失敗し、コンソールにエラーが表示されないインテントが機能していない
助けていただければ幸いです。