認証

合成テストには、Splunk Synthetic Monitoring がそのテストタイプでサポートしている認証方法を組み込むことができます。

Syntheticsテストでは、以下の認証方法を設定に利用可能です:

テストタイプ

認証メソッド

ブラウザ

HTMLログインフォームによる基本認証

HTTPヘッダーによる基本認証

SMSによる多要素認証

メールによる多要素認証

SSOとActive Directoryによる多要素認証

TOTPによる多要素認証

mTLS 認証

アップタイム

mTLS 認証

API

APIリクエストヘッダーによる基本認証

mTLS 認証

HTMLログインフォームによる基本認証

注: この認証方法は、ブラウザテストにのみ適用されます。

テスト対象がユーザー名とパスワードを入力するためのHTMLフォームを提供している場合は、ブラウザテストを以下のように設定します。

HTMLフォームを使った基本認証による合成テストの設定方法を示すスクリーンショット。
  1. このテスト対象のユーザー名とパスワード用にグローバル変数を作成します。ベストプラクティスは、 パスワード用に作成したグローバル変数を非表示にすることです。詳細については、「グローバル変数」を参照してください。

  2. ブラウザテストの設定ページで、[Simple] トグルを選択します。

  3. Edit steps or synthetic transactions を選択します。

  4. Fill in fieldというタイプのステップを追加し、以下のように設定します:

    1. [Selector] に、ターゲットページのユーザー名フィールドの ID、名前、XPath、 CSS 、リンク、または JS パスを入力します。Chrome の要素セレクタの詳細については、「Chrome DevTools」を参照してください。

    2. [Value] には、ユーザー名を格納したグローバル変数名を、env. を先頭につけて二重中括弧で囲んで入力します。たとえば、{{env.test1_username}} のようになります。

  5. Fill in fieldというタイプのステップを追加し、以下のように設定します:

    1. [Selector] に、ターゲットページのパスワードフィールドの ID を入力します。

    2. [Value] には、パスワードを格納したグローバル変数名を、env. を先頭につけて二重中括弧で囲んで入力します。たとえば、{{env.test1_password}} のようになります。

  6. Clickというタイプのステップを追加し、以下のように設定します:

    1. [Selector] に、ターゲットページのログインボタンの ID を入力します。

    2. (オプション)Wait for navigation**を待機するミリ秒数に設定します。

  7. ログインが成功したことを確認するために、Assert text presentというタイプのステップを追加し、以下のように設定します:

    1. Textには、ログインが成功した場合にのみテスト対象ページに表示される文字列を入力します。

    2. (オプション)ページが確実にロードされるように、Wait for up toをミリ秒単位で十分に大きな値に設定します。

  8. Submit を選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

HTTPヘッダーによる基本認証

注: この認証方法は、ブラウザテストにのみ適用されます。

テスト対象がHTTPヘッダーにログイン認証情報が含まれることを期待している場合、ブラウザテストを以下のように設定します。

  1. このテスト対象のユーザー名とパスワード用にグローバル変数を作成します。ベストプラクティスは、 パスワード用に作成したグローバル変数を非表示にすることです。詳細については、「グローバル変数」を参照してください。

  2. ブラウザテストの設定ページで、[Advanced] トグルを選択します。

  3. [Security] セクションまで下にスクロールします。

  4. Authenticationの行で、以下のように値を設定します:

    1. 左のフィールド(ヒントのテキストUsername)に、ターゲットページのユーザー名を入力します。

    2. 右のフィールドには、このターゲットページのパスワードを格納したグローバル変数名を、env. を先頭につけて二重中括弧で囲んで入力します。たとえば、{{env.test1_password}} のようになります。使用可能なグローバル変数のリストを表示するには、右側のペインを展開します。

  5. ブラウザテストの設定ページで、[Simple] トグルを選択します。

  6. Edit steps or synthetic transactionsを選択します。

  7. [Go to url] というタイプのステップを追加し、[URL] にターゲットの認証ページの URL を入力します。

  8. ログインが成功したことを確認するために、Assert text presentというタイプのステップを追加し、以下のように設定します:

    1. Textには、ログインが成功した場合にのみテスト対象ページに表示される文字列を入力します。

    2. (オプション)ページが確実にロードされるように、Wait for up toをミリ秒単位で十分に大きな値に設定します。

  9. Submitを選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

