メインコンテンツまでスキップ

サードパーティ AI エージェントによるアプリへのアクセスを有効化

このガイドでは、Logto をサービスと統合し、AI エージェントがサービスへアクセスできるようにする手順を説明します。

このガイドで学べること:

  • サービスの認可 (Authorization) サーバーとして Logto を設定する方法
  • AI エージェントがサービスへアクセスするためのアクセス トークンを取得する方法
  • AI エージェントを使ってフローをテストする方法

サードパーティ AI エージェントと自社 AI エージェント(またはアプリ)の違い​

例を見てみましょう。あなたが天気データを提供するサービスを運営している開発者だとします。

公式天気アプリ(自社 AI エージェント / アプリ)

  • ユーザーが天気を確認できる公式天気アプリを提供します。
  • 仕組み:公式天気アプリは Logto を使ってユーザーを認証 (Authentication) し、サービスへ接続します。Alice がサインインすると、自動的に天気データへアクセスでき、追加の同意画面は不要です。これは信頼されたアプリだからです。

サードパーティ AI エージェント

  • サービスのエコシステムを構築するため、他の開発者が「WeatherBot」(天気情報や予報を提供する AI アシスタント)をサードパーティ AI エージェントとして統合します。
  • 仕組み:WeatherBot(サードパーティ AI エージェント)は、サービス経由でユーザーの天気データへアクセスしたいと考えています。Alice が自分のアカウントで WeatherBot にサインインすると:
    • WeatherBot が天気データへアクセスする許可を求める同意画面が表示されます。
    • Alice はこのアクセスを許可または拒否できます。
    • Alice が同意したデータのみが WeatherBot と共有され、明示的な再同意なしに追加データへアクセスすることはできません。

このアクセス(権限)コントロールにより、サービスがすべてのデータを管理していても、WeatherBot のようなサードパーティ AI エージェントはユーザーが明示的に許可したものだけにアクセスできます。このプロセスはサービス側のアクセス制御実装によって強制されるため、回避できません。

まとめ

クライアント種別例同意画面は必要?誰がコントロール?
公式天気アプリ自社天気アプリいいえ開発者(あなた)
サードパーティ AI エージェントWeatherBot アシスタントはい別の開発者
注記:

自社 AI エージェントやアプリとサービスを統合したい場合は、クイックスタートガイド をご参照ください。

前提条件​

  • Logto Cloud(またはセルフホスト)テナント
  • AI エージェントがアクセスする API エンドポイントを公開しているサービス

フローの理解​

  • サービス:AI エージェントに公開したいサービス
  • AI エージェント:サービスへアクセスする AI エージェント
  • Logto:OpenID Connect プロバイダー(認可 (Authorization) サーバー)として機能し、ユーザーアイデンティティを管理

全体の流れを示す非規範的なシーケンス図は以下の通りです:

サードパーティ AI エージェントのセットアップ​

サードパーティ AI エージェントがサービスへアクセスできるようにするには、次の手順を実施します:

  1. Logto で AI エージェントを登録:AI エージェントを表すアプリケーションを Logto で作成します。
  2. AI エージェントの設定:AI エージェントがサービスへリクエストを送信し、401 Unauthorized レスポンスを処理できるようにします。
  3. 認可 (Authorization) フローの実装:AI エージェントが Logto からアクセス トークンを取得できるように OAuth 2.0 認可 (Authorization) フローを実装します。
  4. 統合のテスト:AI エージェントを使ってサービスへアクセスし、認証 (Authentication)・認可 (Authorization) リクエストが正しく処理されるか確認します。

Logto でサードパーティ AI エージェントを設定する​

サードパーティ AI エージェントが サービス にアクセスできるようにするには、Logto で サードパーティアプリ をセットアップする必要があります。このアプリは AI エージェントを表し、認証 (Authentication) と認可 (Authorization) に必要な認証情報を取得するために使用されます。

サードパーティアプリとは?:

サードパーティアプリ とは、外部開発者(リソース所有者ではない)が作成し、保護されたリソースへアクセスするためにユーザーの同意が必要なアプリケーションです。ファーストパーティアプリ(自社アプリ)とは異なり、サードパーティアプリはユーザーのデータへアクセスする前に、特定の権限を承認する同意画面が表示されます。これにより、ユーザーは外部サービスと共有するデータをコントロールできます。

詳しくは サードパーティアプリケーション を参照してください。

AI エージェントをオンボードする方法は 3 つあります:

開発者が Logto でサードパーティアプリを作成できるようにする​

