>_tech-draft
Mastra AIのアイコン
Mastra AI
動画公開日
タイトル

The Multi-User Challenge: Don't Hardcode Credentials

再生時間

3分 43秒

ローカルから本番へ!Arcadeで実現するOAuthとエージェントの安全な認証・認可

ポイント

  • 本記事は、ローカル開発のエージェントを本番環境へ展開する際の、複数ユーザー向け認証・認可の複雑な課題に焦点を当てます。
  • Arcadeは、OAuthフローやクレデンシャル管理を包括的に解決し、6,000以上のツール連携と既存フレームワークとの統合を提供します。
  • 開発者は、セキュリティとスケーラビリティを確保しつつ、エージェントの核となる機能開発に集中し、安全なアプリケーションを迅速に構築できます。

ローカル環境で開発したアプリケーションやエージェントを本番環境へデプロイする際、多くの開発者が直面するのが認証と認可の課題です。特に、複数のユーザーがそれぞれ自身のデータにアクセスする必要がある場合、その複雑さは増大します。本記事では、このような課題を解決し、エージェントが安全かつスケーラブルに動作するためのソリューションであるArcadeについて、その機能と活用事例を詳しくご紹介します。

ローカル開発から本番環境への移行における認証・認可の課題

私たちは日々、GmailやSlackなどの様々なサービスと連携するエージェントをローカル環境で開発しています。ローカルでのテスト段階では、自分自身のクレデンシャル(認証情報)を.envファイルに直接記述したり、コード内にハードコードしたりすることで、手軽に動作を確認できます。開発者が唯一のユーザーである限り、この方法は問題なく機能します。

しかし、このエージェントを本番環境に展開し、複数のユーザーに利用してもらいたいと考えた途端、状況は一変します。各ユーザーは自身のGoogleアカウントやSlackワークスペースなどのデータにアクセスする必要があるため、それぞれ個別のクレデンシャルが必要です。もし、全員が同じクレデンシャルを共有してしまうと、以下のような深刻な問題が発生します。

  • セキュリティの欠如: 全ユーザーが同じデータにアクセスできるようになり、意図しない情報漏洩や悪用リスクが高まります。
  • スケーラビリティの限界: ユーザーが増えるたびにクレデンシャル管理が複雑化し、効率的な運用が困難になります。
  • データプライバシーの侵害: ユーザーは自身のデータへのアクセス権をきめ細かく制御できず、プライバシー保護の観点から問題が生じます。

このような課題を解決し、ユーザーごとに安全かつ独立した認証・認可フローを確立することが、本番環境でエージェントを運用する上で不可欠となります。ここでArcadeのソリューションが役立ちます。

Arcadeが提供する認証・認可の包括的解決策

Arcadeは、エージェントにおける認証(Authentication)と認可(Authorization)のあらゆる側面を包括的に管理・処理することで、上記のような課題を解決します。開発者は煩雑なOAuthフローやクレデンシャル管理に頭を悩ませることなく、エージェントのコア機能開発に集中できるようになります。

Arcadeの主な特徴は以下の通りです。

  • 広範なツール連携: 6,000以上の多様なツールやサービスとの連携をサポートしています。これにより、ほとんどの既存サービスに対して、エージェントが安全にアクセスできるようになります。
  • 既存フレームワークとの統合: ASDK、Mastra、その他の様々なオーケストレーションフレームワークと容易に統合できます。これにより、現在利用している開発環境やツールセットを大きく変更することなく、Arcadeの機能を取り入れることが可能です。
  • エンドツーエンドのセキュリティ: 開発者がローカルで構築したエージェントを本番環境へ安全にデプロイし、各ユーザーが自身のデータに対して適切に認証・認可されたアクセスを行えるよう、最初から最後まで(エンドツーエンドで)セキュリティを確保します。

このようにArcadeを利用することで、エージェントは現実世界での「本物の行動」を安全に実行できるようになり、開発者はスケーラブルでセキュアなアプリケーションをより迅速に構築することが可能になります。

実演デモに見るArcadeの活用事例: chat.dev

Arcadeの機能をより具体的に理解するために、彼らの製品の一つであるchat.devを用いたデモンストレーションを見てみましょう。これは非常にシンプルなエージェントで、ユーザーの指示に基づいて様々なタスクを実行します。

1. 初回利用: カレンダーイベントの確認