APIリクエストヘッダーによる基本認証

注: この認証方法は、API テストにのみ適用されます。以下の手順は「基本認証」、つまり curl -G https://api.twilio.com/2010-04-01/Accounts.json -u <YOUR_ACCOUNT_SID>:<YOUR_AUTH_TOKEN> などの API メソッドをサポートするターゲット用です。ベアラートークンをサポートするターゲットに対して、これらの手順を変更できます。

テスト対象がAPIリクエストヘッダーにログイン認証情報が含まれることを期待している場合、ブラウザテストを以下のように設定します。

APIリクエストヘッダーによる基本認証で合成テストをセットアップする方法を示すスクリーンショット。
  1. テストターゲットのユーザー名とパスワードの組み合わせを base64 エンコードした文字列を取得します。base64 エンコードされた文字列を取得する方法はいくつかあります。例:

    • ブラウザのコンソールから JavaScript 関数 btoa を実行します:btoa("myusername:mypassword")

    • Linuxのターミナルでこのコマンドを実行します:echo -n 'myusername:mypassword' | base64

  2. base64 値を隠されたグローバル変数に格納します。詳細については、「グローバル変数」を参照してください。

  3. API テストの設定ページで、テスト内の既存のリクエストを選択するか、[Add requests] を選択します。

  4. Requestセクションを展開し、以下の情報を入力します:

    1. [URL] に、テストターゲットの URL を入力します。

    2. Add request header を選択します。

    3. [Authorization] ヘッダーを選択し、その値として [Basic] という単語を入力してから半角スペースを入れ、base64 でエンコードされたユーザー名とパスワードを結合したグローバル変数の名前を入力します。変数には、先頭に env. を付け、二重中括弧で囲む必要があります。たとえば、{{env.est1_base64_auth}} のようになります。使用可能なグローバル変数のリストを表示するには、右側のペインを展開します。

  5. Submit を選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

SMSによる多要素認証

注: この認証方法は、ブラウザテストにのみ適用されます。

テストターゲットが多要素認証のために SMS を通じてワンタイムパスコード(OTP)を送信する場合、ブラウザテストは SMS メッセージから OTP を取得し、テストターゲットのページの入力フィールドに入力する必要があります。これを行うには、ブラウザテストを次のように設定します。

前提条件

  • 仮想電話番号

    SMS を介して認証に行うには、 SMS を介してワンタイムパスコードを受信できる仮想電話番号が必要です。複数のサービスが仮想電話番号を提供しており、Sinch サービス のように API を介して SMS の内容を取得できます。 このサービスを介してメッセージを受信する方法については、「Sinch API」を参照してください。

    Twilio などの特定のサービスでは、OTP を含む着信 SMS メッセージがブロックされる場合があります。詳細については、Twilio の「OTP Message Body Filtered」ドキュメントを参照してください。

  • SMS通知

    認証プロセスを強化するには、GitHubのような、SMS 通知を送信するサービスが必要です。

制限事項

