私は、RESTfulなAPIとインターフェイスするpythonを使ってコマンドラインツールを構築しています。 APIは認証にoauth2を使用します。ユーザーがpythonツールを実行するたびにaccess_tokenを要求するのではなく、 access_tokenを何らかの方法で格納して、その寿命まで使用できるかどうかそれがどれほど安全なのか。認証トークンを別のファイルに保存することはできますか?
答えて
アクセストークンは、ユーザーのデスクトップ上のファイルに保存できます。
ストレージを使用することができます。あなたがoauth2client
を使用すると仮定すると:これらのアクセストークンは、ユーザーのデスクトップ上になるように、セキュリティの面では
# Reading credentials
store = oauth2client.file.Storage(cred_path)
credentials = store.get()
# Writing credentials
creds = client.AccessTokenCredentials(access_token, user_agent)
creds.access_token = access_token
creds.refresh_token = refresh_token
creds.client_id = client_id
creds.client_secret = client_secret
# For some reason it does not save all the credentials,
# so write them to a json file manually instead
with open(credential_path, "w") as f:
f.write(creds.to_json)
が、私はここに脅威の多くは表示されません。誰かがアクセストークンを取得したい場合、その時間枠の間、そのファイルへの読み取りアクセス権が必要になります。ただし、既に実行できる場合は、認証されるたびにスクリプトを使用してユーザーのアクセストークンのコピーを送信する可能性が高くなります。しかし、私はその分野の専門家ではないので、私の言葉を軽く借りてください。 information security stack exchangeを参照してください。
情報セキュリティスタック交換でpostはこれについて話しました:
これらのトークンは、ユーザーに関するいくつかのかなりの特権情報へのアクセスを与えます。
しかし、質問はデータベースに代わりました。
結論として、はファイルに保管してください。 (しかし、塩の穀物で私の言葉をとりなさい)
あなたはサービス側に、またはローカルに保管しますか?
貴方のツールは、ステートレスのRESTful APIにインターフェイスするため、APIへのさまざまなリクエスト間に情報が格納されないため、実際にクライアントがRESTエンドポイントのいずれかにアクセスするたびにアクセストークンを提供する必要があります。おそらくあなたの設計の詳細のいくつかが失われているかもしれませんが、トークンを持っているユーザーはすでに認証されているので、アクセストークンは承認のためだけに使用するべきです。このため、トークンは一定時間、通常は1時間有効です。
したがって、Cookie(Webインターフェイス)を使用するか、トークンをローカルに格納するか(どちらが意味しているか)のいずれかの状態を提供する必要があります。ただし、ユーザーがクライアントにログインするたび(ユーザーの認証と新しい認証トークンの提供)にoauthフロー全体を起動する必要があります。そうしないと、oauthのメリットは活用されません。
- 1. 認証トークンを保存する場所
- 2. ノードエクスプレス - 認証トークンの保存と取得
- 3. 認証トークンをHTMLローカルストレージに保存するのは安全ですか?
- 4. 認証トークンを保存する最も良い方法は?
- 5. どこにどこのグローバル(認証トークン)をAndroidに保存するのですか
- 6. クライアント側で認証トークンを保存する場所
- 7. ファイルの塊を別のフォルダに保存することができます
- 8. Laravel 5.3は認証データをどこに保存しますか?
- 9. Azure Appサービスの認証プロバイダを別にすることはできますか?
- 10. Laravel Passportでトークン認証を使用することはできません
- 11. j_security_check認証の後に別のWeb認証メカニズムを続けることはできますか?
- 12. は、ルータv4の認証トークンここで/
- 13. JPGでGIFファイルを変換し、phpで別の場所に保存することはできますか?
- 14. vue jsでのユーザーログイン後に認証トークンを保存するにはどうすればよいですか?
- 15. クラウドストレージからコンピュータファイルにファイルを保存することはできますか?
- 16. Pythonインタプリタの状態をファイルに保存することはできますか?
- 17. PythonのデータをAccessファイルに保存することはできますか?
- 18. Settings.settingsにキータイプを保存することはできますか?
- 19. AS3でXMLファイルを保存することができます
- 20. Windows-1250でAngularJs JavaScriptでファイルを保存することはできますか?
- 21. RのAPI認証 - ヘッダーとして認証トークンを渡すことができません
- 22. json webトークンはどこにデータを保存しますか?
- 23. スパーク1.5.0と委任トークンはケルベロスまたはウェブ認証でのみ発行することができます
- 24. ドッカー画像コンテナ - ファイルはどこに保存できますか?
- 25. NSUserDefaultでUIWebViewを保存することはできますか?
- 26. Javaでファイルに書き込むときに、ファイルをフォルダに保存することはできません。
- 27. このタイプのデータをRedisに保存することはできますか?
- 28. ファイルを保存することができません
- 29. localstorageとインターセプタにトークンを保存する
- 30. Excelファイルを保存するときにセルに値を割り当てることはできますか?