APIコールとは?

APIコール(APIリクエスト)は、あるアプリケーションが他のアプリケーションからデータやサービスを要求する手段です。ほとんどのWebアプリケーションは、定期的にAPIコールを行っています。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • APIコールの定義
  • APIコールの使用方法を理解する
  • 攻撃者がAPIコールを使用する方法を知る

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

APIコールとは?

アプリケーションプログラミングインターフェース(API)は、あるプログラムが別のプログラムとやり取りするための手段です。APIコールは、それらがやりとりするための仲介役として機能します。APIコール(APIリクエスト)は、APIにサービスや情報の提供を依頼するためにサーバーに送信されるメッセージです。

ヤンが大勢のゲストを夕食に招待する場合、ケータリング会社に電話して、パーティーのための料理の準備をお願いすることもあるでしょう。依頼することで、彼女は自分で料理を準備する時間と労力を大幅に節約することができます。同様に、アプリケーションは、必要なデータや機能を別のアプリケーションから「呼び出す(コール)」ことができます。これにより、開発者は、APIを使用して統合が可能なアプリケーション機能を構築するために、時間と労力を費やす必要がなくなります。

現在、APIはほとんどすべてのWebアプリケーションで連携を果たしているため、APIコールは常にバックグラウンドで行われています。ある人が旅行サイトでバスのチケットを検索したとします。この旅行サイトは、さまざまなバス会社のサーバーにAPIコールを送信し、利用可能な便と料金に関する情報を受け取ります。ユーザーの視点では、このプロセスはほぼ瞬時に行われます。

APIコールの送信先は?

APIコールは、クライアントからAPIエンドポイントに向けて送信されます。APIエンドポイントとは、APIコールの行き先のことで、多くの場合、Webアプリケーションとサーバーです。モバイルクライアントがAPIエンドポイントであるサーバーに向けたAPIコールを生成し、サーバーはAPIコールを受信してそれを処理し、リクエストを実行してレスポンスを送信します。

上記の例では、ヤンはケータリング会社に電話するために電話番号をダイヤルします。同様に、APIコールは、Uniform Resource Identifier(URI)に向けて発信されます。

URIは、電話番号が電話回線を識別するのと同じように、リソースを識別するための標準化された方法です。識別されるリソースは、Webサイト、アプリケーション、サーバー、メールの連絡先、あるいは実世界のアイテムである場合もあります。

Web APIの場合、通常、URIはユニフォームリソースロケーター(URL)です。URLは、Webサイトやサーバーのようなインターネット上の場所を特定するためのURIの一種です。URLにはHTTPなどの、アプリケーション層に到達するためのプロトコルが含まれている必要があります。Webページのアドレスは、「https://www.cloudflare.com/learning」のようにURLとして記述されます。APIエンドポイントもURLです。

ほとんどのWeb APIはHTTPを使用しているため、APIエンドポイントのURLにはHTTPが含まれています。例えば、Cloudflareの基本的なAPIエンドポイントは「https://api.cloudflare.com/client/v4/」(詳細はこちら)です。HTTPベースのAPIコールでは、GETPOSTPUTなどのHTTP動詞(リクエストの種類)を使用して、APIエンドポイントから必要なサービスやリソースを指定します。

APIコールは攻撃でどのように利用されるのか?

インターネットに公開されているあらゆるものと同様に、APIも様々なソースからの攻撃に対して脆弱です。攻撃者は、APIを攻撃するために、以下のようないくつかの方法でAPIコールを使用することができます。

  • サービス拒否(DoS)分散型サービス拒否(DDoS)攻撃:このタイプの攻撃は、APIの他のユーザーへのサービスを拒否します。攻撃者はAPIをAPIコールで埋め尽くしたり、長時間サーバーを拘束するようにAPIコールを構成します。
  • 脆弱性の悪用:攻撃者は、APIの欠陥を利用したAPIコールを送信して、サーバーを騙して公開してはならないデータを公開させたり、想定外の方法で実行させたり、不正にアクセス権を得ようとします。

これらの攻撃やその他の攻撃は、APIサービスを提供する組織に悪影響を及ぼす可能性があります。

不正なAPIコールからAPIを保護する方法

以下の戦略は、APIの安全性を保つ上で役立ちます。

  • API エンドポイントの把握と追跡:本番環境のすべてのAPIエンドポイントの最新の一覧を維持する。
  • APIクライアントの検証:認証を使用して、APIコールが正当なクライアントから来たものであることを保証することができます。これにはいくつかの方法がありますが、最も効果的なものの1つがTLS相互認証です。この認証方法では、各APIエンドポイントは公開鍵暗号方式を用いて相手を確認します。
  • APIスキーマの検証:APIのスキーマとは、そのAPIの利用ルールのようなものです。APIコールがスキーマに従っていない場合、そのAPIコールはAPIを悪用しようとする悪意ある試みである可能性があります。APIスキーマの検証は、不正なAPIコールを特定してブロックするのに役立ちます。
  • DDoS軽減の使用:DDoS軽減プロバイダーは、サーバーが過負荷状態にならないように過剰なリクエストをブロックまたは吸収します。Cloudflareはこれを行うプロバイダーの1つです。

APIセキュリティに関して、詳しくはこちらをご覧ください。または、さまざまな攻撃からAPIを保護するCloudflare API Shieldについてはこちらをご覧ください。