標準の Web サービスに対するセキュリティの設定

関連:API テスト のみ

このタスクでは,標準の Web サービスに対してセキュリティを設定する方法について説明します。このモードでは,HTTP トランスポート情報とトークンなどのセキュリティ要素を定義できます。

Web サービス・シナリオを作成する

  1. 次のいずれかの方法で[セキュリティ設定]ダイアログを開きます。

    • ポート・レベルでセキュリティを設定するには,[ツールボックス]で Web サービスのポートを右クリックし,[セキュリティ設定]を選択します。

    • すでにキャンバス上にある特定の Web サービスのステップに対してセキュリティを設定するには,ステップを選択して[プロパティ]表示枠の[セキュリティ設定]タブを開きます。[ポートのセキュリティ設定の使用]オプションをクリアします。

    • SOAP 要求ステップの場合は,[プロパティ]表示枠で[セキュリティ設定]タブをクリックします。

  2. [セキュリティ設定]ダイアログ・ボックスで,[サービスの詳細]ドロップダウン・リストから[Web サービス]を選択します(標準設定)。

  3. 先頭に戻る

HTTP を設定する

[セキュリティ設定]ダイアログ・ボックスのメイン・ウィンドウで,[HTTP]タブを選択し,トランスポートとプロキシの情報を設定します。

先頭に戻る

TLS によるトランスポート・レベル・セキュリティの追加

TLS プロトコルを使用して,API テストで Web サービスを保護します。

注: Windows 7,Windows Server 2016,Windows Server 2012 では TLS 1.3 はサポートされていません。

Windows OS で TLS 1.0,1.1,または 1.2 を使用して Web サービスを保護するには

  1. すでにキャンバス上に存在する Web サービスステップを選択し,[プロパティ]表示枠で[イベント]タブを開きます。

  2. [イベント]タブの[BeforeExecuteStepEvent]行で,下矢印をクリックし,[標準設定のハンドラの作成]を選択します。

    ドキュメント表示枠に[TestUserCode.cs]タブが開き,BeforeExecuteStepEvent イベント用に,コードのセクションがこのファイルに追加されます。

  3. [TestUserCode.cs]タブで,System.Net および System.Net.Security をインポートします。

    インポートされたコードは次のようになります。

  4. 括弧内の //TODO: ここにコードを追加してください... という文字列を,以下のステートメントに置き換えます。このステートメントは UFT One に対して TLS プロトコルの使用を指示し,使用するバージョンを指定します。

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls<バージョン>

    注:  

    • TLS 1.0 を指定するには,空のバージョン文字列を使用します。

    • TLS 1.1 を指定するには,バージョン文字列「11」を使用します。

    • TLS 1.2 を指定するには,バージョン文字列「12」を使用します。

Windows 10 または 11 で TLS 1.3 を使用して Web サービスを保護するには

  1. Windows 10 で API テストを実行するには,次のレジストリ・パスで,DWORD レジストリ値「Enabled」と「DisabledByDefault」を作成します。

    レジストリ・パス

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client

    詳細については,「TLS,DTLS,SSL プロトコルのバージョン設定」を参照してください。

  2. すでにキャンバス上に存在する Web サービスステップを選択し,[プロパティ]表示枠で[イベント]タブを開きます。

  3. [イベント]タブの[BeforeExecuteStepEvent]行で,下矢印をクリックし,[標準設定のハンドラの作成]を選択します。

    ドキュメント表示枠に[TestUserCode.cs]タブが開き,BeforeExecuteStepEvent イベント用に,コードのセクションがこのファイルに追加されます。

  4. [TestUserCode.cs]タブで,System.Net および System.Net.Security をインポートします。

    インポートされたコードは次のようになります。

  5. 括弧内の //TODO: ここにコードを追加してください... という文字列を,以下のステートメントに置き換えます。このステートメントは UFT One に対して TLS プロトコルの使用を指示します。

    ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault;

    注: TLS のバージョンを直接指定するのではなく,SystemDefault を使用することをお勧めします。

先頭に戻る

ユーザ名トークンを使用してメッセージ・レベルのセキュリティを追加する

