API の仕組み

API とは

API はアプリケーション・プログラミング・インターフェースの略であり、異なる複数のソフトウェアコンポーネントやプログラムが相互に通信し、データを共有するための一連のプロトコルや定義を記したものです。

API は、あるアプリケーションが別のソフトウェアプログラムから提供されるデータや機能にどうアクセスできるかを規定します。たとえば、Web サイトに天気予報を載せようとする場合、プログラマーは API を使ってリアルタイムの天気予報を提供するサイトと通信することで、気象データを集めて解釈する独自のプログラムを構築する必要がなくなります。デジタル技術が発達した現代では、モバイル決済や e コマースサイトの閲覧など、ユーザーがオンラインで行うほとんどすべての行動や取引に API が関与しています。

API は、自分で食事を用意しなくてもさまざまな料理をいつでも注文できるテイクアウトメニューのようなものだと考えることができます。アプリケーションや Web サイトを構築する際に API を使うと、独自のデータベースを構築して管理することなくデータを取得したり、独自の認証ソフトウェアを作ることなく指紋認証機能を提供したりすることができます。API は 1 つのリクエストと応答がセットになった通信モデルを利用します。このモデルでは、クライアントがリクエスト(API コール)を API に送信し、API がそのリクエストを処理して応答を返します。API がデータをやり取りする際は、JSON(JavaScript Object Notation)や XML(eXtensible Markup Language)などの標準データ形式を使うのが基本です。

API のユースケースの具体例

ソフトウェア開発の際に API を使うと、異なるプログラミング言語で作られたアプリケーションを統合し、複数のアプリケーション間でデータや機能を簡単に利用できる状態を作ることができます。たとえば、ライドシェアアプリケーションで地図 API を使えば、別のアプリケーションの地図関連機能を組み込み、近づいてくるドライバーの位置情報を確認できるようにすることができます。また、API は 1 つのダッシュボードから複数のソーシャルメディアのアカウントを管理したり、スマートウォッチやデジタルアシスタント、スマート家電といったモノのインターネット(IoT)デバイスと接続したりする際にも重要になります。さらに、証券会社やトレーダーが利用するアプリケーションは、API を使って金融市場や株価に関するリアルタイムの情報にアクセスしており、スマートフォンアプリは API を使って内蔵カメラから写真や動画をキャプチャしています。加えて、企業が API を使うことで、DNS ファイアウォールDNS プロキシといったクラウドベースのソリューションを活用できるようになります。

API の種類

API には次のように多くの種類があります。

  • Web API は Web アプリケーションやモバイルアプリケーションの開発に使われるものであり、HTTP などの標準的なプロトコルを使って Web 経由でアクセスします。
  • ライブラリ API は、プログラマーが新しいアプリケーションを作る際に、特定の機能を提供するために必要なコードのライブラリへのアクセスを可能にします。
  • オペレーティングシステム API は、ソフトウェアとその基盤となるオペレーティングシステムの間のやり取りを可能にします。
  • オープン API(パブリック API)はサードパーティの開発者が作成した API であり、誰でも Web サイトやアプリにアクセスして利用できる状態を実現します。
  • パートナー API は、関係性が確立されている企業やビジネスパートナーの間でシステム同士の通信を可能にするものです。
  • プライベート API(内部 API とも)は、社内のユーザーが複数のチーム間でデータを移動させたり、社内のさまざまなアプリやシステムを接続したりする際に使われます。
  • コンポジット API は、複数のサーバーやソースの API をいくつか組み合わせて、1 つのシステムに対する接続を統合します。
  • Web サービス API は、Web ブラウザーと Web サーバーの間のインターフェースとなります。
  • クラウド API は複数のクラウドアプリケーション間の通信を可能にします。
  • リモート API を使用すると、異なるマシンで実行されているアプリケーション同士がリモートで通信してやり取りできるようになります。

API のアーキテクチャとプロトコル

