mcpField
C
chanjing-credentials-guard

chanjing-credentials-guard

github.com/chanjing-aiセキュリティ2276 回インストール1 週間前に更新
リポジトリ

chanjing-credentials-guard について

Chanjing Credentials Guard は、Chanjing サービス利用者向けのローカル認証情報設定・検証スキルです。AK/SK の設定を案内し、ログインページを開いてトークンの有効性を管理します。チャットで秘密情報を求めません。

主な機能

  1. 01ローカル AK/SK 設定の確認
  2. 02認証情報のローカル設定案内
  3. 03Chanjing ログインページの表示
  4. 04アクセストークンの確認と更新
  5. 05チャットでの秘密情報の取り扱い回避

活用シーン

  1. 01Chanjing 認証情報のローカル設定
  2. 02認証情報の不足や無効時の復旧
  3. 03トークン更新の要否確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/chanjing-ai/chan-skills --skill chanjing-credentials-guard

インストール後、Claude Code で/chanjing-credentials-guardを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
reference.md
scripts/
chanjing_config.py
chanjing_get_token.py
open_login_page.py

詳細

Chanjing Credentials Guard

機能の説明

ローカルコマンドのみで、蝉镜のAK/SKとTokenの設定・確認を案内し、ログインページを開きます。会話中にキーを尋ねることはありません。ほかの Chanjing スキルと組み合わせて使用できます。

実行時の依存関係

  • python3 と scripts/chanjing_config.py、scripts/open_login_page.py、scripts/chanjing_get_token.py など

環境変数と機械可読な宣言

  • 環境変数のキー名と説明:manifest.yaml(environment セクション)および本文
  • 変数、書き込み先のパス、権限:manifest.yaml

使用コマンド

  • ClawHub(slug はレジストリに準拠):clawhub run chanjing-credentials-guard
  • このリポジトリ:python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

実行するタイミング

  1. ユーザーが Chanjing のキー(AK/SK)の設定や取得を求めた場合:ローカルでのセットアップを案内するため、このスキルを使用します。
  2. Chanjing API の呼び出し前に認証情報が不足または無効な場合:ローカル設定を復旧するため、このスキルを使用します。

このスキルはローカル認証情報の案内であり、ほかのスキルの実行時依存関係ではありません。

実行フロー

1. Check if local AK/SK exists
   └─ No  → Run open_login_page.py (open login in browser) → Ask user to run local config command
   └─ Yes → Continue

2. Check if local Token exists and is not expired
   └─ No  → Call API to request/refresh Token → Save
   └─ Yes → Continue

3. Prompt user to continue target action

認証情報の保存(AK/SK は設定ファイルから読み込み)

AK/SK と Token は同じ設定ファイルから読み込みます。パスと形式は、このスキルの scripts/chanjing_config.py に従います。

  • パス:~/.chanjing/credentials.json(ディレクトリは CHANJING_OPENAPI_CREDENTIALS_DIR で上書きできます。CHANJING_CONFIG_DIR との互換性があります)
  • 形式:
{
  "app_id": "Your Access Key",
  "secret_key": "Your Secret Key",
  "access_token": "Optional, auto-generated",
  "expire_in": 1721289220
}

expire_in は Unix タイムスタンプです。Token の有効期間は約24時間です。有効期限の5分前に更新してください。

AK/SK が不足している場合

