【えーぴーあいきー】

APIキー とは?

最終更新:
💡 APIの呼び出し元を示す「キー」

APIへのリクエストに添える、アプリやプロジェクトなどを識別する文字列。サービスによって認証・権限制御や利用量の管理に使われる。秘密として保護するキーと、公開を想定したキーがある。

📌 このページのポイント
キーを添え、API側が扱いを確認呼び出し元キーを添えるAPIサーバーキーの種類・利用先を確認認証・権限の確認は仕様次第送信識別・課金管理に使うキーもある本人確認や操作権限を一律には保証しない秘密のキーはサーバー側で保護
APIキーの役割はサービスと種類によって異なります。秘密のキーを公開コードへ含めず、公開可能なキーとの違いも確認します。
ひよこ ひよこ
APIキーってどう使うの?
ペンギン先生 ペンギン先生
APIの説明に従ってリクエストに添えるよ。指定されたヘッダーやライブラリーを使う方法がある。URLに秘密のキーを入れるとログなどへ残るおそれがあるので、送信方法を確認しよう。ヘッダー名や形式はどのAPIでも同じではないんだ。
ひよこ ひよこ
これで利用者本人が分かる?
ペンギン先生 ペンギン先生
必ずしも分からないよ。アプリやプロジェクトを識別するキーもある。Google Cloudの標準APIキーは課金・割り当てのためにプロジェクトを示すけれど、利用者本人を認証するものではない。キーを持つことと、人の本人確認を区別しよう。
ひよこ ひよこ
APIキーは全部秘密なの?
ペンギン先生 ペンギン先生
種類によるよ。Stripeにはフロントエンドで使える公開可能なキーと、サーバー側だけで保護する秘密のキーがある。公開可能なキーでも何でも操作できるわけではない。名前だけで判断せず、そのサービスの公開範囲と権限を確認してね。
ひよこ ひよこ
秘密のキーはどう管理するの?
ペンギン先生 ペンギン先生
シークレット管理の仕組みやサーバー側の環境変数から渡し、ソースコードや公開リポジトリに含めないようにするよ。.envを使う場合もファイル自体の保護が必要で、ブラウザーへ埋め込むと秘密にはできない。権限・利用先を必要な範囲に絞り、漏れたら無効化して利用履歴も確認しよう。
ひよこ ひよこ
OAuthとはどう違うの?
ペンギン先生 ペンギン先生
APIキーは文字列を使う識別・認証の方法で、OAuthはアクセス権を与えてトークンを発行するための枠組みだよ。OAuthは利用者の権限委譲にも、アプリ自身のサーバー間アクセスにも使える。「人ならOAuth、サーバーならキー」と一律には決められないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「APIキー」って出てきたら「APIの呼び出し元を示し、利用の管理に使う文字列」と思えばだいたいOK!
📖 おまけ:英語の意味
「API Key」 = APIキー
💬 API(アプリケーション連携の窓口)にアクセスするためのKey(鍵)だよ

参考資料

← 用語集にもどる