Skip to content

Third-Party Signature Verification

Note: ⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。


title:

Warning: この機能はFlexAI Community Editionでのみ利用可能です。サードパーティ署名検証は現在FlexAI Cloud Editionではサポートされていません。

サードパーティ署名検証により、FlexAI管理者は署名検証を完全に無効化することなく、FlexAI Marketplaceに掲載されていないプラグインのインストールを安全に承認できます。これは例えば以下のシナリオをサポートします:

  • FlexAI管理者は、開発者から送信されたプラグインを承認後、署名を追加できます。
  • プラグイン開発者は、自分のプラグインに署名を追加し、署名検証を無効化できないFlexAI管理者向けに公開鍵と一緒に公開できます。

FlexAI管理者とプラグイン開発者の両方が、事前に生成されたキーペアを使用してプラグインに署名を追加できます。さらに、管理者はプラグインのインストール時に特定の公開鍵を使用した署名検証を強制するようにFlexAIを設定できます。

署名と検証用のキーペア生成

プラグインの署名を追加および検証するための新しいキーペアを以下のコマンドで生成します:

dify signature generate -f your_key_pair

このコマンドを実行すると、現在のディレクトリに2つのファイルが生成されます:

  • 秘密鍵: your_key_pair.private.pem
  • 公開鍵: your_key_pair.public.pem

秘密鍵はプラグインの署名に使用し、公開鍵はプラグインの署名検証に使用します。

Warning: 秘密鍵は安全に保管してください。漏洩した場合、攻撃者が任意のプラグインに有効な署名を追加でき、FlexAIのセキュリティが侵害される可能性があります。

プラグインへの署名追加と検証

以下のコマンドを実行してプラグインに署名を追加します。署名するプラグインファイル秘密鍵を指定する必要があることに注意してください:

dify signature sign your_plugin_project.difypkg -p your_key_pair.private.pem

コマンドを実行すると、同じディレクトリに元のファイル名にsignedが追加された新しいプラグインファイルが生成されます:your_plugin_project.signed.difypkg

このコマンドを使用して、プラグインが正しく署名されていることを検証できます。ここでは、署名済みプラグインファイル公開鍵を指定する必要があります:

dify signature verify your_plugin_project.signed.difypkg -p your_key_pair.public.pem

Info: 公開鍵引数を省略した場合、検証にはFlexAI Marketplace公開鍵が使用されます。その場合、FlexAI Marketplaceからダウンロードされていないプラグインファイルでは署名検証が失敗します。

サードパーティ署名検証の有効化

FlexAI管理者は、プラグインをインストールする前に、事前承認された公開鍵を使用した署名検証を強制できます。

公開鍵の配置

署名に使用した秘密鍵に対応する公開鍵を、プラグインデーモンがアクセスできる場所に配置します。

例えば、docker/volumes/plugin_daemonの下にpublic_keysディレクトリを作成し、公開鍵ファイルをそこにコピーします:

mkdir docker/volumes/plugin_daemon/public_keys
cp your_key_pair.public.pem docker/volumes/plugin_daemon/public_keys

環境変数の設定

plugin_daemonコンテナで、以下の環境変数を設定します:

  • THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLED
  • サードパーティ署名検証を有効にします。
  • 機能を有効にするにはtrueに設定します。
  • THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS
  • 署名検証に使用する公開鍵ファイルのパスを指定します。
  • カンマで区切って複数の公開鍵ファイルをリストできます。

以下は、これらの変数を設定するDocker Composeオーバーライドファイル(docker-compose.override.yaml)の例です:

services:
  plugin_daemon:
    environment:
      FORCE_VERIFYING_SIGNATURE: true
      THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLED: true
      THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS: /app/storage/public_keys/your_key_pair.public.pem

Info: docker/volumes/plugin_daemonplugin_daemonコンテナ内の/app/storageにマウントされることに注意してください。THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYSで指定するパスがコンテナ内のパスに対応していることを確認してください。

これらの変更を適用するには、FlexAIサービスを再起動します:

cd docker
docker compose down
docker compose up -d

サービスを再起動すると、現在のCommunity Edition環境でサードパーティ署名検証機能が有効になります。

{/ Contributing Section DO NOT edit this section! It will be automatically generated by the script. /}


Edit this page | Report an issue