API認証とは?認証が必要な理由や主要な認証方式を解説
APIは、「Application Programming Interface(アプリケーション・プログラミング・インタフェース)」の頭文字をとった略称です。Webアプリケーション・ソフトウェアとプログラムをつなぐインターフェースで、いわゆる特定のアプリケーション機能を外部システムから利用するプログラムとなります。
そして、APIの機能を利用するときに欠かせないものが「API認証」です。API認証をクリアしなければ、APIを用いたアプリケーション同士の連携はできません。
そこで今回は、API認証の概要や重要性から、主なAPI認証の方式まで詳しく解説します。自社アプリ・ツールへのAPI利用を検討している企業担当者の方は、ぜひ参考にしてください。
目次
1. API認証とは
API認証とは、APIの機能を利用するときに正規ユーザーであることを確認するための仕組みです。分かりやすく説明すると、アクセスしたクライアントの身元を保証するための本人確認と言えるでしょう。
アクセスしたクライアントは、API認証をクリアすることで「正当なユーザー」として判断され、APIを用いたアプリケーション同士の連携が可能となります。反対に、API認証をクリアできなければ不正なアクセスとして認識され、API機能へのアクセスが阻止されるため、APIにおいては重要なセキュリティメカニズムとなっています。
また、API認証のアクセス分析・アクセス制御によって、各ユーザーに個々のアクセス権を与えることも可能です。アクセスレベルごとに必要な機能への制限を設定できる点も、API認証ならではの特徴と言えるでしょう。
2. API認証が必要な理由
API認証が必要とされる最大の理由は、「セキュリティ対策のため」です。API認証がなければ、悪質な攻撃者による「APIを不正利用したサイバー攻撃」を受ける可能性が高まると言っても過言ではありません。
企業内の大切な顧客データや機密情報が第三者に流出してしまえば、経営に大きな打撃を与えかねません。API認証の重要性を把握し、適切に整備することが大切です。
ここからは、「API認証がなければどのようなリスクが起こり得るか」を軸に、API認証の重要性を具体的に説明します。
2-1. 不正にデータを閲覧・操作される
API認証のない状態でAPIで利用する通信が攻撃者にハッキングされると、企業の重要データや顧客情報などが外部に流出し、第三者によってこれらのデータが盗用されてしまうおそれがあります。
加えて、APIの認証情報が第三者に漏洩した場合、APIを利用したデータを書き換えられるなど不正に操作される危険性もあるでしょう。
特に、顧客のプライバシーにかかわるユーザー情報や取引先の機密情報が流出すると社会的信用問題に発展し、企業の存続が危ぶまれる可能性があることに注意が必要です。
2-2. DDoS攻撃のターゲットになる
API認証がなければ、攻撃者によるDDos攻撃のターゲットになる可能性もあります。DDoS攻撃とは、「Distributed Denial of Service attack」の略称であり、攻撃対象のWebサイト・アプリケーション・サーバーに対して、異なるIPアドレスから大量のデータを送りつけるという、いわば嫌がらせのような攻撃です。
DDoS攻撃を受けると大量のトラフィックが発生するため、データの受信側はやがて負荷に耐えられなくなりダウンしてしまいます。攻撃元は次々と変わるため、特定のIPをブロックした攻撃の回避も難しく、攻撃者を割り出すことも不可能に近いと言えるでしょう。
DDoS攻撃自体に重要なデータが流出されるといったリスクはないものの、正当なユーザーがアクセスできなかったり脅迫行為を受けたりする可能性もあります。さらに、DDoS攻撃は真の目的であるほかのサイバー攻撃の目くらましとして用いられる可能性もあるため、十分に対策しておかなければなりません。
2-3. インジェクション攻撃を受ける恐れがある
APIには、インジェクション攻撃のリスクも少なからずあります。インジェクション攻撃とは、プログラムやデータベース上の脆弱性を利用したサイバー攻撃の総称で、プログラムに不正なSQL文章を送り込む「SQLインジェクション」は代表的な手法です。
インジェクション攻撃を受けると、機密データの流出・盗用をはじめ、システムの乗っ取りやデータの改ざんなど深刻な被害が発生するおそれがあります。
これらの脅威を防ぐためにも、APIを利用するときはAPI認証が必要不可欠です。
3. 主要なAPI認証の方式
API認証とひとくちに言っても、いくつかの種類・パターンに分けられることが特徴です。認証方式によって、API認証時に必要となる情報や認証の流れのほか、仕組みや強度も異なっています。
最後に、主要なAPI認証の方式を4つ紹介します。それぞれの特徴を参考に、どの方式のAPI認証を導入するのが適切なのかを把握しておきましょう。
3-1. Basic認証
Basic認証とは、Webページやファイルに実装するシンプルな認証方式です。Basic認証が施されたページにアクセスした際は、表示されたダイアログボックスにてログインID(ユーザー名)とパスワードの入力が求められることが特徴であり、API認証のなかでも代表的な方式と言えるでしょう。
HTTPによってサポートされた機能であるためほとんどのブラウザが対応できるほか、認証の流れも非常にシンプルです。しかし、入力されたログイン情報に暗号化を施さずクリアテキストとして送信した場合はURL文字列から安易に情報が盗まれる可能性もあります。
したがって、暗号化されたリクエストボディ内に含めるケースが多いものの、その他の認証方式と比較してセキュリティレベルは比較的低いと言えるでしょう。
3-2. APIキー認証
APIキー認証とは、APIサービス提供事業者が独自に発行する認証方式であり、あらかじめ発行された「APIキー」をHTTPリクエストで送信してユーザーを照会するという流れです。
ユーザー側からAPIキーを通知することで、提供事業者側は「ユーザーがどこから接続してきたか・接続してきたユーザーはサービス利用に関する権限を有しているか」といった点を判断します。
APIキー認証を使ってAPIを利用するには、APIサービス提供事業者が提供するサービスにユーザー登録し、APIキー取得を行う必要があります。セキュリティレベルは比較的高い一方で、APIキーの取り扱い方法によっては第三者に突破される可能性があるため、厳重に管理しておかなければなりません。
3-3. OAuth/OpenID Connect
OAuth(オース)とは、連携した異なるサービス間のアクセス権限を付与できる、いわゆるユーザー認可形式の認証方式です。
APIを利用するとき、クライアントアプリケーションは、ユーザーがデータ利用を許可したときに発行される「アクセストークン」を連携先のリソースサーバーに提示します。リソースサーバーは提示されたアクセストークンを確認してアクセスを検証し、検証が成立すればユーザーID・パスワードを使用せずにAPIにアクセスできるようになります。
そしてOpenID Connectとは、OAuthのプロトコルをベースに仕様を拡張し、ユーザー認証も行えるようにした認証方式です。OAuthと同様に、アプリケーションがリソースサーバー側にアクセストークンを提示して認証を要求するという流れとなっています。
しかし、OAuthはユーザー認可のみ行うことに対してOpenID Connectはユーザー認証まで行える点が特徴です。いわば、OpenID ConnectはOAuthよりもセキュリティを強固にしたAPI認証方法と言えるでしょう。
3-4. F-API
F-APIとは、「Financial-grade API」の略称であり、OAuthとOpenID Connectを基盤とした金融機関向けのセキュリティ規格です。第三者がユーザー認証情報を利用するOpenID Connectを利用しているものの、厳密には「認証」ではなく、認証を含むAPIセキュリティ全般を指します。
FAPIではアクセス許可にAPIトークンだけでなくクライアント証明書の提示も必要となるなど、金融ビジネスの要請を満たす高いセキュリティレベルを有しています。一般的なOAuthやOpenID Connectの仕様と比較して、より安全なAPI連携が実現できるでしょう。金融業界においては、欠かせないAPI認証と言えます。
まとめ
安全性の高いAPI連携には、API認証が欠かせません。API認証とは、APIの機能を利用するときに正規ユーザーであることを承認するための仕組みです。サイバー攻撃などの脅威から逃れるため、そしてAPIユーザーごとに個々のアクセス権限を与えるためにも重要とされています。
また、API認証にはいくつかの種類・方式があります。通販サイトなどでは代表的なBasic認証が用いられるものの、金融機関などよりセキュリティレベルの高さが求められる業界においては、その業界に適したAPI認証を用いる必要があることも覚えておきましょう。
「CTC」では、金融機関向けAPI連携ソリューション「C-FAPI」を提供しております。C-FAPIを導入することで、機密情報を扱う高セキュリティなAPIを独自に設計・開発する必要なく、すぐに公開することが可能です。APIセキュリティの大幅強化が叶うソリューションをお探しの方は、ぜひお気軽にお問い合わせください。