コンテンツ セキュリティ ポリシー(CSP)の違反により、合成テスト中に一部のサービスにアクセスできない場合があります。このような場合の回避策は、サーバーにサードパーティサービスを実装し、connect-src を許可するように CSP で設定されたエンドポイントを提供することです。

  1. ブラウザテストの設定ページで、[Simple] トグルを選択します。

  2. Edit steps or synthetic transactions を選択します。

  3. [Go to url] というタイプのステップを追加し、[URL] にターゲットの認証ページの URL を入力します。

  4. [Save return value from JavaScript] というタイプのステップを追加し、[code] フィールドに、次の JavaScript を貼り付けます。このスクリプトは、XMLHttpRequest を使用して指定された URL からデータを取得し、そのデータから OTP を抽出します。この OTP を otp という名前のグローバル変数に保存するようにテストを設定します。

    注: スクリプトの中で、変数 url に自分の仮想電話番号の SMS サービスの URL を設定します。
    function getOtp() {
      const url = "https://your-page.example.com/sms";
      var request = new XMLHttpRequest();
      request.open("GET", url, false);
      request.send();
      if (request.status == 200) {
        return parseOtp(JSON.parse(request.responseText));
      }
    return;
    }
    
    function parseOtp(jsonResponse) {
      const firstInbound = jsonResponse.inbounds[0];
      if (firstInbound && firstInbound.body) {
        // Extract the number using a regular expression
        const match = firstInbound.body.match(/\\b\\d{6}\\b/);
        if (match) {
          return match[0]; // Return the first matched number
        }
       }
       return;
    }
    return getOtp();
  5. [Wait] というタイプのステップを追加し、待ち時間をミリ秒単位で指定します。この時間は、ターゲットが仮想電話番号に OTP コードを送信し、JavaScript が OTP を処理するのに十分な時間である必要があります。

  6. Fill in fieldというタイプのステップを追加し、以下のように設定します:

    1. Selectorには、ユーザーがOTPを入力するターゲットページのエレメントのIDを入力します。

    2. [Value] には、JavaScript が OTP を格納したカスタム変数名に、custom. を先頭に付け、二重中括弧で囲んで入力します。たとえば、{{custom.otp}} のようになります。

    「フィールドに入力する」ステップを示すスクリーンショット
  7. ログインが成功したことを確認するために、Assert text presentというタイプのステップを追加し、以下のように設定します:

    1. Textには、ログインが成功した場合にのみテスト対象ページに表示される文字列を入力します。

    2. (オプション)ページが確実にロードされるように、Wait for up toをミリ秒単位で十分に大きな値に設定します。

  8. Submit を選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

メールによる多要素認証

注: この認証方法は、ブラウザテストにのみ適用されます。

テストターゲットが多要素認証のために電子メールを通じてワンタイムパスコード(OTP)を送信する場合、ブラウザテストは電子メールのメッセージから OTP を取得し、テストターゲットのページの入力フィールドに入力する必要があります。これを行うには、ブラウザテストを次のように設定します。

前提条件

電子メールアカウントへの接続および API を介した電子メールの管理をサポートする電子メールサービスが必要です。以下の手順では、Nylas サービス を使用する例を示します。このサービスからメッセージを取得する方法の詳細については、「API ドキュメント」を参照してください。

さらに、以下のステップでは、GitHub を使用して認証メールを送信することを示します。この認証メールは、認証メールから OTP を抽出するために不可欠です。

制限事項

