OpenAPI は言語に依存しない仕様であり、サーバーのソースコードやサーバーの実装に関する知識を入手しなくても、クライアントがサービスを理解して利用できるようにします。
OpenAPI ドキュメントは通常 JSON または YAML で記述され、人間とマシンの両方が簡単に理解できます。OpenAPI を使用することで、DevOps チームはドキュメントを自動生成し、API を確実に業界標準に準拠させ、アプリケーションを他のソフトウェアやサービスと簡単に統合できるようになります。
また、開発者がセキュリティ方式(クライアントの認証および API の権限付与を行う方法を指定するグローバルなセキュリティ定義)を確立できるため、セキュリティも向上します。
API とは
アプリケーション・プログラミング・インターフェース(API)とは、異なるソフトウェアプログラムやコンポーネント間での通信、データ交換、機能共有を可能にするプロトコルと定義のセットです。アプリケーションが情報をリクエストおよび交換する方法が API によって定義されることで、e コマースやモバイル決済からソーシャルメディアや クラウドサービスまで、幅広い機能やトランザクションをサポートする方法でソフトウェアシステムがやり取りできるようになります。
API セキュリティとは
API は、クラウドサービス、マイクロサービス、サーバーレスフレームワークなど、最新のコンピューティングの機能に不可欠です。アプリケーションのロジックとリソースが公開される一方で、機密性の高い重要情報の転送を行うこともある点で、API は攻撃者にとって格好のターゲットとなります。 API セキュリティソリューション を導入することで、ハッカーが API の脆弱性を悪用したり、API を使用して IT 資産やシステムに不正にアクセスすることを防止できます。API セキュリティには、認証、署名を使用した保護、レート制限、スロットリング、 Web アプリケーションファイアウォール、セキュリティポリシーの適用などの多層型アプローチが必要です。
API セキュリティに対する脅威とは
API セキュリティの脅威には、主に次のようなタイプがあります。
- 脆弱性の悪用 では、API の脆弱性がハッカーに利用され、API に不正アクセスされます。
- 認証プロセス のセキュリティが攻撃者によって破られた結果、API が不正または悪性の発信元からのリクエストを受け入れてしまう可能性があります。
- 認証エラー によって API とやり取りするクライアントが機密情報にアクセスできるようになり、データ漏えいに発展する可能性があります。
DoS(サービス妨害)攻撃または DDoS(分散型サービス妨害)攻撃 では、攻撃者が大量のリクエストを同時に送信して API に過剰な負荷を与えることで、API の処理速度が低下したり、応答不能になります。
API セキュリティとは
OpenAPI 仕様(OAS) は、REST API とやり取りできるアプリケーションを構築するためにソフトウェア開発者が使用するフレームワークです。以前は Swagger 仕様として知られており、API との通信方法、リクエスト可能な情報の種類、返される情報について大枠を定義しています。OpenAPI ドキュメントは通常 JSON または YAML で記述され、人間とマシンの両方が簡単に理解できます。OpenAPI を使用することで、DevOps チームはドキュメントを自動生成し、API を確実に業界標準に準拠させ、アプリケーションを他のソフトウェアやサービスと簡単に統合できるようになります。
開発者は OpenAPI ドキュメントを使用して、次のような API の基本を定義できます。
- 各エンドポイントの存在と動作
- 各オペレーションの入出力パラメーター
- 認証技術
- 連絡先、メタデータ、利用規約、ライセンス、利用可能なドキュメントなどの情報
OpenAPI はオープンソースフレームワークであり、API の作成に使用した言語に依存しません。そのため、コンピューターもユーザーも追加のドキュメントやソースコードへのアクセスを必要とせずに、API が提供する機能を簡単に識別し、理解することができます。結果として、OpenAPI 仕様は、複数のプロトコル、環境、インターフェースが関係する開発プロセスをシンプル化します。
OpenAPI セキュリティとは
OpenAPI は、アクセスが容易で可読な API ドキュメントを各 API に提供することで、API の保護と API ゲートウェイセキュリティの強化を支援します。DevOps チームが各 API エンドポイントとその機能を理解できるようになれば、セキュリティリスクをより適切に予測して、脆弱性の悪用を防止できます。OpenAPI セキュリティドキュメントは、API が内部セキュリティポリシーに準拠しているか違反しているかをセキュリティチームが判断する上でも役立ちます。
OpenAPI を使用すると、開発者がセキュリティ方式(クライアントの認証および API の権限付与を行う方法を指定するグローバルなセキュリティ定義)を確立できるため、セキュリティも向上します。
OpenAPI はセキュリティ要件のドキュメント化と伝達をサポートしますが、セキュリティ対策の適用と実装は API サーバーとインフラの責任です。
OpenAPI セキュリティの 5 つのタイプとは
OpenAPI 3.0 では、次の 5 種類のセキュリティ方式を使用できます。
- API キー セキュリティ方式は API キーを使用します。API キーは、クライアントが API 呼び出しを行うときに提供するアクセストークンです。
- HTTP 認証 には 2 種類の認証方式があります。ベーシック認証では標準の HTTP 認証ヘッダーが使用されます。ベアラー認証では「ベアラートークン」と呼ばれるセキュリティトークンが使用されます。これは、ログインリクエストに応答してサーバーによって生成される暗号文字列です。
- OAuth2 セキュリティ方式は、Web サーバー上のユーザーデータへの限定的なアクセスを API クライアントに付与する認証プロトコルです。この OpenAPI セキュリティ方式は、Facebook、Google、GitHub などの組織で使用されています。
- MutualTLS は、サーバーとクライアントの間で双方向(相互)認証または認証コードを使用するセキュリティ方式です。クライアントが API リクエストについて信頼できる証明書を提示します。
- OpenID Connect は OAuth 2.0 プロトコルに基づいて構築され、クライアントアプリケーションがユーザー認証とユーザー情報の取得を行えるようにするサインインフローを定義します。ユーザー ID 情報は、セキュアな JSON Web トークン(JWT)または ID トークンにエンコードされます。
OpenAPI セキュリティの課題とは
OpenAPI セキュリティだけに依存する組織やセキュリティチームは、API で生じるリスクと脅威のかなりの部分を見逃してしまう可能性があります。
- OpenAPI セキュリティでは保護されない一般的な脅威は数多くあります。OpenAPI 定義ファイルでは、API ロジックを標的とする攻撃を防止するポリシーを作成することはできません。 OWASP API Security Top 10で定義されている脅威の多くがこれに該当します。
- OpenAPI セキュリティツールは、OpenAPI セキュリティスキーマの検証を連続して回避しようとする攻撃者を認識またはブロックできない可能性があります。
- 異常な API 呼び出しをすべてブロックする厳格な検証手法を OpenAPI セキュリティドキュメントに適用すると、正規のトラフィックへのアクセスが拒否される場合があります。
- OpenAPI セキュリティツールに緩い検証手法を適用すると、さまざまなタイプの悪性 API 呼び出しが検証を通過してしまう可能性があります。
よくあるご質問(FAQ)
OpenAPI は、当初は Swagger フレームワークの一部でした。2016 年に別のプロジェクトになりました。
OpenAPI 仕様は、さまざまな業界のリーダーたちと数万人の開発者コミュニティによってサポートされています。業界で幅広くサポートされていることは、コードベース全体の安定性を表しています。OpenAPI は、RESTful API を定義および作成するための最も一般的なオープンソースフレームワークとして広く認識されています。
Akamai が選ばれる理由
Akamai はサイバーセキュリティとクラウドコンピューティングを提供することで、オンラインビジネスの力となり、守っています。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバルエンタープライズが、自社ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識の提供について Akamai に信頼を寄せています。