APIキー・トークンとは?違いと扱い方を簡単解説

まずは、これだけ

APIキーやトークンは、APIを使うときに一緒に送る「身分証」や「許可証」のようなもの。
誰の利用か、どこまで使ってよいかをAPI側が確認するために使います。

アプリがAPIキーを付けてAPIへリクエストし、APIが利用者を確認して外部サービスへつなぐ様子
APIキー:どのアプリからの利用か トークン:許可された利用か

APIキーは「どのアプリか」を伝える鍵

APIキーは、APIを利用するアプリや開発者を識別するための文字列です。天気APIや地図APIなどを使うとき、サービス側はAPIキーを見て「誰からの利用か」を確認します。

鍵という名前ですが、家の鍵のように何でも開けられるものではありません。利用量の計測、料金の管理、不正利用の停止などに使われる、サービス利用の識別子と考えると分かりやすいです。

アプリを識別

どのアプリや開発者からのリクエストかを確認する。

利用状況を管理

リクエスト回数や料金、制限の判定に使われる。

公開しない

第三者に使われると、自分の利用として扱われることがある。

トークンは「何をしてよいか」を伝える許可証

トークンは、ログインや認可の後に発行されることが多い、期限付きの許可証です。APIはトークンを見て、どのユーザーが、どの範囲まで操作できるかを確認します。

たとえば「プロフィールを読むだけ」「投稿を作成できる」「管理画面は使えない」のように、できる範囲を絞って扱えるのがトークンの大事な役割です。

APIキーはアプリの身分証、トークンはユーザーの許可証としてAPIが権限を確認する違いを示した図解
APIキーは「どのアプリか」、トークンは「誰が何を許可されたか」を伝えるために使われます。
APIキー

主にアプリや開発者を識別し、サービス利用を管理する。

トークン

主にユーザーの許可や操作できる範囲を表す。

有効期限

トークンは短い期限で切れ、再発行されることが多い。

リクエストに添えてAPIへ送る

APIキーやトークンは、APIへリクエストするときに一緒に送ります。よくある形は、HTTPヘッダーに Authorization として入れる方法です。

ただし、送る場所や名前はAPIごとに違います。利用するサービスの説明書を読み、指定された方法で送る必要があります。

1 取得する サービスでキーやトークンを受け取る
2 保存する 公開されない場所に置く
3 添える APIリクエストに一緒に入れる
4 確認される API側が利用者や権限を見る
5 結果が返る 許可されれば処理結果を受け取る

画面に直接書かない

APIキーやトークンは、他人に見られると勝手に使われる可能性があります。HTMLやブラウザで動くJavaScriptに直接書くと、ページを見た人から読めてしまいます。

サーバー側で扱う、環境変数に置く、不要になったら無効化するなど、公開されない場所で管理します。スクリーンショットやサンプルコードに本物のキーを載せないことも大切です。

APIキーはサーバーや環境変数に置き、HTMLやJavaScript、スクリーンショットでは公開しないことを示した図解
本物のAPIキーやトークンは、公開ページ・公開リポジトリ・スクリーンショットに出さないようにします。
サーバー側に置く

ブラウザへ渡さず、必要な処理をサーバーからAPIへ送る。

環境変数を使う

コードとは別の場所で値を管理し、公開リポジトリに入れない。

漏れたら止める

流出したキーやトークンは無効化し、新しいものに切り替える。

ここまでのまとめ

APIキーは、主に「どのアプリや開発者からの利用か」を伝えるものです。トークンは、主に「誰が、どの範囲まで許可されたか」を伝えるものです。

APIキーやトークンは、APIを使うための大事な合い言葉。使い方より先に、漏らさない置き場所を決めておくのが安心です。