メッセージ・レベルのユーザ名/パスワード・トークン(ユーザ名トークン)を送信するには,次の手順を実行します。

  1. [セキュリティ設定]ダイアログ・ボックスで,[サービスの詳細]ドロップダウン・リストから,[Web サービス]シナリオを選択します。

  2. [セキュリティ設定]ダイアログ・ボックスのメイン・パートで,[WS-Security]タブをクリックします。

  3. [WS-Security]タブで,[セキュリティ トークンの追加ボタンをクリックし,[ユーザ名]トークンを追加します。

  4. 下の表示枠で,トークンの詳細(ユーザ名,パスワードなど)をカスタマイズします。

先頭に戻る

X.509 証明書を使用した署名でメッセージ・レベルのセキュリティを追加する

  1. [セキュリティ設定]ダイアログ・ボックスで,[サービスの詳細]ドロップダウン・リストから[Web サービス]シナリオを選択します。

  2. [セキュリティ設定]ダイアログ・ボックスのメイン・パートで,[WS-Security]タブをクリックします。

  3. [WS-Security]タブで,[セキュリティ トークンの追加]ボタンをクリックし,ドロップダウン・リストから[X509 証明書]を選択します。

  4. 下の表示枠でトークン名を入力します。

  5. 参照]ボタンをクリックして,証明書ファイルを指定します。証明書は,Windows 証明書ストアにインストールされているはずです。

  6. 参照のタイプ]を選択します。このトークンは署名に使用されるため,最も一般的なタイプは BinarySecurityToken です。

  7. メッセージ署名の追加]ボタンをクリックします。

  8. 署名トークン]ドロップダウン・リストで,前の手順で入力したトークンを選択します。

  9. 特定の要素で証明書に署名するには,[XPath]フィールドが表示されるまで下方向にスクロールして,XPath 式を指定します。

    XPath 式を使用して,SOAP 要求のセキュリティ要素の下にあるタイムスタンプ,またはトークンに署名することはできません。

    • SOAP 本文タイムスタンプ,または WS-Addressing に署名するには,定義済みのパーツ領域でチェックボックスを選択します。

    • セキュリティ要素内でトークンに署名するには,[署名する項目]領域の[トークン (オプション)]フィールドでトークンを選択します。

    注: Windows 証明書ストアに証明書をインストールする必要があります。前述の例では,証明書の実際のストア名,ストアの場所,およびサブジェクト名を設定する必要があります。

先頭に戻る

証明書を使用して Web サービス・メッセージを暗号化する

サービス証明書を使用してメッセージを暗号化するには,次の手順を実行します。

  1. [セキュリティ設定]ダイアログ・ボックスで,[サービスの詳細]ドロップダウン・リストから[Web サービス]シナリオを選択します。

  2. [セキュリティ設定]ダイアログ・ボックスのメイン・パートで,[WS-Security]タブを選択します。

  3. [WS-Security]タブで,[セキュリティ トークンの追加]ボタンをクリックし,[セキュリティ トークン]ドロップダウン・リストから適切なトークンを選択します。

  4. トークン名を入力し,トークンまたは証明書のプロパティを設定します。

  5. メッセージ暗号化の追加]ボタンをクリックします。ドロップダウン・リストで,前の手順で作成したトークンを選択します。

  6. XPath]フィールドが表示されるまで下方向にスクロールします。暗号化する要素の Xpath 式を入力します。例:// *[local-name(.)='Body']

先頭に戻る

ユーザ名トークンを送信して X.509 証明書でトークンを暗号化する

次の項では,ユーザ名トークンをサービスに送信する方法と,サーバの X.509 証明書を使用してそのトークンを暗号化する方法について説明します。

  1. [セキュリティ設定]ダイアログ・ボックスで,[サービスの詳細]ドロップダウン・リストから[Web サービス]シナリオを選択します。

  2. [セキュリティ設定]ダイアログ・ボックスのメイン・パートで,[WS-Security]タブを選択します。

  3. [WS-Security]タブで,[セキュリティ トークンの追加]ボタンをクリックし,[セキュリティ トークン]ドロップダウン・リストから[ユーザ名トークン]を選択します。

  4. 下の表示枠で,ユーザ名トークンの詳細を指定します。

  5. セキュリティ トークンの追加]ボタンを再度クリックし,[セキュリティ トークンドロップダウン・リストから[X509 証明書トークン]を選択します。

  6. 下の表示枠で,サーバの公開証明書を参照するように,トークンの詳細を入力します。このトークンは暗号化に使用されるため,Reference を[参照のタイプ]として使用します。

  7. メッセージ暗号化の追加]ボタンをクリックします。ドロップダウン・リストで,前の手順で作成した X.509 トークンを選択します。

  8. 特定のメッセージを暗号化するには,[XPath]フィールドが表示されるまで下方向にスクロールします。// *[local-name(.)='Body'] のように XPath 式を入力します。

先頭に戻る

WS-Addressing を設定する(オプション)

  1. [セキュリティ設定]ダイアログ・ボックスのメインの表示枠で,[WS-Addressing]タブをクリックします。

  2. [WS-Addressing]タブで,該当するバージョンを選択するか,WS-Addressing を使用しない場合は[なし]を選択します。

  3. 返信先]フィールドで,代替の返信先を指定します。

先頭に戻る