パブリックAPIを利用するアプリケーションを構築しています。APIを使用すると、権限を使用して、別のアプリのユーザーに代わってアクションを実行できます。ユーザーから権限をatoken
およびaの形式で収集し、ユーザーにsecret
代わって認証およびアクションを実行するために使用します。
token
およびをデータベースに保存しsecret
ます。これらはAPIアプリケーション用に特別に生成されているため、APIを使用してユーザーのアクションを実行する必要がある場合は常に、独自のAPIクレデンシャルも提供する必要があります。だから:の線に沿って何か
from myapp.settings import API_APPID, API_PASS
user.perform_action(api_appid=API_APPID, api_pass=API_PASS, permissions_token=user.permissions_token, permissions_secret=user.permissions_secret)
(実際には、パーミッショントークン/シークレットを使用して認証ヘッダーを生成します)。
データベース内のアクセス許可トークン/シークレットを暗号化する必要があるかどうか疑問に思っていますか?私の最初の考えはノーです。なぜなら、パーミッショントークンとパスワードは私たち自身のAPIクレデンシャル(settings.pyに保存されている)なしでは役に立たないからです。
トークンを暗号化する場合は、とにかく秘密鍵をsettings.pyに保存します。つまり、アプリケーションのセキュリティは、設定ファイルの機密性に依存します。
何かご意見は?これらのトークンを暗号化する正当な理由はありますか、それとも冗長になると私は考えていますか?
助けてくれてありがとう。