30

アプリケーションに認証機能を追加しようとしています。認証サーバーはoauth2.0を実装します

refresh_tokenを保存する方法がわかりません。それをファイルに保存したいので、次にアプリケーションが起動し、refresh_tokenが利用可能になったときに、新しいaccess_tokenを要求できます。ユーザーは再度ログインする必要はありません。

しかし、これは私には安全に聞こえません。誰かがrefresh_tokenを含む私のファイルを別のコンピューターにコピーすると、彼は私のアカウントにハッキングする可能性があるからです。

4

3 に答える 3

14

あなたはあなたが説明する攻撃で正しいです。意図したとおりに使用するには、更新トークンを安全に保管する必要があります。私が理解しているように、あなたはスタンドアロンアプリケーションを構築しています。したがって、ファイルシステムのセキュリティを利用して、権限のないユーザーが更新トークンをコピーするのを防ぐことができます。更新トークンにも暗号化を使用することもできますが、キーはローカルマシンでのユーザーのセッションにバインドする必要があります(そうでない場合、ユーザーはアプリケーションのために「サインイン」プロセス中にキーを提供する必要があります更新トークンを復号化するため)。

OAuth WGのスレッドを読むことを検討してください。このスレッドでは、説明されているものと同様の問題について説明し、ガイダンスを提供してい ます。https ://www.ietf.org/mail-archive/web/oauth/current/msg02292.html

于 2013-01-04T22:36:01.020 に答える
11

更新トークンはアクセスを取得するために使用されます(このプロセスにはHTTP基本認証が必要です)。したがって、ユーザーがあなたの(id、secret)の組み合わせを持っていない限り、彼はそれについて多くを行うことはできません。ただし、更新トークンの保存は非常に真剣に検討する必要があります。

これが私の2セントです:

  1. トークンをDBに保存します

  2. 更新トークンを使用してアクセストークンを取得する場合は常に、更新トークンもリセットしてください。(Oauth2.0にはこの機能があり、更新トークンを変更しないようにすることもできますが、セキュリティの観点からは、トークンを変更してDBを更新し続けるのが賢明です)

これがいくつかの洞察を与えることを願っています!!

于 2017-05-24T05:28:39.847 に答える
-5

あなたはあなたの懸念について正しいです-あなたはリフレッシュトークンを保存するべきではありません。そうすることで、クライアントのデータを危険にさらします(そして、その理由を知っています。質問にそれを書きました)。oAuthはこのように機能することは想定されていません。更新トークンをメモリ内に保持する必要があります。

于 2013-01-04T22:36:27.120 に答える