ローカルの app_id または secret_key が不足している場合:

  1. ログインページを開く:open_login_page.py スクリプトを実行し、デフォルトのブラウザーで Chanjing のサインインページ(https://www.chanjing.cc/openapi/login)を開きます。
  2. ユーザーがキーを取得した後、ローカル設定コマンドの実行を必須とします:
    • コマンドのみを表示し、ユーザー自身がローカルのターミナルで実行します。
  3. 会話中にシークレットを求めないでください:
    • ユーザーに会話中で AK/SK を貼り付けるよう求めてはいけません。
    • 会話の要約で AK/SK を繰り返したり、保存したりしてはいけません。
  4. 設定後:
    • ユーザーにステータス確認を実行するよう依頼してから、目的の操作に進みます。

AK/SK の設定コマンド(いずれかを使用):

python scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>

ログインページを手動で開くには、python skills/chanjing-credentials-guard/scripts/open_login_page.py を実行します。

ユーザーがキーの生成を希望する場合の案内

ユーザーがchanjing のキーを生成する、キーを取得する、または AK/SK を設定することを明確に希望している場合は、次のフローに従います。

ステップ 1:すでに設定済みか確認

ローカルに AK/SK がすでに存在するか確認します(~/.chanjing/credentials.json の空ではない app_id と secret_key を読み取るか、python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status を実行します)。

ステップ 2:結果に応じて分岐
  • すでに設定済みの場合:ローカル設定を上書きするかユーザーに確認します。

    • 上書きする場合は、案内の手順に進みます。
    • 上書きしない場合は、終了します。
  • 未設定の場合:「案内の手順」に直接進みます。

案内の手順(未設定、またはユーザーが再設定を確認した場合)
  1. open_login_page.py を実行し、デフォルトのブラウザーで Chanjing のログインページを開きます。
  2. ページの流れを明確に説明します:
    • 新規ユーザーは自動的に登録され、現在のページにコピー用ボタン付きで App ID と Secret Key が表示されます。
    • 既存ユーザーはコンソールにリダイレクトされる場合があります。その場合は、左側の API 密钥 ページを開いてキーを確認またはリセットするよう伝えます。
  3. AK/SK を設定するローカルコマンドの実行をユーザーに依頼します:
    python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <your_app_id> --sk <your_secret_key>
    
  4. シークレットの取り扱いルール:
    • ユーザーに会話中で AK/SK を貼り付けるよう求めてはいけません。
    • ユーザーが会話中にシークレットを共有してしまった場合は、キーのローテーションを勧め、ローカルコマンドのみを使用するフローを続けます。
  5. 設定後:
    • ステータス確認を実行します: python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status
    • その後、目的の Chanjing 操作に進みます。

Token API(chanjing-openapi.yaml を参照)

POST https://open-api.chanjing.cc/open/v1/access_token
Content-Type: application/json

リクエスト本文:

{
  "app_id": "{{app_id}}",
  "secret_key": "{{secret_key}}"
}

レスポンス(成功時 code: 0):

{
  "code": 0,
  "msg": "success",
  "data": {
    "access_token": "xxx",
    "expire_in": 1721289220
  }
}
  • expire_in:Token の有効期限を示す Unix タイムスタンプ
  • code !== 0 の場合、AK/SK が無効か、リクエストが失敗しています

検証ロジック

  1. AK/SK:設定から読み込みます(上記のパス/形式、chanjing_config.py に準拠)。app_id と secret_key が空でないことを確認します。
  2. トークン:access_token が存在し、expire_in > current_time + 300(5 分前に更新)であることを確認します。
  3. トークンの更新:上記の API を呼び出し、返された access_token と expire_in をファイルに書き戻します。

ショートカット:python skills/chanjing-credentials-guard/scripts/chanjing_get_token.py を実行します。成功すると access_token を出力し、失敗するとガイダンスを出力します。

セキュリティ境界

  • このスキルはローカルの認証情報に関するガイダンスのみを扱います。
  • インストールフックや昇格された/システム全体の権限は必要ありません。
  • 無関係なスキルを自動的に実行しません。
  • チャットの内容を通じて AK/SK を受け付けません。

シェル設定

スクリプト説明
open_login_page.pyChanjing のログインページを開き、新規ユーザー/既存ユーザーが AK/SK を取得する方法を説明します
chanjing_config.pyAK/SK とトークンの状態を設定または表示します
chanjing_get_token.py有効な access_token を標準出力に出力します(失敗時はガイダンスを出力します)
# Open login page (also runs automatically when AK/SK is missing)
python skills/chanjing-credentials-guard/scripts/open_login_page.py

# Set AK/SK manually
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --ak <app_id> --sk <secret_key>

# View status
python skills/chanjing-credentials-guard/scripts/chanjing_config.py --status

他のスキルとの併用

  • 他の Chanjing スキルも同じローカル設定パス/形式を使用できますが、実行時の認証ロジックは各自で保持してください。
  • ユーザーが認証情報に関するガイダンスを明示的に求めた場合、Guard を任意のセットアップヘルパーとして使用できます。

参考資料

  • reference.md:API とストレージ形式の詳細
  • chanjing-openapi.yaml:/access_token、dto.OpenAccessTokenReq、dto.OpenAccessTokenResp

コメント