APIキーの概要
APIキーは、ランダムに生成されたアルファベットと数字の文字列で、特定のクライアントやプロジェクトに関連付けられる1。主な目的は以下の通りである:
- プロジェクトの識別
- プロジェクトの承認
- API使用状況の追跡
- 匿名トラフィックのブロック
- API呼び出し回数の制御
APIキー認証の仕組み
APIキー認証は以下のステップで実行される2:
- キーの生成: クライアントは、APIプロバイダーからAPIキーを取得または生成する2
- リクエストへの含有: クライアントは、APIリクエストにキーを含める。これは通常、ヘッダー、クエリ文字列、またはCookieとして送信される3
- サーバー側の検証: APIサーバーは、受信したキーを許可されたキーのリストと照合する1
- アクセス制御:
- キーが一致する場合、サーバーはリクエストを処理し、応答を返す
- キーが一致しない場合、サーバーはアクセスを拒否し、エラーメッセージを返す1
セキュリティ上の考慮事項
APIキーは、一般的に安全とはみなされない4。主な理由は以下の通りである:
- クライアントからアクセス可能
- 盗難の可能性がある
- 有効期限がない場合が多い
より安全な認証方法として、OAuth、トークンベースの認証、またはサービス間認証などが推奨される42。
APIキーの制限
APIプロバイダーは、APIキーを使用して以下のようなアクセス制限を設定できる1:
- サービスの範囲の制限
- 利用可能な機能の選択
- リクエスト数の制限
- 特定のIPアドレス範囲からのアクセスの制限
これらの制限により、APIの使用を効果的に管理し、不正使用を防ぐことが可能である。
参照
-
https://apidog.com/jp/blog/introduction-to-api-authentication/ ↩ ↩2 ↩3 ↩4
-
https://cloud.google.com/endpoints/docs/openapi/when-why-api-key?hl=ja ↩ ↩2 ↩3
-
https://www.zenrin-datacom.net/solution/blog/api-authentication ↩
-
https://financial.ctc-g.co.jp/itinfo/api認証とは?認証が必要な理由や主要な認証方式を解説 ↩
-
https://www.gomomento.com/jp/resources/blog-jp/api-keys-vs-tokens-whats-the-difference/ ↩
-
https://zenn.dev/shikumiya_hata/books/33f44d4f561ec4/viewer/fd3203 ↩