OAuth Web APIの負荷テスト

負荷テストは、さまざまな種類のパフォーマンステストの中で、システムのリアルタイムの負荷状況下での性能を判断するテストの一種です。APIの役割は過去数年で大きく進化しました。APIがレポートの抽出などのタスクにのみ使用されていた時代は、そのパフォーマンスは重要な要素ではありませんでした。しかし、APIは徐々にエンドユーザーとサービス提供会社の間の重要な経路へと移行し、非常に重要なものとなっています。ますます多くの組織がサービス提供のためにAPIを活用しているため、そのセキュリティとパフォーマンスが重要な要素となっています。

2026年アップデート:OAuthで保護されたAPIは、現在APIファーストおよびマイクロサービスアーキテクチャの中心となっています。負荷テストはAPIのパフォーマンスだけでなく、認証フロー、トークン生成、および同時負荷下でのIDプロバイダーの動作も検証するべきです。

ここでは、OAuth 2.0と呼ばれるAPIセキュリティメカニズムについて説明し、OAuth Web APIの負荷テストの方法について解説します。

LoadViewによるJMeter負荷テスト

JMeterのスクリプトを何百万もの同時ユーザーにスケールさせることがLoadViewで可能です。

JMeter負荷テスト

OAuthとは何か?

OAuthは認可のための業界標準プロトコルです。OAuthはクライアント開発者の簡単さに重点を置きながら、ウェブアプリケーション、デスクトップアプリケーション、モバイルフォンなどに特化した認可フローを提供します。この仕様およびその拡張はIETF OAuthワーキンググループ内で開発されています。OAuthは一般にインターネットユーザーがMicrosoft、Google、Facebook、Twitter、Slackなどのアカウントを使用してサードパーティのウェブサイトにログインする方法として使われており、パスワードを公開することなく利用できます。

OAuth 1.0はセキュリティ上の欠陥が疑われており、サポートを撤回しました。OAuth 2.0は最新の仕様で、より高度なセキュリティ機能を備えています。OAuth 2.0はユーザーが特定のデータをアプリケーションと共有しながら、ユーザー名やパスワードなどの他の情報は非公開に保つことを可能にします。例えば、アプリケーションはOAuth 2.0を使用してユーザーからファイルの保存許可を得ることができます。OAuthの公式サイトによれば、これは車のバレットキーのようなものです。多くの高級車はバレットキーを備えており、これは駐車係に渡す特別なキーで、通常のキーとは異なり、車を1マイルか2マイル以上運転できません。一部のバレットキーはトランクを開けられず、他は車載電話のアドレス帳へのアクセスを制限します。バレットキーが課す制限はともかく、その考え方は非常に賢いものです。あなたは通常のキーで全てを開けられる一方で、特別なキーで誰かに限定的なアクセス権を与えるわけです。

なぜOAuth Web APIの負荷テストが重要なのか

組織での役割にかかわらず、少なくとも一度はAPIという言葉を耳にしたことがあるでしょう。ではAPIとは何でしょうか?APIはアプリケーションプログラミングインターフェースの略です。APIはユーザーがインターネット経由でアプリへのアクセス時に通信するためのルールと指示の集合です。リクエストは簡単にこんな形です:

GET: https://userauth.dotcom-monitor.com/login

機能テストだけで十分であり、それが顧客が望む全てだと思うなら、それは間違いです。もしあなたのウェブサイトがマーケティングキャンペーンに合わせて公開され、何千人もの潜在顧客がログインし始めたらどうでしょうか。そこで初めて、顧客がログイン時にエラーに遭遇していることに気づくでしょう。その瞬間から、潜在的なビジネスと組織のイメージを失っています。

この恥ずかしい状況を避けるために、負荷テストは本番環境で予想されるトラフィックを系統的にアプリケーションサーバーに適用し、公開前にアプリケーションの挙動を確認します。OAuthを実装している場合、複数のユーザーが同時にリクエストをサーバーに送信するシミュレーションを行いAPI負荷テストを実施できます。負荷テストには様々な方法がありますが、APIの負荷テストは最も簡単でコスト効果の高いオプションの一つです。これはスクリプト化が簡単で、多くの業界標準のオープンソースツールを使ってスクリプトの生成と実行が可能だからです。

もしAPIテストや負荷テストの仕組みに不慣れなら、APIテストについて知識を得る良い記事があります。

LoadViewでのAPIリクエストは、EveryStep Web Recorderを使ってスクリプトを録画するかHTTPタスクを使用する二通りがあります。APIを使うアプリケーションを使って録画するか、LoadViewのソリューションを使用できます。また、アプリケーションがサードパーティAPIを使っている場合は、それらAPIの負荷テストも実施して、要件を満たしていることを確認することが重要です。

OAuthのフロー/段階

