Buzz NIP-FA: フェデレーテッドアイデンティティアダプター
Buzz NIP-FAは、Buzzプロジェクトによるドラフト段階の任意仕様です。公式のnostr-protocol/nipsリポジトリで採択されたNIPには含まれていません。
この仕様は、Nostrクライアントとエンタープライズ向けIDアダプターの間で、特定のプロバイダーに依存しないHTTP契約を定義します。ブラウザでログインすると、アダプターはそのユーザーのセッションを保持します。アダプターは、ユーザーをNostr鍵に結び付けるプロジェクト固有のBuzz NIP-FIアサーションを発行します。クライアントは、その鍵を管理していることをNIP-98で証明します。各アサーションの有効期間はオペレーターが選択します。この有効期間は、リレーが受け入れている発行者のmaximum_assertion_ageを守る必要があり、expはアダプターのセッション有効期限を超えることができません。選択した有効期間によって、失効した鍵がリレーの再起動後になお再接続できる期間の上限が決まります。また、クライアントは有効期間だけを理由にアサーションを拒否してはなりません。NIP-FIと公式NIPに変更はありません。ログインでは、S256ハンドオフチャレンジと、127.0.0.1または[::1]上のループバックコールバックを使用します。このコールバックは一度だけ使えるコードを受け取ります。OIDCやSAMLなどの上流システムはアダプターの背後に置かれます。どのリレーがエンタープライズIDを必要とするかを見つける方法は、他の仕様に委ねられています。
一次情報源: Buzzリポジトリ内のNIP-FA仕様。
エージェント認証情報
Buzzはオーナーが認可したエージェント認証情報のためのNIP-FAドラフトをマージしました。このドラフトは、オーナーがNIP-OAを通じて認可したエージェント向けに、グラント、アサーション、失効の各ルートを定義します。グラントはRFC 8693のトークン交換によって発行され、オーナーのセッションとエージェントによるNIP-98証明を組み合わせます。アサーションを取得する際、エージェントはグラントをBearerトークンとして自身の証明とともに提示し、クライアントはアサーションのissをグラントの発行者と照合します。エージェントの証明は一度だけ使用でき、グラントとアサーションのルート専用です。失効はエージェントの証明を使わずにオーナーのセッション上で実行され、エージェント鍵とそのグラントを失効させ、エージェントを切断します。グラントの有効期間はアダプターのポリシーによって決まります。サポートされていない認可条件は拒否され、失効した鍵は再登録できません。NIP-FAはBuzzの仕様であり、採択されたNIPではありません。今回のマージはソースコード上のものに限られ、本番環境での有効化、リリース済みビルド、相互運用性を主張するものではありません。