電子メールサービスは API を介してアクセスできる必要があります。コンテンツ セキュリティ ポリシー(CSP)の違反により、合成テスト中に一部のサービスにアクセスできない場合があります。このような場合の回避策は、サードパーティのサービスをサーバーに実装し、connect-src を許可するように CSP で設定されたエンドポイントを提供することです。

  1. ブラウザテストの設定ページで、[Simple] トグルを選択します。

  2. Edit steps or synthetic transactions を選択します。

  3. [Go to url] というタイプのステップを追加し、[URL] にターゲットの認証ページの URL を入力します。

  4. [Save return value from JavaScript] というタイプのステップを追加し、[code] フィールドに、次の JavaScript を貼り付けます。このスクリプトは、XMLHttpRequest を使用して指定された URL からデータを取得し、そのデータから OTP を抽出します。この OTP をotpというカスタム変数に保存するようにテストを設定します。

    注: スクリプトの中で、変数urlを自分のメール受信箱APIエンドポイントのURLに設定します。
    注: Nylas サービスを利用している場合、件名やその他のパラメータで特定のテキストを検索することで、未読メールを見つけることができます。詳細については、「Nylas API documentation for messages」を参照してください。
    function getOtp() {
      const grantId = "<NYLAS_GRANT_ID>";
      const jwToken = "<NYLAS_API_KEY>";
      const from = "noreply@github.com";
      const subject = "Your GitHub launch code";
      const unread = "true";
      const url = "https://api.us.nylas.com/v3/grants/" + grantId + "/messages?limit=1&unread=" + unread + "from=" + from + "&subject=" + subject;
      var request = new XMLHttpRequest();
      request.open("GET", url, false);
      request.setRequestHeader('Authorization', 'Bearer ' + jwToken)
      request.send();
      if (request.status == 200) {
        return parseOtp(JSON.parse(request.responseText));
      }
      return "ERR";
    }
    
    function parseOtp(jsonResponse) {
      const firstInbound = jsonResponse. data[0];
      if (firstInbound && firstInbound.snippet) {
        // Extract the number using a regular expression
        const match = firstInbound.snippet.match(/\\b\\d{8}\\b/);
        if (match) {
          return match[0]; // Return the first matched number
        }
      }
      return "NO-OTP";
    }
    return getOtp();
  5. [Wait] というタイプのステップを追加し、待ち時間をミリ秒単位で指定します。この時間は、ターゲットが電子メールサービスに OTP コードを送信し、JavaScript が OTP を処理するのに十分な時間である必要があります。

  6. Fill in fieldというタイプのステップを追加し、以下のように設定します:

    1. Selectorには、ユーザーがOTPを入力するターゲットページのエレメントのIDを入力します。

    2. [Value] には、JavaScript が OTP を格納したカスタム変数名に、custom. を先頭に付け、二重中括弧で囲んで入力します。たとえば、{{custom.otp}} のようになります。

    「フィールドに入力する」ステップを示すスクリーンショット
  7. ログインが成功したことを確認するために、Assert text presentというタイプのステップを追加し、以下のように設定します:

    1. Textには、ログインが成功した場合にのみテスト対象ページに表示される文字列を入力します。

    2. (オプション)ページが確実にロードされるように、Wait for up toをミリ秒単位で十分に大きな値に設定します。

  8. Submit を選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

SSOとActive Directoryによる多要素認証

シングルサインオン(SSO)による認証は、基本認証に似ています。SSO または Active Directory(AD)を使用するテストを作成するには、 Web ページを開き、SSO 認証リンクを選択して、SSO 認証に必要な情報を入力する一連の手順を設定する必要があります。このプロセス中に追加の Web ページがロードされる可能性があるため、次の手順に進む前に、各 Web ページのすべてのコンポーネントが完全にロードされたことを確認する手順を含めることが重要です。

SSO 認証では、追加の認証要素が必要になることがよくあります。ID プロバイダー(Google、Microsoft、Okta、Duo など)が追加のログイン要素を義務付けていない場合、テストは以下の例で示される認証ステップだけで済む可能性があります。

SSOまたはActive Directoryで認証する合成テストの作成手順を示すスクリーンショット。

制限事項

ID プロバイダーは、電子メール、 SMS 、TOTP を介した検証など、ログインに対してさまざまな追加の要因を必要とすることがよくあります。このような場合、これらの追加のログイン要素に対応するために手順を変更または追加することが重要です。

TOTPによる多要素認証

注: この認証方法は、ブラウザテストにのみ適用されます。

テストターゲットに時間ベースのワンタイムパスコード(TOTP)を送信する必要がある場合は、以下のように設定します。

TOTPを生成するための秘密鍵を取得します。

