コンテンツにスキップ

API キーを作る、権限を決める

API キーは、Content API を使うための鍵です。キーごとに、何をしてよいか(権限)を決められます。このページでは、キーを発行し、権限を決め、要らなくなったキーを止めるまでを説明します。

  • スペースで API キーを管理できるロールが要ります。初めからあるロールでは、[オーナー]と[管理者]です
  • API キーは、スペースごとに発行します。キーで呼べるのは、そのキーのスペースのエントリーとメディアだけです

API キーを発行するには、次のようにします。

  1. 管理画面の左のメニューで、[API キー]を押します。
  2. [名前]に、キーを見分けるための名前を入れます(例:「本番サイト」)。名前は 1〜100 文字です。
  3. [発行]を押します。

「API キーを発行しました。このキーは今しか表示されません。安全な場所に控えてください」と表示され、hako_ で始まるキーが表示されます。

キーはこのときに 1 度だけ表示されます。 Hako CMS にはキーそのものは残りません。なくしたときは、新しいキーを発行してください。

発行したばかりのキーの権限は[読み取り]だけです。公開中のエントリーを読むことだけができます。

権限は、エントリーの操作ごとに決めます。

権限 できること
読み取り 公開中のエントリーを読む
プレビュー preview=true を付けて、下書きも読む。[読み取り]も要る
作成 エントリーを作る。作ったエントリーは下書きになる
更新 下書きを変える、捨てる
公開 公開する、公開をやめる、公開の日時を予約する
削除 エントリーを削除する

権限を変えるには、次のようにします。

  1. [API キー]の画面で、権限を変えたいキーの名前を押します。
  2. [権限]の表の[既定(すべてのコンテンツタイプ)]の行で、許す操作にチェックを入れます。
  3. (省略可)コンテンツタイプごとに変えたいときは、そのコンテンツタイプの行の[個別に設定]にチェックを入れ、許す操作にチェックを入れます。
  4. (省略可)メディアの API を使うときは、[メディア]で[読み取り][アップロード][編集][削除]のうち、許す操作にチェックを入れます。
  5. [保存]を押します。

「保存しました」と表示されます。変えた権限は、次のリクエストからすぐに効きます。

[個別に設定]にチェックを入れたコンテンツタイプでは、既定の権限は使われず、個別の権限だけで決まります。既定の権限と足し合わせることはありません。たとえば、既定で[読み取り]を許していても、個別の権限で[読み取り]を外したコンテンツタイプは読めません。

メディアの権限は、エントリーの権限とは別に決めます。

API キーをブラウザで動くコードに入れると、サイトを見た人が誰でもキーを見られます。

  • [読み取り]だけのキーは、ブラウザに渡してもかまいません。公開中のエントリーは、もともと誰に見せてもよいものだからです
  • [プレビュー]や、書き込み([作成][更新][公開][削除])、メディアの権限を持つキーは、ブラウザに渡さないでください。 サイトのサーバーの中だけで使います

公開中のページと、下書きのプレビューや書き込みとで、キーを分けると安全です。

キーが漏れたときや、使わなくなったときは、キーを失効させます。

  1. [API キー]の画面で、止めたいキーの行の[失効]を押します。
  2. 確かめの画面で、もう一度[失効]を押します。

キーはすぐに使えなくなります。そのキーで呼ぶと 401 が返ります。失効したキーは[失効したキー]の一覧に移ります。

止めたキーをもう一度使うときは、[失効したキー]の一覧で、そのキーの[再び有効にする]を押し、確かめの画面でもう一度[再び有効にする]を押します。同じキーが、失効したときの権限のまま、また使えるようになります。キーが漏れたために止めたときは、再び有効にせず、新しいキーを発行してください。

発行したキーで、公開中のエントリーを取り出してみます。<ホスト名> はあなたの環境のホスト名、<コンテンツタイプ ID> はコンテンツタイプの[エンドポイント]の値、<API キー> は発行したキーに置き換えてください。

ターミナルウィンドウ
curl https://<ホスト名>.hakocms.net/api/v1/content/<コンテンツタイプ ID> \
-H "Authorization: Bearer <API キー>"

items と total を持つ JSON が返れば、キーは使えています。401 が返るときは、キーが違うか、失効しています。403 が返るときは、キーにその操作の権限がありません。