販売者(Usakeyの利用者)向け
製品アプリに認証を組み込む
AIアシスタント(MCP)に任せる方法と、SDKを自分で組み込む方法の2通りを説明します。
2つの進め方
製品アプリに「ライセンスキーで端末を認証し、機能を使ってよいかを判定する」処理を組み込みます。どちらの進め方でも、使うのはUsakeyの公式SDKで、製品アプリの端末の中で鍵を作り、Usakeyの署名付きの応答を確かめます。
| 比べる点 | AIアシスタントに任せる | SDKを自分で組み込む |
|---|---|---|
| 向いている場合 | Claude CodeやCodexを使っていて、組み込みからテストまで任せたい | 組み込む場所や画面を自分で細かく決めたい |
| 用意するもの | AIアシスタント(MCPに対応したもの) | SDKと、製品アプリの言語のビルド環境 |
| 使う画面 | 「AIアシスタントの接続」とブラウザの許可画面 | 「API・SDK」 |
AIアシスタントに任せる
UsakeyはAIアシスタント向けのMCPサーバー(https://usakey.jp/mcp)を公開しています。AIアシスタントに登録してブラウザで許可すると、AIがUsakeyのスキル(AI向けの手順書)を読み、製品アプリへの組み込みを進めます。APIキーやNode.jsの用意は要りません。
-
手順1接続の手順を開く
-
手順2AIアシスタントにMCPサーバーを追加する
Claude CodeやCodexのように、コマンドを実行できるAIアシスタントに、次の指示文を貼り付けてください。AIがMCPサーバーを追加し、ブラウザでログインして許可する手順を案内します。
https://usakey.jp/mcpをUsakeyのMCPサーバーとして、このAIアシスタントにusakeyという名前で追加してください(HTTPS接続)。追加できたら、ブラウザでUsakeyにログインして接続を許可する手順を教えてください。AIが追加を終えると、ブラウザでUsakeyの画面が開きます(Claude Codeでは、AIの案内に従って
/mcpからusakeyを選んで「Authenticate」を押します)。指示文を使わずに、お使いのAIアシスタントで次のどちらかを実行します。
- Claude Code
claude mcp add --transport http --scope user usakey https://usakey.jp/mcpClaude Codeの中で
/mcpを開き、usakeyを選んで「Authenticate」を押すと、ブラウザが開きます。- ChatGPT(Codex)
codex mcp add usakey --url https://usakey.jp/mcp追加するとログインが始まり、ブラウザが開きます。
ほかのAIアシスタントの登録方法は、開発者ドキュメントの「MCPを追加する」にあります。
-
手順3ブラウザでログインして、許可する範囲を選ぶ
ブラウザにUsakeyの許可画面が開きます(ログインしていなければ、先にログイン画面が開きます)。接続を求めているアプリ、許可するアカウント、接続する「契約組織」を確かめ、「許可する範囲」を選んで「許可する」を押してください。
- 「スキルだけ使う」: スキルを読むだけで、管理操作はしません。組み込みだけならこれで足ります。
- 「参照だけ許可する」: 製品・ライセンス・操作履歴などを見られます。
- 「日常の運用を許可する」以上: ライセンスの発行や一時停止も頼めます。選べるのはオーナーと管理者だけで、「操作する環境」も選びます。
名前を確かめられないアプリは「未確認のアプリ」と表示され、既定は「スキルだけ使う」になります。心当たりのない接続は許可しないでください。

-
手順4接続を確かめて、AIに頼む
許可した接続は、管理画面の「AIアシスタントの接続」に表示されます。あとはAIアシスタントに、日本語で頼むだけです。
UsakeyのMCPのスキルを使って、RustとGPUIでシンプルな時計アプリを作って、ライセンス認証と状態表示を実装して接続の見直しや取り消しはAIアシスタントの接続を管理するで説明します。

SDKを自分で組み込む
-
手順5接続に使う値と設定ファイルを取り出す
-
手順6SDKとひな形を取り出す
-
手順7機能の入口ごとに判定する
Pythonのひな形なら、次のように使います。
export_pdfは、利用ルールの「製品アプリへ渡す機能・数量(JSON)」に入れた名前です(はじめての設定)。license = LicenseManager( load_config(Path("usakey.config.json").read_text(encoding="utf-8")), create_open_client(), # SDKのPython版を使う FileStateStore(directory), FileKeyStore(directory), plan="developer", # 販売元(あなた)のプラン locale="ja", ) license.activate(user_entered_key) # 初回だけ。キーは保存しない license.check() # 起動時と、予定の時刻に確認する decision = license.require_feature("export_pdf") if not decision["allowed"]: show_message(decision["title"], decision["action"])- 判定は画面の表示ではなく、保護する機能の入口(ボタン、メニュー、ショートカット、コマンドなど)ごとに呼びます。
- 状態の確認は、ひな形が決める予定の時刻に送ります。起動のたびに何度も確認すると、1日の回数の上限にすぐ達します。
- SDKが確かめるのは、Usakeyの署名付きの応答です。ライセンスキーは端末に保存しません。
Node.jsのひな形の使い方、ほかの言語での組み込み、APIの仕様は、SDKのREADMEと開発者ドキュメントにあります。
ブラウザアプリの認証とCORS
GodotやWASMなどを使ってブラウザ上で動く製品アプリが、CORS制約でUsakeyに直接接続できない場合に設定します。アプリの配信元を登録して有効にすると、ブラウザから端末認証やライセンス確認を直接行えます。
管理画面の「製品」で対象の製品を編集し、「ブラウザからのライセンス認証」にアプリの配信元を登録して有効にしてください。
配信元には「https://game.example.com」のように、アプリを配信するURLのスキーム・ホスト名・必要なポート番号を入力してください。パスは含めません。HTTPSの配信元を最大20件まで登録できます。テスト製品では、localhostなどローカル環境のHTTP接続も使えます。
許可した配信元から、端末認証やライセンス確認を直接行えます。端末の署名と応答の署名検証は引き続き必要です。管理画面や管理APIには適用されません。
GodotやWASMでの通信方法、MCP・管理APIでの設定手順は、開発者ドキュメントを確認してください。 ブラウザから認証する手順
組み込んだら確かめる
組み込みが終わったら、発行したライセンスキーで端末を認証し、ライセンスを一時停止すると製品アプリが止まり、再開すると戻ることを確かめてください。手順は認証のオン/オフを確かめるにあります。
画面はテスト環境で架空のデータを使って撮影しています。製品IDなどの識別子、ライセンスキー、認証トークンは伏せています。画面の細部は、改善に合わせて変わることがあります。


