Leina ブログ チーム向け AI

Leinaの安全な接続とオープンソースへの取り組み

アカウント認可とチーム権限がLeinaのアプリへのアクセスをどのように定義するか、また公開されたコンポーネントコードとコミュニティの貢献がそれらの境界をどのようにレビュー可能にするかを学びます。

タスクは認可境界を通過してアプリケーションノードに到達し、異なるクライアントが同じ接続基盤を共有します

概念図:チームのタスクは認可された接続を通じてビジネスアプリに到達します。

AIにメールの整理、ドキュメントの検索、ビジネス記録の更新を依頼する前に、チームは明確なアクセス境界を必要とします。どのアカウントが使用されるか、どの操作が許可されるか、誰が接続を使用できるか、誰が結果を受け取るかです。

Leinaは認可された接続を通じてビジネスアプリにアクセスし、メンバーとグループの権限を使用して利用可能なアクセスを管理します。OpenConnectorはアプリ接続を処理します。生のアカウント認証情報は接続ランタイム内に留まり、エージェントはタスクに必要な操作と結果を使用します。接続アーキテクチャ

私たちは主要なコンポーネントコードとドキュメントを公開し、開発者が認証情報の処理、権限の宣言、呼び出しロジックを検査し、改善に貢献できるようにしています。公開プロジェクトは実装の詳細とコラボレーションの記録を提供しますが、認証情報とビジネスデータは接続の認可とアクセス設定の対象となります。

アクセス境界をレビュー可能にする

セキュリティ設計には、検査すべき具体的な実装の詳細が必要です。公開ソースにより、開発者は以下を確認できます:

  • 認証情報の処理: どのランタイム境界が生の認証情報を保持し、どの呼び出しパスがそれらを使用するか。
  • 必要な権限: コネクタが宣言するスコープ、および読み取りと書き込みの認可に何が必要か。
  • 変更の検証: 修正がどの問題に対処し、どの回帰チェックを追加し、誰が貢献したか。

これにより、コミュニティにレビューのための公開エントリポイントが提供されます。開発者やセキュリティ研究者は実装を検査し、質問を提起し、潜在的な脆弱性をセキュリティポリシーを通じて非公開で報告できます。チームは依然として、タスクに合わせてアカウントの認可とアクセスを設定します。

これらの機能を維持する傍ら、私たちは接続、ワークフロー、クライアントプロジェクトを開発者が自身の製品で再利用できるように提供しています。

チームタスクを中心に認可を定義する

チームがLeinaに次のように依頼することを想像してください:

今週の顧客メールを読み、フォローアップ項目を特定し、元のメッセージへのリンクを含め、私のために下書きを準備してください。

この例は接続関係を説明しています。利用可能な操作は、コネクタのサポート、アカウントの認可、チーム設定によって異なります。

Leinaはリクエストを解釈し、メールを読むための操作を選択し、結果を整理する必要があります。OpenConnectorはそれらの操作のための接続と実行機能を提供します:認可されたアカウントを使用し、関連するアクセス境界を確認し、ビジネスアプリを呼び出します。

タスクから認可されたアプリへ

flowchart TB
  accTitle: タスクから認可されたアプリへ
  accDescr: チームがチャットで作業を依頼します。Leinaは必要な操作を選択し、OpenConnectorの認可とアクセス制御を使用して認可されたビジネスアプリに到達します。
  T("チームタスク"):::channel --> L("Leina"):::agent
  L --> G("OpenConnector\n認可とアクセス制御"):::gateway
  G --> A("認可済みアプリ\nメール、ドキュメント、業務記録"):::resource
Leinaはタスクを整理し、OpenConnectorを通じて認可されたアプリを呼び出します。これは接続関係を示しています。

LeinaはチームAI体験を提供します。OpenConnectorはアプリ接続インフラストラクチャを提供します。 ゲートウェイは独立して実行でき、SDK、CLI、MCP、HTTP/OpenAPIアクセスを備えています。他の開発者はそれを自身のエージェントやアプリケーションに接続できます。アーキテクチャとアクセスパス

認証情報、アクション、データアクセスの連携方法

ビジネスアプリは、認可方法、権限定義、入力、出力、エラー処理が異なります。メールの読み取りと顧客レコードの変更も、異なるアクセスを必要とします。アプリとタスクの数が増えるにつれて、これらの詳細はエージェントが作業を確実に完了できるかどうかに影響します。

私たちは接続機能を別のゲートウェイで維持しています。クライアントはアクションを発見し、入力と出力のスキーマおよび必要な権限を検査し、実行する接続を選択できます。生のプロバイダー認証情報はランタイム境界の背後に留まり、エージェントは実行に必要なメタデータと結果を受け取ります。ゲートウェイ機能

この分割により、改善点に明確な居場所が与えられます。プロバイダーが読み取り専用スコープの宣言を必要とする場合、アクションが修正された入力スキーマを必要とする場合、ファイルダウンロードがより良い処理を必要とする場合があります。それぞれは接続層で検査および変更でき、作業の公開記録が残ります。

同じプロバイダーID、アクションID、コントラクトが異なるアクセスパスにサービスを提供できます。開発者は接続作業を再利用しながら、自身の製品を中心にタスクを整理できます。開発者ツール

オープンソースコミュニティへの貢献

オープンソースへの私たちの貢献には、独立して使用可能なゲートウェイ、それを呼び出すためのツール、およびこれらのプロジェクトを共に維持するための継続的なスペースが含まれます。

