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

サードパーティ 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) に必要な認証情報を取得するために使用されます。

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

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

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

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

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

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

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

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

  3. アプリ名やその他の必須項目を入力し、アプリケーションの作成 をクリックします。

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

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

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

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

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

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

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

OAuth 2.0 や OIDC に慣れていない場合は、「従来型 Web」クイックスタートガイドのいずれかから始めることをおすすめします。

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

  1. Logto では現在、サードパーティアプリは「従来型 Web」アプリである必要があります。つまり、クライアントシークレットを安全に保存するためにバックエンドサーバー(またはバックエンド・フォー・フロントエンド)が必要です。
  2. 多くのクイックスタートガイドはファーストパーティアプリ向けに書かれていますが、サードパーティアプリ統合の参考としても利用できます。
  3. 主な違いは、サードパーティアプリでは同意画面が表示され、ユーザーにデータへのアクセス許可を明示的に求める点です。

詳細は クイックスタートガイド で確認できます。

サービス側で認可 (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 エージェントはアクセス トークンを使ってサービスからリソースを取得できるはずです。