ユーザーがエージェントに「木曜日に何か会議はありますか?」と尋ねる場面を想像してください。このエージェントを初めて利用する場合、ユーザーは自身のGoogleアカウントへのアクセスを許可する必要があります。

  1. クレデンシャルの要求: エージェントは、カレンダー情報にアクセスするために必要なクレデンシャル(OAuth認証)をユーザーに要求します。
  2. アカウントの選択: ユーザーは、確認したいイベントが登録されている自身のGoogleアカウントを選択します。
  3. 権限の確認: 重要なのは、この際にエージェントに与える権限をユーザーが確認できる点です。例えば、「イベントの削除」や「イベントの編集」といった権限ではなく、単に「イベントの閲覧」のみを許可するように設定することで、ユーザーは自身のデータに対するコントロールを維持し、セキュリティを確保できます。
  4. イベントの表示: 認証が完了すると、エージェントはユーザーのカレンダーから木曜日のイベントリストを取得し、表示します。デモでは、ユーザーがTypescriptカンファレンスに出席中であるため、週次全体会議(weekly all hands)には参加できないといった情報が提示されました。

2. 再利用: 欠席メールの作成

続いて、ユーザーが「参加できないことを出席者に知らせるメールを作成してください」とエージェントに依頼する場合です。

  • 既存認証の活用: ArcadeはすでにGoogleアカウントでの認証が完了していることを認識しているため、ユーザーは再度OAuthフローを最初からやり直す必要はありません。Arcadeは既存の認証情報を利用して、次のアクションを実行します。
  • メールのドラフト作成: エージェントは、ユーザーの指示に基づいて会議の参加者宛のメールドラフトを自動的に作成します。
  • 確認と送信: 作成されたドラフトメールへのリンクが提供され、ユーザーはその内容を確認します。内容に問題がなければ、ユーザーはリンクからメールを送信することができます。

このデモは、Arcadeがいかにして開発者がローカルで構築したエージェントを、セキュリティとユーザーエクスペリエンスを損なうことなく本番環境へと移行させ、多機能なツールへと発展させるかを明確に示しています。認証・認可の複雑なプロセスはArcadeが担うため、開発者はエージェントのビジネスロジックに集中できるのです。

Arcadeの未来とNCPゲートウェイ

デモンストレーションの最後に、Arcadeの「次なる大きな取り組み」として「NCPゲートウェイ」が紹介されました。NCPはこの分野における新しい動きであり、Arcadeは現在、NCPゲートウェイを提供しています。

NCPゲートウェイを利用することで、開発者は以下のようなメリットを享受できます。

  • NCPの取り込み: GitHub NCPやNode NCPといった、様々なNCPを簡単に取得し、自身のレポジトリに追加できるようになります。
  • 多様なオーケストレーションフレームワークでの利用: 取り込んだNCPは、特定のオーケストレーションフレームワークに限定されず、ASDKやMastraなど、幅広い環境で柔軟に利用することが可能です。これにより、開発者は自身のプロジェクトやニーズに合わせて最適なツールを選択し、エージェントの機能を拡張していくことができるようになります。

これは、Arcadeが単なる認証・認可のプロバイダーに留まらず、エージェント開発エコシステム全体を強化し、より多様なツールやサービスが連携できる未来を目指していることを示唆しています。

まとめ

本記事では、ローカルで開発されたエージェントを本番環境に展開する際に発生する、複数ユーザー向けの認証・認可の課題に焦点を当て、その解決策としてArcadeを紹介しました。

Arcadeは、6,000以上のツールと連携し、ASDKやMastraなどの既存のオーケストレーションフレームワークとシームレスに統合することで、エージェント開発におけるエンドツーエンドの認証・認可プロセスを簡素化します。これにより、開発者はセキュリティやスケーラビリティの課題に煩わされることなく、エージェントの核となる機能開発に集中し、より安全でパワフルなアプリケーションを市場に送り出すことが可能になります。

chat.devのデモンストレーションでは、初回利用時の安全な認証フローから、既存認証を再利用したスムーズなタスク実行まで、ユーザーと開発者の双方にとってメリットのあるArcadeの強力な機能が実証されました。さらに、NCPゲートウェイの導入は、今後のエージェント開発エコシステムにおいてArcadeが果たす役割がさらに拡大することを示唆しています。

Arcadeを活用することで、開発者はローカルで生まれたアイデアを、本番環境で多くのユーザーに安全に利用してもらえる現実世界のエージェントへとスムーズにスケールアップできるでしょう。


参考動画: https://www.youtube.com/watch?v=qLX_7r0-sCs