秘密鍵は、テストターゲットとテスト認証アプリ(Okta など)の両方が、同じ一意の TOTP を生成するために使用する共有値です。この秘密鍵は、次の場所から取得できます。

  • テストターゲットの QR コード(画像)。

  • プレーンテキストの秘密鍵。QR コードを URL 文字列として表示したときに、テストターゲットの QR コードに埋め込まれた文字列として表示されます。たとえば、QR コードが otpauth://totp/Slack:<username>@<somedomain>?secret=<long-string>&issuer=<app-name>&algorithm=SHA1&digits=6&period=30 の場合、秘密鍵は <long-string> になります。

秘密鍵をタイプTOTPのグローバル変数に保存します。

グローバル変数を作成するには2つの方法があります:

  • Splunk Synthetic Monitoringランディングページから:

    1. Splunk Synthetic Monitoringランディングページから、設定アイコンを選択し、Global variablesを選択します。

    2. Create variable を選択します。

  • 既存のテストのページから:

    1. Edit test を選択します。

    2. 右側のVariablesパネルを展開し、Global variablesまでスクロールして、Addを選択します。

Add variableダイアログボックスで、次のように入力します:

グローバル変数の作成方法を示すスクリーンショット。
  1. [Variable type] プルダウンメニューで、[TOTP] を選択します。

  2. [Variable name] フィールドに変数の名前を入力します。この名前を使用して、テスト内で変数にアクセスします。

  3. 秘密鍵は以下のいずれかの方法で保存します:

    • QR codeタブを選択し、そこにQRコード画像をドラッグします。

    • Manual inputタブを選択し、QRコードから取得した<long-string>を貼り付けます。

  4. (オプション)[Description] フィールドに、後で参照するために変数の目的を説明する文を入力します。説明は、変数を隠してその値を明らかにできない場合に特に役立ちます。

  5. (オプション)Advanced Settingsを展開し、オプション設定を指定します:

    • (オプション)[digits] に、生成される TOTP の桁数を設定します。有効な値:4 ~ 8。デフォルト: 6。

    • (オプション)[TOTP expiration] に、TOTP の有効期間を秒単位で設定します。有効な値:10 秒 ~ 90 秒。デフォルト:30 秒。

  6. (オプション)入力した秘密鍵を検証するには、Generate TOTPを選択します。

  7. Add を選択します。

注: Splunk Synthetic MonitoringはTOTP型の変数の値を自動的に隠します。

TOTP を使用してブラウザテストを設定

  1. ブラウザテストの設定ページで、[Simple] トグルを選択します。

  2. Edit steps or synthetic transactions を選択します。

  3. [Fill in field] というタイプのステップを追加し、[Value] で、[TOTP] セクションまでスクロールダウンし(または検索フィールドに totp と入力し)、作成した TOTP 変数の名前を選択します。{{totp.<variable-name>}} としてこの変数名を直接入力することもできます。

    「フィールドに入力する」ステップを示すスクリーンショット
  4. ログインが成功したことを確認するために、Assert text presentというタイプのステップを追加し、以下のように設定します:

    1. Textには、ログインが成功した場合にのみテスト対象ページに表示される文字列を入力します。

    2. (オプション)ページが確実にロードされるように、Wait for up toをミリ秒単位で十分に大きな値に設定します。

  5. Submit を選択します。

ログインが機能していることを確認するには、[Try now] を選択します。結果が出るまでしばらく時間がかかる場合があります。[Try now result] ペインには、対象ページでテストがナビゲートした各画面と、メッセージ [Success] が表示されます。

「今すぐ試す」ステップを示すスクリーンショット

mTLS 認証

注: mTLS 認証は、ブラウザ、アップタイム、および API テストで設定できます。

相互 TLS(mTLS)認証は、クライアント(プライベートランナーまたはパブリックランナー)と Web サーバー(テストターゲット)の両方が接続を検証するための方法です。mTLS では、クライアントとサーバーの両方に証明書があり、双方がその証明書の公開キー/秘密キーのペアを使用して認証を行います。mTLS 認証を成功させるには、次の手順を実行します。

  1. クライアント証明書を CERT タイプのグローバル変数に保存します

  2. クライアント証明書をプライベートランナーにアップロードします

  3. ブラウザアップタイム、または API テストでCERT変数を参照するように設定します。

