同一サービス内でユーザーごとに異なるアカウントを扱うという課題
はじめに
最近、NISA初心者向けの応用例を展開している「StockProxy」ですが、ChatGPTを活用した株式分析を通じて、「金融教育に本当に役立つAIの形」を模索しています。
特に、日本では株や投資に関する情報が主観的になりやすく、
初心者が正しいデータ解釈を学ぶ機会が少ないのが現状です。
StockProxyはそうした課題をAIの力で少しでも補うことを目指しています。
■ マイGPT化とともに浮かぶ課題
今後、StockProxyを「マイGPT」として一般公開していく中で、
最も重要なテーマの一つが、
「ユーザーごとの認証情報をどう安全に扱うか」という点です。
マイGPTのような共通AI設計の中で、
各ユーザーがそれぞれの J-Quantsアカウント を使って通信できるようにするには、
単純なプロキシサーバではなくセキュアな認証ロジックの導入が必須となります。
■ なぜ必要なのか?
「J-Quants APIサービス利用規約」では、 「第三者利用禁止」「譲渡禁止」「私的使用限定」という非常に重要な3つの制約が定められています。
【利用規約一部抜粋】
第5条(パスワード及びユーザーIDの管理)
1. 登録ユーザーは、自己の責任において、本サービスに関するパスワード及びユーザーIDを適切に管理及び保管するものとし、これを第三者に利用させ、または貸与、譲渡、名義変更、売買等をしてはならないものとします。
第8条(利用目的)
2. 本サービス及び本データ(本データを編集又は加工したものを含みます。)を、第三者が使用できる状態にすること(インターネット上での配信を含みます。)または商用もしくは学術の目的で利用することは、私的使用の目的に該当しません。詳しい利用方法についてはFAQをご覧ください。
第21条(サービス利用契約上の地位の譲渡等)
1. 登録ユーザーは、当社の書面による事前の承諾なく、利用契約上の地位または本規約に基づく権利もしくは義務につき、第三者に対し、譲渡、移転、担保設定、その他の処分をすることはできません。
【2023年4月3日制定】
出典:J-Quants APIサービス利用規約(株式会社JPX総研)
つまり、開発者が一つの共通アカウントを使って全ユーザーの通信を代理実行するのは 完全にNGということになります。技術者にとっては落とし穴です。
とはいえユーザーが、同じ設計のマイGPTを個別に構築するのは現実的ではありません。
このジレンマが、今回のテーマである
「同一GPTサービス内でユーザーごとに異なるアカウントを扱うには?」という課題を成立させます。
なお、StockProxyはこの課題を正面から解決する設計として、
J-Quants APIを「私的利用の範囲内」で安全に扱うことを目的としています。
ユーザー情報はID/PWを保持せず、暗号化されたリフレッシュトークンのみを、安全に分離管理する構成を採用。
システム全体は暗号技術を用いた公開検証型の設計となっており、管理者を含む第三者による不正利用を運用レベルで防ぎながら、安心して利用できるGPT統合環境を実現しています。
■ サブ課題
・ユーザ毎に個人情報をどのように認証・認可するか?
・ユーザ毎に個人情報をどのように管理・運用するか?
■ ヒント
・プロンプトセキュリティ
・公開鍵暗号
・ハッシュ関数
・エッジコンピューティング
本課題については、回を追って展開していきます。
ぜひご自身が設計するならどのようなアプローチがあるか?
考えていただければ面白いのかなと思います。
■ 次回予告
次回は、実際にこの課題をどう解決するか展開していきます。
補足メモ:
このシリーズでは、AIと金融APIの間にある
「技術」「法」「倫理」のバランスをテーマにしています。
ソースコードや設計は順次公開予定です。
技術的な透明性そのものが、安心して使えるAIの第一歩になると考えています。
技術詳細は、他技術ブログでも展開します。