APIのセキュリティを最大化する方法

セキュリティはどのアプリケーションでも重要ですが、何百から何千ものアプリケーションが日常的に呼び出しを行うAPIでは特に重要です。毎日、新たな脅威と脆弱性が生み出され、毎日、企業は時間と戦いながらパッチを適用しています。自社のAPIを攻撃から保護することは非常に重要です。幸いなことに、すべての脅威を排除するわけではないものの、APIマネージャーは、最も一般的ないくつかの脅威から保護するのに役立ちます。さらに、プロキシとして使用することで、悪意のある攻撃がアーキテクチャに到達するのを防ぐことができます。

初期のAPIのセキュリティは、基本的な認証や、ユーザーにユーザー名とパスワードを要求した後、使用するソフトウェアがAPIに転送する仕組みでした。しかしながら、これは非常に大きなセキュリティリスクの原因となりました。

今日、トークン認証システムであるOpen Authorization(OAuth)は、最も一般的なAPIのセキュリティ対策です。基本的な認証とは異なり、OAuthでは、APIクライアントがユーザーの情報にアクセスすることを許可しません。代わりに、ユーザーを宛先サーバー上のページにリレーし、そこでユーザーが資格情報を入力したら、そのユーザーのアクセストークンをAPIクライアントに返します。

トークンベースのアクセスのメリットは、セキュリティの違反や悪用のあった場合、またはユーザーがサービスに自分のアカウントへのアクセスをそれ以上許可しないことを決定した場合など、いつでも、どんな理由でも削除できることです。また、アクセストークンを使用してアクセス許可を制限することもできます。これにより、アプリケーションがユーザーの情報やアカウントを何に使用できるかを決定できます。

APIのセキュリティのベストプラクティスは、APIがどれほど複雑か、単純かに関わらず、明確に定義されています。開発者は、APIでのユーザーのデータ(ユーザー名とパスワード)の安全を保証する必要があります。つまり、ユーザーの情報とクライアント間の分離レイヤーを作成する必要があるということです。開発者は、絶対にパブリックAPIを通じてログイン認証情報を要求しないようにする必要があります。これを行うと、ユーザーの情報を脆弱にしてしまうからです。