クライアント証明書を CERT タイプのグローバル変数に保存

これらの手順は、テストターゲットのクライアント証明書がすでにダウンロードされていることを前提としています。

グローバル変数を作成するには2つの方法があります:

  • Splunk Synthetic Monitoringランディングページから:

    1. Splunk Synthetic Monitoringランディングページから、設定アイコンを選択し、Global variablesを選択します。

    2. Create variable を選択します。

  • 既存のテストのページから:

    1. Edit test を選択します。

    2. 右側のVariablesパネルを展開し、Certificatesまでスクロールして、Addを選択します。

Add variableダイアログボックスで、次のように入力します:

グローバル変数の作成方法を示すスクリーンショット。
  1. [Variable type] プルダウンメニューで、[CERT] を選択します。

  2. [Variable name] フィールドに変数の名前を入力します。この名前を使用して、テスト内で変数にアクセスします。

  3. [Domain] フィールドに、テストターゲットの正確なドメインを入力します。たとえば、テストターゲットがclient.badssl.comの場合は、[Domain] をclient.badssl.comに設定します。[Domain] をbadssl.comに設定すると、ブラウザテストで mTLS 認証がタイムアウトエラーで失敗します。エラーが表示されるまでに最大 2 分かかる場合があります。

    [Domain] では、次のようなワイルドカードを使用できます。

    • *.example.com
    • example.*
    • *.example.*
    • *.*.*
    • *.*.*.example/*
    • *.*.*/*
  4. クライアント証明書が PCKS#12 形式の場合は、まず、.pem 形式に変換します

  5. 証明書と一致する方法を使用して、クライアント証明書をアップロードします。

    • 証明書の公開キーと秘密キーが別々のファイルになっている場合は、[Upload Public Key] タブを選択し、ウィジェットに公開キーファイルをドラッグします。次に、[Upload Private Key] を選択し、秘密キーファイルをウィジェットにドラッグします。

    • 証明書が、公開キーと秘密キーの両方を含む結合ファイルの場合は、[Upload Combined Key] タブを選択し、結合ファイルをウィジェットにドラッグします。

  6. 前の手順でアップロードした結合ファイルまたは秘密キーが暗号化されている場合は、その復号パスワードを [Private key password] フィールドに貼り付ける必要があります。Splunk Synthetics はこのパスワードを使用してファイルを 1 回開きますが、復号パスワードは保持されません。

  7. (オプション)[Description] フィールドに、後で参照するために変数の目的を説明する文を入力します。説明は、変数を非表示にする場合に特に役立ちます。

  8. Add を選択します。

クライアント証明書は、暗号化された形式で Splunk Synthetics データベースに安全に保存されます。