マーケットプレイスを構築したり、開発者が Logto でサードパーティアプリを作成できるようにしたい場合は、Logto Management API を活用してプログラム的にサードパーティアプリを作成できます。これにより、開発者は自分のアプリケーションを登録し、認証 (Authentication) に必要な認証情報を取得できます。

クライアント登録プロセスを処理する独自のサービスをホストする必要があります。このサービスは Logto Management API と連携し、開発者の代わりにサードパーティアプリを作成します。

または、Logto コンソールで手動でサードパーティアプリを作成し、プロセスに慣れることもできます。

事前登録なしで任意の AI エージェントを接続可能にする​

オープンな MCP エコシステムでは、事前にエージェントを把握していないことが一般的です。ダイナミックアプリ を利用すると、登録ステップが不要になります。エージェントは自身のクライアントメタデータドキュメントを公開する HTTPS URL を client_id として使用し、認可 (Authorization) リクエストが到着した際に Logto がそれを解決します。

ダイナミックアプリに付与された権限を通じて、エージェントがリクエストできる内容を引き続きコントロールできます。また、すべての認可 (Authorization) はユーザーの同意画面を経由します。

Logto でサードパーティアプリを手動作成する​

テストやアドホックな連携のために、Logto コンソールでサードパーティアプリを手動で作成できます。これは、フルのクライアント登録フローを実装せずに素早く連携をテストしたい場合に便利です。

  1. Logto コンソールにサインインします。

  2. アプリケーション→ アプリケーションを作成 → サードパーティアプリ -> OIDC を選択します。

  3. アプリ名など必要事項を入力し、アプリケーションを作成 をクリックします。

  4. 権限 タブをクリックし、ユーザー セクションで「追加」をクリックします。

  5. 開いたダイアログで -> ユーザーデータ -> profile、email 権限を選択し、保存 をクリックします。

  6. サードパーティアプリ側で、openid profile email 権限(スコープ)をリクエストするようにスコープを設定します。

    注意:openid は OIDC に必須であり、profile と email は前のステップで追加した権限です。

  7. サードパーティアプリの リダイレクト URI を適切に設定します。Logto 側のリダイレクト URI も忘れずに更新してください。

サードパーティアプリの権限

内部的には、サードパーティアプリは標準的な OAuth 2.0 / OIDC クライアントです。つまり、Logto との統合には、任意の OAuth 2.0 / OIDC ライブラリやフレームワークを利用できます(開発者またはサードパーティ開発者が選択可能)。

注意すべき点は以下の通りです:

  1. サードパーティアプリを作成する際は、アプリのアーキテクチャに応じて適切なアプリケーションタイプを選択してください:
    • 従来型ウェブ:クライアントシークレットを使って認証します。
    • シングルページアプリ / ネイティブ:クライアントシークレットなしで安全な認可を行うために PKCE を使用します。
  2. クイックスタートガイドの多くはファーストパーティアプリ向けに書かれていますが、サードパーティアプリの統合時にも参考にできます。
  3. 主な違いは、サードパーティアプリでは同意画面 (Consent screen) が表示され、ユーザーにデータアクセスの明示的な許可を求める点です。

統合ガイドの詳細は サードパーティアプリケーション をご覧ください。

サービス側で認可 (Authorization) を設定​

サービスでアクセス制御を有効にするには、次の実装が必要です:

  1. Logto で API リソースを定義:AI エージェントがアクセスするエンドポイントを表す API リソースを Logto で作成します。
  2. アクセス制御ロジックの実装:サービス側で、AI エージェントから受け取ったアクセス トークンを検証し、ユーザーがリクエストされたリソースへアクセスする権限を持っているか確認するロジックを実装します。
  3. AI エージェントへのレスポンス:アクセス トークンが有効でユーザーに権限があれば、リクエストされたリソースを返します。そうでなければ、401 Unauthorized レスポンスを返します。

サービスでアクセス制御を実装する方法については、認可 (Authorization) ガイド をご参照ください。

統合のテスト​

  1. サービスを起動します。
  2. AI エージェントを起動します。
  3. AI エージェントで API エンドポイントを呼び出し、サービスへアクセスします。
  4. AI エージェントは 401 Unauthorized レスポンスを処理し、ユーザーを Logto へ認証 (Authentication) のためリダイレクトします。
  5. 認証 (Authentication) が成功すると、AI エージェントはアクセス トークンを受け取り、それを使ってサービスへリクエストを送信します。
  6. AI エージェントはアクセス トークンを使ってサービスからリソースを取得できるはずです。