IT系フリーランスの日記

大まかにIT系と呼ばれる仕事を自営業として営んでいる者の日記です

MT4のEA向け簡易ライセンス認証サーバーをDjangoで作ってみた

django rest frameworkを使用して、EAのライセンス認証サーバーを作ってみました。
構造はシンプルで、予め管理者画面で使用を許可するEAのアカウント番号を登録しておき、
エンドポイントURLにペイロードとしてJSON形式でアカウント番号を送信して、
データベースの一覧にあればステータス200を返す、無い場合はそれ以外を返すというものです。

実際にはEAのアカウント番号を用いてPOSTリクエストした際に応答としてトークンを返信しているのですが、
このトークンは実装しただけで未使用です。
トークンを利用すると、ライセンス認証サーバーから帰ってきたトークンに制限時間を設けて、時間切れになったら再度トークンを発行するといった感じで、
時間的に細かい使い方が出来るようになります。

EA→ライセンス認証サーバー→データベース

データベースの一覧にアカウント番号があった場合は、
ライセンス認証サーバー→トークン(EAへ)

データベースの一覧にアカウント番号が無かった場合は、
ライセンス認証サーバー→403エラー

といった具合に、応答を変えて自分自身が接続しているアカウント番号がライセンス認証サーバーに登録されているかどうか確認するというものです。

ただ、内容が暗号化されていない事とトークン自体が適切なものかを判別するロジックがないため、簡易版といった状態です。

今後、正規のライセンス認証サーバーから帰った来たトークンかどうかを判別できるようにしてもう少しセキュリティーを向上させようと思います。