.p12 を .pem に変換

  1. システムに OpenSSL をインストールします。

    • Linux では、通常、事前にインストールされています。インストールされていない場合は、パッケージマネージャを使用してインストールします。たとえば、Ubuntu では、apt install openssl というコマンドを実行します。

    • macOS では、brew install openssl というコマンドを実行します。

    • Windows では、OpenSSL バイナリをダウンロードするか、Chocolatey などのパッケージマネージャを使用します。

  2. 証明書の暗号化アルゴリズムと一致する次のコマンドを実行します。

    • 証明書が標準規格(レガシー以外)のアルゴリズムで暗号化されている場合は、次のコマンドを実行します。

      openssl pkcs12 -in input.p12 -out output.pem -aes256 -passin pass:your-p12-password

      値は次のとおりです。

      • input.p12 は、入力となる PKCS#12 ファイルです。
      • output.pem は、出力される PEM ファイルです。
      • new-password は、.p12 ファイルの作成時に生成したパスワードです。

      例:

      openssl pkcs12 -in in-cert.p12 -out out-cert.pem -aes256 -passin pass:ABC123@GL
    • OpenSSL 3.0+ を使用していて、証明書が RC2-40-CBC などのレガシーアルゴリズムで暗号化されている場合は、openssl コマンドを -legacy オプションを付けて実行します。このオプションは、OpenSSL 3.0 以降でデフォルトでは非アクティブ化されている古い暗号化アルゴリズムのサポートを有効にします。

      openssl pkcs12 -legacy -in input.p12 -out output.pem -nodes

      値は次のとおりです。

      • input.p12 は、入力となる PEM ファイルです。
      • output.pem は、出力される PEM ファイルです。

    結果として得られる .pem ファイルには、秘密キーと証明書の両方が含まれています。

  3. 秘密キーと証明書を個別に保存する必要がある場合は、次のコマンドを実行して抽出します。

    • 秘密キーを抽出するには:

      openssl pkey -in output.pem -out private-key.pem
    • 証明書を抽出するには:

      openssl x509 -in output.pem -out certificate.pem

プライベートランナーの設定

  1. tmpfs mount コマンド(または同様のコマンド)を使用して、プライベートランナーがテストの実行中にクライアント証明書を一時的に保存するために使用する次のフォルダをマウントします。

    • /tmpfs/certificates(アップタイムおよび API テストで使用)

    • /home/geppetto/.pki(ブラウザのテストで使用)

    これらのフォルダに tmpfs ファイルシステムを使用すると、クライアント証明書をインスタンスディスクに保存せずに済みます。証明書をディスクに保存しないことで、テストの実行中に証明書をディスクドライブのバックアップに誤って含めるリスクを回避できます。

  2. プライベートランナーが Docker 上にある 場合は、次の環境変数を docker run コマンドに追加します。

    -e "ENABLE_CLIENT_CERTS=true"
  3. プライベートランナーが Docker Compose 上にある 場合は、次の環境変数を docker-compose.yml コマンドに追加します。

    environment:
        ...
        ENABLE_CLIENT_CERTS: true
    

mTLS を使用してブラウザテストを設定

ブラウザテストでクライアント証明書を指定する方法を示すスクリーンショット

注: 選択した証明書のドメインが、テストターゲットのページのドメインと一致することを確認します
  1. ブラウザテストの設定ページで、[Advanced] トグルを選択します。

  2. [Security] セクションまで下にスクロールします。

  3. [TLS/SSL validation] トグルを [On] に設定します。

  4. [Certificate] プルダウンメニューで、クライアント証明書用に作成した CERT グローバル変数を選択します。たとえば、{{cert.Badssl_com-test2}} のようになります。

mTLS を使用したアップタイム(HTTP)テストの設定

アップタイムテストでクライアント証明書を指定する方法を示すスクリーンショット

  1. HTTP テストの設定ページで、[Security] セクションまで下にスクロールします。

  2. [TLS/SSL validation] トグルを [On] に設定します。

  3. [Certificate] プルダウンメニューで、クライアント証明書用に作成した CERT グローバル変数を選択します。たとえば、{{env.est1_base64_auth}} のようになります。すべての CERT 変数の一覧を表示するには、右側のペインを展開します。

  4. Submit を選択します。

mTLS を使用した API テストの設定

API テストでクライアント証明書を指定する方法を示すスクリーンショット

クライアント証明書を必要とする各 API リクエストに、証明書を追加できます。その場合は次の手順に従ってください。

  1. API テストの設定ページで、テスト内の既存のリクエストを選択するか、[Add requests] を選択します。

  2. [Request] セクションを展開します。

  3. Add request header を選択します。

  4. [Select certificate] ドロップダウンメニューで、作成済みの CERT変数を選択します。たとえば、{{env.est1_base64_auth}} のようになります。すべての CERT 変数の一覧を表示するには、右側のペインを展開します。

  5. [Submit] を選択します。