ここでは、LoadViewソリューションを使ってOAuth 2.0のフローを説明します。LoadViewはハードウェアやソフトウェアインフラへの先行投資なしでリアルな負荷テストを可能にするオンデマンド負荷テストプラットフォームです。今回負荷テストを行うアプリケーションは医師が使用する健康管理アプリケーションです。

以降、対象アプリケーションを「健康アプリケーション」と呼びます。健康アプリケーションはAzure上にホストされており、ログイン時にMicrosoft OAuth 2.0サービスを使用しているため、医師はあらかじめ登録された病院のメールアドレスでログイン可能です。このアプリケーションは基本的に患者の履歴に関する全ての詳細を提供します。

OAuth 2.0のフローはユーザー認可用に特化して設計されています。機密情報を保存し状態を維持できるアプリケーション向けです。正しく認可されたウェブサーバーアプリケーションは、ユーザーがアプリケーションを操作している間または離れた後にもAPIにアクセスできます。

以下はOAuth 2.0フローのステップバイステップガイドです。対応するLoadViewのパフォーマンステスト設定も含めて紹介します。

フローは2つのアクションのみですが、開発者の要望によっては複数のAPIシーケンスで実施することもあります。OAuth 2.0のAPI設定や複雑さはアプリケーションのセキュリティや開発者の要件によって異なります。決して一律のプロセスではありません。

LoadViewでOAuth 2.0の負荷テストを行う方法は2つあります。

  1. 開発者にOAuth認証のAPIシーケンスをリクエストする。これが最も簡単で直接的な方法です。そうでなければLoadViewを使用します。
  2. EveryStep Web Recorderスクリプトツールで記録する。ここからRecorderを試すことができます。

EveryStep Web Recorderは使いやすく、開発者に依存しなくてよいため、より効果的かつ効率的です。

プロセス1. EveryStep Web Recorderを用いたOAuth 2.0負荷テストの手順

ステップ1. EveryStep Web Recorderにアクセスします。

OAuth:新しいスクリプトの記録

ステップ2. アプリケーションのURLを入力し、Record Nowを選択します。

OAuth:記録を開始

ステップ3. アプリケーションのログインシナリオに従います。

OAuth:ログインシナリオ

ステップ4. アプリケーションの詳細をすべて確認します。

OAuth:詳細の確認

ステップ5: これで完了です。再生して正常に動作することを確認してください。簡単ですね?録画が完了したら、LoadViewプラットフォームで設定し、負荷テストを実施します。

プロセス2. LoadViewを使ったOAuth 2.0 APIシーケンスの使用

注:OAuth 2.0プロセスを完了するためには2つのアクションが必要です。

アクション1. 認証コードの取得

アクション2. 認証コードをアクセストークンと交換

注:APIサーバーのリクエスト詳細やボディデータの詳細は開発チームから取得する必要があります

ステップ1. LoadViewアカウントを作成し、テストするAPIタイプを選ぶためにLoadViewダッシュボードに移動します。

OAuth:新しい負荷テストの作成

ステップ2. デモ用にHTTP/Sを選択しています。APIのサービスタイプにより状況は異なります。

OAuth:HTTPSテスト

ステップ3. アプリケーションのAPIサーバーにアクセスするようAPIリクエストを設定します。

OAuth:デバイスの設定

ステップ4. APIサーバーはログインページへリダイレクトします。そこには「データにアクセスするにはMicrosoft(OAuthプロバイダー)でログインしてください」と記されています。URLにはOAuth 2が含まれています。

OAuth:ログインURL

ステップ5. ユーザーはメールアドレスとパスワードを入力しログインします。認証サーバーはURLのパラメーターとしてコードを付けてユーザーをウェブサイトへリダイレクトします。

OAuth:ログインURLの詳細

ステップ6. APIサーバーは認証サーバーにアクセストークンに対するユーザー情報を要求し、認証サーバーはuserid、メールアドレスなどの詳細を返します。

OAuth:ログインユーザーの情報

ステップ7. APIサーバーはユーザーを識別し、アクセストークンと共にレスポンスを送信します。クライアントは以下のリクエストでアクセストークンをAPIサーバーへ送信し、APIサーバーはアクセストークンが有効か確認してアプリケーションへのアクセスを許可します。

OAuth:ログインのアクセストークン

まとめ:OAuth Web APIの負荷テスト

OAuth 2.0リクエストの相関および設定は簡単ではありません。アプリケーションのOAuthの仕組みを経験と明確な理解が求められます。OAuthはあらゆるアプリケーションにおいて非常に重要な機能を可能にするため、OAuth APIのパフォーマンステストを実施することが重要です。もしJMeterのような他のオープンソースツールを使用している場合は、JMeterテストをLoadViewに変換できます。JMeterはLoadViewのようなパフォーマンステストソリューションではなく単なる負荷ツールであるため、LoadViewのような適切なパフォーマンステストソリューションでエンドツーエンドのテストを実行する必要があります。

LoadViewについてさらに学び、無料トライアルに登録しましょう。最大5回の無料負荷テストが利用可能です。