概要
kintoneと外部サービスとのAPI連携など、機密情報を安全に扱いたい場面があると思います。ここでは、kintone の認証情報管理プラグインSAMPLE-api-key-management(https://github.com/kintone-samples/SAMPLE-api-key-management)を使って、キーを隠蔽した状態でプラグインを構築する方法をご紹介します。
対象読者
- kintone で認証情報管理プラグインを導入したい方
- kintone カスタマイズで API キーなどの機密情報を扱う方
前提条件
- Node.js がインストールされていること
- 開発環境: Windows 11 + VS Code など
- kintone カスタマイズの基本知識
実装手順
公式 README に沿って基本セットアップを行いますが、途中で発生したエラーとその解決方法も併せて解説します。
1. リポジトリをクローン
git clone https://github.com/kintone-samples/SAMPLE-api-key-management.git
2. 依存関係のインストール
cd SAMPLE-api-key-management
npm install
3. プラグインをビルド(production)
npm run build:prod
この段階で、以下のエラーが発生する場合があります。
[webpack-cli] Error: privateKeyPath cannot found: ./private.ppk
原因
プラグインの署名に必要な秘密鍵ファイル private.ppk が存在しないためです。
解決方法
-
@kintone/plugin-packerをグローバルにインストール。npm install -g @kintone/plugin-packer -
プラグインディレクトリでパッケージを実行し、鍵を生成。
kintone-plugin-packer plugin -
警告が出ますが、
plugin.zipと同じディレクトリに(ランダムな文字列)xxx...xxx.ppkが生成されます。 -
生成された鍵ファイルを
private.ppkにリネームし、manifest.json を元に戻します。
4. 再度ビルドを実行
npm run build:prod
ビルドが成功し、dist/plugin.zip が出力されます。
----------------------
Success to create a plugin zip!
Plugin ID: mgdjdckafifhogbpdlahggegdaembchj
Path: ./dist/plugin.zip
----------------------
プラグインのアップロード
生成された dist/plugin.zip を kintone の管理画面からアップロードすると、認証情報を秘匿したプラグインが利用可能になります。
まとめ・考察
-
private.ppkがないとビルドエラーになる -
kintone-plugin-packerで鍵を生成し、リネームして対応 - 最終的に
npm run build:prodで問題なく ZIP が出力される -
npm run build:prodでエラーが発生したのはOSの問題かと思いましたが、Macで試してもWindowsでも同じ結果だったため根本原因は分からずじまいでした。有益な情報をお持ちな方はコメントいただけますと幸いです。
以上の手順で、SAMPLE-api-key-management プラグインを正しくセットアップできます。ご活用ください!