Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

APIデバッグ

API Mock

APIテスト自動化

無料登録
Home / ソリューション / APIセキュリティ|その概念と通用の対策

APIセキュリティ|その概念と通用の対策

WebアプリでAPIが幅広く利用されている今、APIのセキュリティを考えなければならないことになります。本文では、APIセキュリティという概念を解説した上、APIセキュリティに関する通用の対策を皆さんに紹介していきたいと思います。

WebアプリでAPIが幅広く利用されている今、APIのセキュリティを考えなければならないことになります。本文では、APIセキュリティという概念を解説した上、APIセキュリティに関する通用の対策を皆さんに紹介していきたいと思います。

APIセキュリティとは

APIセキュリティとは、APIの不正利用や攻撃を防ぎ、安全なサービスの提供するなど、API(Application Programming Interface)を安全に利用するためのセキュリティ対策のことです。

主なAPIセキュリティの対策としては以下のようなものがあります。

  • APIのアクセス制御(認証、認可)を行うことで、許可されたユーザーだけがAPIを利用できるようにする。
  • APIの通信を暗号化することで、通信内容を秘匿する。
  • APIの利用頻度を制限することで、サービス妨害攻撃を防ぐ。
  • APIの入力データをチェックすることで、不正なデータやコマンドの注入を防ぐ。
  • その他

APIセキュリティ対策はなぜ必要?

APIはアプリケーション同士の通信を可能にするインターフェースですが、セキュリティを考慮しない場合、悪意ある第三者にAPIを悪用されるリスクがあります。たとえば、API経由で個人情報や機密データが不正取得されたり、DOS攻撃によってサービス提供が停止したりすることがありえます。

このため、アクセス制御や入力検証、通信の暗号化といったAPIのセキュリティ対策を考慮しなければなりません。

APIセキュリティを実現する通用対策

それでは、APIセキュリティを確保して、API及びアプリのセキュリティ水準を向上するために、どうしたらいいですか?次は、APIセキュリティの通用対策を皆さんに紹介します。

⒈SSL証明書でAPI通信の暗号化を確保

API通信の暗号化を実現するために、SSL証明書を使うのが一般的です。SSL証明書において、通常サーバー側とクライアント側のものがあります。

  • サーバー側のSSL証明書は、自分の正当性を示しています。つまり、APIエンドポイントのURLはHTTPSプロトコルを使用しています。
  • クライアント側のSSL証明書は、正当性を検証するという役割分担になります。つまり、クライアント経由でAPIリクエストを送信する時に、クライアント側のSSL証明書を利用して、サーバー側のSSL証明書に一致するかを検証します。検証できた場合は、レスポンスを返すが、検証できなかった場合は、レスポンスが返されません。

現在、サーバー側のSSL証明書を使用して、ドメインの正当性を示すのが一般的なことですが、SSL化されたAPIエンドポイントにリクエストを送信しても、クライアント側のSSL証明書が不要な場合が多くあります。つまり、Httpsプロトコルを利用しているサーバーからレスポンスを取得するには、クライアントSSL証明書を添付しない場合が多く見られます。

button

ただし、一部のAPIでは、APIのセキュリティをさらに確保するために、クライアント証明書が有効にされています。そうすると、当該APIにリクエストを送信する時に、SSLクライアント証明書を添付して送信する必要があります。ここでクライアントSSL証明書を簡単に追加できるApidogを使用してリクエストを送信することがおすすめです。

ステップ⒈Apidogを立ち上げ、SSLクライアント証明書が必要となるAPIを開きます。

ステップ⒉設計」モードに切り替え、上部のメニューバーで「変更」タブを選択して、Requestパラメータで「設定」をクリックします。

APIの設定を変更

ステップ⒊証明書の管理」をクリックします。

①CA証明書をオンにして、PEMファイルをアップロードします。

CA証明書の管理

②「クライアント証明書を追加」をクリックして、必要な設定を終えます。

クライアント証明書を管理
button

⒉APIの認証と認可を行う

API認証は、APIを利用する際にクライアントが正当なユーザーであることを確認するためのセキュリティメカニズムです。API認証により、不正なアクセスや悪意のある操作を防ぐことができます。

API認証の方式には様々ありますが、APIキーによる認証とOAuthによる認証は最もよく利用される仕組みです。

  • APIキーによる認証は、APIを利用するクライアントに固有のキー(トークン)を発行し、API利用時にそのキーをリクエスト内に含めることで、アクセス権限を確認するシンプルな方法です。ただしセキュリティは弱いというデメリットがあります。
  • OAuthによる認証は、サードパーティのアプリケーションがAPIにアクセスする場合に用いられ、ユーザーの承認に基づいてアクセストークンが発行され、そのトークンでAPIにアクセスできるようになるという流れになります。複雑な仕組みですが、セキュリティ面は強固です。

API認証を実装して、APIセキュリティを確保するために、一番使いやすいAPI管理ツールのApidogを使って、API認証を実現することがおすすめです。

ステップ⒈ApidogでAPIを新規作成するか、既存のAPIにアクセスして、APIの「変更」ページで、「Requestパラメータ」で「Auth」タブに切り替えます。

apidogで認証の設定にアクセス

ステップ⒉ここで必要に応じて適切な認証方法を選択すると、それぞれの認証方法の関連情報を入力して、「保存」ボタンをクリックします。

apidogで認証を設定

上記のように、簡単な2ステップだけで、API仕様の設計中に、API認証を簡単に課すことができます。

button

⒊APIサーバーの分散

また、APIサーバーを分散させることは、DDoS攻撃への対策や障害時の影響範囲の局所化、セキュリティ面での隔離がしやすいなどの点で、一定のセキュリティ対策としての効果が期待できます。攻撃や障害が分散サーバーに分散するため、個々のサーバーへの影響は抑えられます。また用途別にサーバーを分けることで、それぞれに適したセキュリティ要件を設定できるなどの利点があります。

一方で、分散にはコスト増や運用の複雑性といったデメリットも存在し、全体としてのセキュリティレベルが低いサーバーに依存するリスクもあります。

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。

有効なメールアドレスを入力してください。
ネットワークエラー、後で再試行してください
購読していただきありがとうございます!