プロジェクト機能ライセンス
OpenConnector認証情報の処理、アクションの発見と実行、ランタイムアクセス制御、セルフホストデプロイApache-2.0
OpenFlowコードとAIタスク、分岐、人間の承認、セルフホストデプロイを備えたビジュアルワークフロー(ベータ)Apache-2.0
OO-CLIローカルエージェント向けにコマンドラインからコネクタアクションを発見、検査、呼び出しMIT
Connector SDKアプリケーションコードからゲートウェイを呼び出すための軽量TypeScript HTTPクライアントMIT

開発者は権限宣言、アクションスキーマ、エグゼキューターコードを検査できます。また、独自のOpenConnectorを実行することもできます。セルフホスト運用者はストレージ、認証、独自のOAuthアプリを設定し、デプロイドキュメントに従って環境を維持します。セルフホストセットアップ

OpenFlowはワークフローステップを検査可能なキャンバスに配置します。独立して実行でき、OpenConnectorなどのコネクタランタイムを使用してアプリのアクションを発見および実行できます。アカウント認証情報は接続層に留まり、ワークフローは接続IDを参照します。プロジェクトは現在ベータ版です。OpenFlowがアプリを接続する方法

これらのプロジェクトは、接続、ワークフロー、クライアントアクセス機能を提供します。各リポジトリのライセンスがそのオープンソース範囲を定義し、サードパーティのサービスとアセットは独自の条件を保持します。私たちのオープンソースページは、プロジェクト、Star数、参加パスをまとめています。

認可と接続セキュリティを共に改善する

貢献の価値は、それが解決する問題によって明らかになります。これら2つのマージされたコミュニティプルリクエストは、権限宣言と接続ライフサイクル処理に対処しています。それらは公開リポジトリでの改善を示していますが、Leinaの現在のプロダクションバージョンがこれらの変更をデプロイしたことを確立するものではありません。

Gmail:読み取り専用タスクのためのアクセス要求

以前のGmail宣言は、サービスアカウントとユーザーOAuthの両方に1つのスコープリストを使用していました。そのリストはサービスアカウントには適切でしたが、ユーザーOAuth統合が要求できるスコープからgmail.readonlyを省略していました。メッセージを読むことだけが必要な統合は、その宣言だけでは読み取り専用アクセスを要求できませんでした。

PR #586で、貢献者**@bakey**はリストを分離しました。ユーザーOAuth宣言は読み取り専用アクセスを追加し、サービスアカウントは既存のスコープリストを保持します。これにより、読み取り専用統合が適切な許可を選択でき、既存のサービスアカウント認可が維持されます。PRはまた、それらの境界に対する回帰チェックを追加します。

メール要約タスクの場合、このような詳細が統合に必要なアクセス量に影響します。宣言と変更を公開することで、開発者は境界を検査し、自身の統合に適したスコープを選択できます。

OAuth:切断された接続を切断されたままにする

認可は他の操作と重複する可能性があります。進行中のOAuthコールバックが、ユーザーが切断した後に完了し、認証情報をストレージに書き戻す可能性があります。

貢献者**@powerfulZ**はPR #698でその競合に対処しました。切断は永続的なリタイアメント世代を進めます。認証情報を保存する前に、認可フローはキャプチャした世代がまだ有効かどうかをチェックします。古い認可フローは切断された接続を復元できなくなり、新たな明示的な同意は再接続できます。

PRの検証記録は、関連するSQLite、D1、PostgreSQLストレージパスをカバーしています。この改善により、「切断」の背後にある状態変更がより完全になり、メンテナーに再度確認するための公開回帰カバレッジが提供されます。

これらの結果は、プロジェクトのメンテナンスとコミュニティの貢献を組み合わせています。私たちは貢献者のクレジットを保持し、追加された機能、修正、参加者をリリースノートで公開しています。

証拠を確認し、タスクにアクセスを合わせる

公開ソースは、ユーザーと開発者に検査すべき具体的なものを提供します:コネクタが宣言する権限、アクションが受け入れる入力、そのエグゼキューターが上流アプリを呼び出す方法、修正によって追加されたチェック。

それを使用するには、特定のアプリ、アカウント、操作を確認する必要があります。OpenConnectorは、カタログカバレッジ、ローカルで実行可能なアクション、実際の上流APIに対して検証された証拠があるアクションを区別します。接続の合計はカバレッジを表し、特定のタスクの可用性は独自の確認が必要です。プロジェクト検証言語

チームユーザーの場合、Leinaを通じて明確な読み取り専用タスクから始めてください。結果とそのソースを確認し、必要に応じてアクセスを拡大します。アカウント認可と最初のタスクについては安全なアプリ接続を、共有アクセス境界についてはチームエージェント権限をお読みください。

開発者の場合、OpenConnectorを実行し、必要なアクションを検査し、エージェントまたは製品を接続します。再現可能な手順で問題を報告してください。コード、ドキュメント、チェック結果を提出する際は貢献ガイドに従ってください。認証情報の露出や潜在的な脆弱性はセキュリティポリシーを通じて非公開で報告してください。

私たちは主要なコンポーネント実装を開発者のレビューと使用のために提供し、公開コラボレーションを使用して認可と接続を改善します。チームはLeinaの背後にある基盤を検査でき、他の開発者はプロジェクトを再利用し、改善をコミュニティに還元できます。