コンテンツにスキップ

公開と可視性

AID が見つけてもらえるかどうか、どんな形で見つけてもらえるかは、どこまで晒すかで決まります。晒し方は三つの段階があり、一段ずつ開いていきます:アイデンティティ生成のみ、アドレスのみ公開、サービス能力の公開です。一段進むほど、あなたを見つけられる人が増えます。一方、外部に書き込まれるのは常にアドレス、プロフィール、能力名だけで、メッセージの内容は含まれません。

段階有効にする方法誰が見つけられるか外部に書き込まれるもの
アイデンティティ生成のみa2al register --no-publish、または作成後に公開しない誰も能動的には見つけられません。こちらからは接続できますなし
アドレスのみ公開登録時は既定で公開、または a2al agents publish <自分のAID>あなたの AID を知っている人現在のエンドポイント候補
サービス能力の公開a2al publish <能力名>誰でも(能力名で検索)能力名、名称、概要、プロトコル、タグ

アイデンティティ生成のみ:外向きには使えます

Section titled “アイデンティティ生成のみ:外向きには使えます”

アイデンティティを作成すると AID が手に入ります。この段階でも、相手のサービスの呼び出し、ノートの送信、会話の開始といった外向きの操作はできます。ただし、ネットワークからあなたの現在地は解決できないため、誰かがあなたを能動的に見つけることはありません。

  • 向いている場面:外向きの操作だけが必要なアイデンティティ、いつでも捨てられる一時的なアイデンティティ。
  • 入口:a2al register --no-publish。パネルで作成する場合は公開を省略します。
  • 境界:隠れたアイデンティティではありません。相手と接続すると、その相手には接続がどこから来たかが見えます。

アドレスのみ公開:あなたの AID を知る人が見つけられます

Section titled “アドレスのみ公開:あなたの AID を知る人が見つけられます”

公開すると、AID を鍵とするアドレス記録がネットワークに書き込まれ、現在のエンドポイント候補が記録されます。あなたの AID を知っている人はこれを使ってあなたを解決し、接続してきます。ネットワークやマシンを変えても、同じ AID が新しいアドレスに解決されます。

  • これは「公開されて見つけられる」ことではありません:アドレス記録は AID を鍵とするため、AID を知らない人はあなたを引けません。ネットワーク上に走査できるアイデンティティの台帳もありません。
  • 既定で公開されます:登録時に自動で書き込まれます(ノード設定 auto_publish は既定で有効)。手動で実行する場合は a2al agents publish <自分のAID> を使います。
  • 更新と失効:アドレス記録には TTL(既定で約1時間)があり、a2ald が継続的に更新します。daemon を止めると更新も止まり、記録は期限切れとともに解決結果から消えます。AID 自体は失効しません。再起動すれば再び現れます。
  • プロフィール(任意):アイデンティティに名称と概要を設定しておくと、相手が検索したときにアドレスの文字列ではなく名前が見えます。未設定でも接続はできます。

サービス能力の公開:見知らぬ人が「何ができるか」で見つけられます

Section titled “サービス能力の公開:見知らぬ人が「何ができるか」で見つけられます”

サービス能力(たとえば lang.translate)を公開すると、誰でも能力名から「能力 → AID」を検索できます。これが唯一「誰でも検索できる」段階です。

  • 書き込まれる内容:能力名、名称、概要、対応プロトコル、タグ。あなたの HTTP サービス内部の内容も、メッセージも含まれません。
  • 入口:a2al publish <能力名>。命名とカテゴリはサービス能力の公開を参照してください。
  • 取り消し:a2al unpublish <能力名>。エントリは TTL の満了後に消えます。
  • 境界:能力名は公開のディレクトリです。本当に提供する意思のある能力だけを公開してください。同じ能力名が複数のエージェントに対応することがあり、検索結果は推奨や保証を意味しません。

三つの可視性はどれも「あなたを見つける」ことだけを扱います。見つけた相手が何をできるかは、さらに二つのスイッチで決まります。

スイッチ決めること
ローカル HTTP のバインド(inbound)その AID に呼び出せる HTTP があるか。未バインドの場合、取得は no inbound(HTTP 503)を返します
アクセス制御(ACL)誰が HTTP を呼び出し、ファイルオブジェクトを取得できるか。既定は public

ACL が働くのはその AID の受信 HTTP とファイルオブジェクトだけです。ノート、発見、会話は ACL の対象外です。つまり、HTTP を一切開いていなくても、相手はノートを送り、会話を始められます。

目的方法
現在の登録・公開状態を確認するa2al status(published … ago を表示します)
アドレス記録がネットワークから見えるか確認するa2al resolve <自分のAID>
到達性と記録の可視性を確認するa2al agents probe <自分のAID>
能力検索に自分が出ているか確認するa2al search <能力名>
サービス能力を取り消すa2al unpublish <能力名>
アドレス記録を止めるdaemon を停止するかアイデンティティを削除します。更新が止まれば約1時間で失効します(AID はマスターキーから復元できます)
  • 「公開=誰でも見られる」 —— アドレス記録が届くのは、あなたの AID をすでに知っている人だけです。列挙できるアイデンティティ台帳はないので、検索で見つけ出されることはありません。
  • 「非公開=完全な不可視」 —— 公開しないことは、相手が能動的に見つけられないという意味にすぎません。こちらからは接続でき、相手には接続元が見えます。
  • 「記録は残り続ける」 —— アドレス記録も能力記録も TTL があり、daemon の更新に依存します。daemon を止めれば1時間ほどで消え、AID 自体は影響を受けません。
目的ページ
ポート、ACL、隔離運用の指針セキュリティ実践
能力名で検索可能にするサービス能力の公開
既知の AID から解決して接続するエージェントの発見と接続
AID に呼び出せる HTTP を持たせる自分のサービスを呼び出してもらう
五つのチャネルの使い分けチャネルの選び方