API はさまざまなプロトコルやアーキテクチャのスタイルを使って構築されます。

  • REST API は Representational State Transfer(表現状態転送、REST)と呼ばれるアーキテクチャで構築された API であり、HTTP を通じてリクエストを処理し、リクエストの合間にクライアントのコンテンツをサーバーに保存しないステートレスの状態を維持することで、容易な拡張とデータの安全な転送を可能にします。
  • SOAP(Simple Object Access Protocol)は異なる環境のアプリケーションや異なる言語で作られたアプリケーション同士のデータ共有を容易にします。SOAP API では、複数のネットワーク間でデータを送信する方法やメッセージを送信する方法、メッセージに含めるべき内容が規定されます。
  • RPC API は Remote Procedure Call(遠隔手続き呼び出し、RPC)を使って離れたネットワーク上でコードを実行します。
  • GraphQL は、クライアントとサーバーの間のラウンドトリップの回数を最小限に抑えるオープンソースのクエリー言語であり、低速接続や信頼性の低い接続で実行されるアプリケーションで有効に活用できます。GraphQL API を使用するクライアントは、複数のリクエストを一緒に並べるのではなく、単一の API エンドポイントを利用して必要なデータを取得できます。
  • Webhook はイベント駆動型アーキテクチャの実装に関わる要素であり、イベントに基づくトリガーへの応答としてリクエストが自動的に送信されます。

API のメリット

多くの企業にとって、API は事業に不可欠な資産であり、業務プロセスをデジタル化したり、自動化を可能にしたり、ワークフローの速度を上げたり、人やアプリケーションをつなげたり、新しい製品やサービスを創出したりする際の助けとなります。また、API は卓越した顧客体験を提供し、業務運営の俊敏性を高めるうえで役に立ちます。

API ゲートウェイとは

API ゲートウェイは、リクエストを受け取って処理した後、それを適切なサーバーに配信し、ユーザーやアプリケーションがリクエストしたデータを返すアプリケーションです。API ゲートウェイは、API コール(リクエストと応答)を一元的に管理、保護、および最適化するためのポイントを提供します。

API に対する脅威とは

API は貴重な情報を入手するための鍵を含むことが多いため、攻撃者を惹きつける要因となります。セキュリティが十分に確保されていないと、API によって大量の機微な情報が暴露される恐れがあります。ハッカーは往々にして、十分なセキュリティ対策がないまま構築および実装されている API や、定期的な更新が行われていないレガシー API を標的にします。攻撃者が API を利用する目的としては、機微な情報を入手することやサービスを中断させること、システムを乗っ取ることなどが挙げられます。

API スプロールとは

クラウドコンピューティングやマイクロサービスといったデジタル技術の普及が進む中で、アプリケーションの急増に伴い発生するようになったのが API スプロールです。これは API の数が爆発的に増え、設計や API ドキュメントの基準に一貫性がなくなったことで、API 管理が難しくなった状態を指します。API スプロールが生じると、セキュリティチームによるセキュリティポリシーの適切な実装と管理が困難になり、その結果として組織にとってのリスクが増大します。

API 探索とは

API 探索とは、組織のデジタルフットプリントに含まれるすべての API を、関連するエンドポイントや機能、データ構造とともに特定し、リストアップしていくプロセスのことです。冗長性の回避やセキュリティリスクの把握、API の文書化、統合や相互運用性の確保にあたり、API 探索を欠かすことはできません。

API セキュリティとは

API セキュリティを確保するための手法としては、デジタルエコシステムに含まれるすべての API の探索と管理、各 API に潜む脆弱性の特定、既存のセキュリティソリューションの活用、すべての API を制御および保護する包括的なセキュリティポリシー群の策定が挙げられます。また、API 保護のためのソリューションには、API テスト、Web アプリケーションファイアウォール、暗号化、ゼロトラスト・アーキテクチャ、ふるまい分析、API ゲートウェイセキュリティのソリューション、オープン API セキュリティ、マネージド型脅威ハンティングなどがあります。

Akamai が選ばれる理由

Akamai はサイバーセキュリティとクラウドコンピューティングを提供することで、オンラインビジネスの力となり、守っています。市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、そして世界中の運用チームが、あらゆるところで企業のデータとアプリケーションを多層防御で守ります。Akamai のフルスタック・クラウドコンピューティング・ソリューションは、世界で最も分散されたプラットフォーム上で、パフォーマンスと手頃な価格を両立します。安心してビジネスを展開できる業界トップクラスの信頼性、スケール、専門知識の提供により、Akamai はグローバル企業の信頼を獲得しています。

Akamai の全セキュリティソリューションをご紹介