見出し画像

ライセンス管理 keygen - 実際に使ってみよう!

前回は、ライセンス管理ツール "keygen" についてお話しました。

"まだ見てないぜ!"

って方はこれからでも良いのでご覧くださいね。

⬇️ ライセンスを管理する - keygen を使おう! ⬇️

さて、keygen がなにものか!
ということがわかったところで、実際に使ってみたいと思います。



アカウントを作る

まずはアカウントを作らなければなりませんので、kedygen にアクセスしてアカウントを作りましょう。

1. "Sign Up" を押す

2. アカウント登録

メールアドレスとパスワードを入力するだけですね👍

登録出来たら、こんなウィンドウが開きます。

そして、ダッシュボードに入れたら、アカウント作成完了です。

keygen の設定

プログラムを作っていく前に、まずは keygen にて "商品" や "ポリシー" などを作っていきましょう。

と、その前に…

商品はわかるけど、ポリシーってなによ?💢💢

という方もいると思うので、いったんこのあたりを説明しておきましょう。

keygen で使われる設定 (キーワード)

keygen で使われる設定には、いろいろあります。

・Products:ライセンス管理対象となるソフトウェア
・Entitlements:細かなアクセス権
・Groups:エンタイトルメント、ライセンス、ポリシーを管理するグループ
・Policies:利用条件や制約を設定するルールセット
・Licenses:アクセス権の提供
・Machines:ライセンスがバインドされるデバイス
・Components:商品を構成する特定の機能やモジュール
・Processes:特定の操作やワークフローの自動化
・Users:エンドユーザー

いろいろと設定はありますので、やろうと思えばすっごく細かく設定が可能です。

Machines で IPアドレスやプラットフォームを管理したり、Components でマザーボードのシリアルを管理することが出来たりします。

ユーザーやマシン、場所を特定することが出来るので、不正アクセス防止にはかなり役立ちます✨

しかし…、普通はそんなにがっつりしませんよね💦

ということで、最低限必要なものだけ登録していきましょう。

全体像

Licenses:ライセンス
 ┗ Policies:ルールセット
  ┗ Products:製品

まずは、License (ライセンス) ですね。
ちゃんとライセンスキーもっている人だけ使える、というやつです。

License は、Policies (ポリシー) を設定する必要があります。
Policies は、利用条件や制約などを設定するためのものです。

例えば、追加機能を使うためのポリシーを設定する、などが出来ます。

また、この Policies は、必ず Product と紐づける必要があります。
Product は、製品そのものですので、製品名を設定すればOKです。

細かくは、次を見ていきましょう。

各種設定

Products:ライセンス管理対象となるソフトウェア

まずは、Product を設定します。
※Policies で使いますので👍

とりあえず名前を設定すればOK🤣

Policies:利用条件や制約を設定するルールセット

 :中略

いろいろと設定項目があって「どうしたらいいの~?」ってなりますが、何にも設定しなくても大丈夫ですので、気にせず進みましょう👍

必須項目は、Product だけです。

Licenses:アクセス権の提供

これが基本のライセンスキーですね。

基本はこれだけあればいいんですが、このライセンスキーを設定するために、ポリシーとプロダクトを設定している、という感じです🤣

さて、これで keygen 上での設定が完了しました。

では、実際にライセンスキーをチェックしていきましょう。

ライセンス確認

今回は、Next.js を使って確認していきます。

ライセンスキーの確認用のエンドポイントを作って、サーバーサイドでライセンス確認をしていきます。

ライセンスキーを確認するためには、アカウントID やアクセストークンを扱いますので、必ずサーバーサイドで確認しましょう。

さて、確認用のソースは以下の通りです。

export default async function handler(req, res) {
  if (req.method !== 'POST') {
    return res.status(405).json({ error: 'Method not allowed' });
  }

  const { licenseKey } = req.body;

  const KEYGEN_ACCOUNT_ID = process.env.NEXT_PUBLIC_KEYGEN_ACCOUNT_ID;
  const KEYGEN_TOKEN = process.env.KEYGEN_TOKEN;

  try {
    const response = await fetch(`https://api.keygen.sh/v1/accounts/${KEYGEN_ACCOUNT_ID}/licenses/actions/validate-key`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${KEYGEN_TOKEN}`,
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      },
      body: JSON.stringify({
        meta: {
          key: licenseKey,
        },
      }),
    });

    const data = await response.json();

    if (!response.ok) {
      // エラー処理
      return res.status(400).json({ error: data.errors });
    }

    // ライセンスが有効な場合の処理
    res.status(200).json({ valid: true, license: data.data });
  } catch (error) {
    // ネットワークエラーなどの例外処理
    res.status(500).json({ error: 'ライセンス検証中にエラーが発生しました。' });
  }
}

KEYGEN_ACCOUNT_ID は、自分のアカウントID です。
YOUR ACCOUNT > Settings で確認してください。

KEYGEN_TOKEN は、アクセス用のトークンです。
ACCESS > API Tokens で作成してください。

これでライセンスキーの有効/無効の確認ができるようになります。

詳しくは、公式ドキュメントを確認してくださいね。

今回は、単純にライセンスキーの確認をするだけでしたが、機能が有効化どうか、期限付きのものかどうか、など非常に細かく設定できますので、ぜひぜひいろいろと触ってみてくださいね。

まとめ

前回/今回と、ライセンス管理ツール (SaaS) である keygen についてお話してきました。

いかがでしたか?

ライセンス管理したい!
という要望はなかなか無いかと思いますが、もし必要になった時にでも思い出して使ってみてください。

無料でも十分使えますからね👍

もしわからないことがありましたら、お気軽に LINE公式アカウント でご質問くださいね。

⬇️LINE公式アカウントに登録してご連絡ください⬇️

いいなと思ったら応援しよう!

Mr.Green@ITxマーケティング|やさしく・ふかく・おもしろく
もし「サポートしたい!」という方がいらっしゃいましたら、ぜひぜひサポートをお願いいたします! 開発費や外注費などクリエイター活動の一部として使用させて頂きます✨