ウェブアプリケーション認証
始める前に
- Tenable Web App Scanning スキャンの認証情報の設定
Tenable Web App Scanning スキャンでは、
認証タイプ の [設定] セクションのドロップダウンリストで、以下の中からいずれかの認証方法を設定できます。
Tenable Web App Scanning の認証の概要については、次の動画をご覧ください。
| オプション | アクション |
|---|---|
| ユーザー名 | ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。 |
| パスワード | ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。 |
| オプション | アクション |
|---|---|
| Authentication Method (認証方法) | ドロップダウンボックスで、[ログインフォーム] を選択します。 |
| ログインページ | スキャンするウェブアプリケーションのログインページの URL を入力します。 |
| 認証情報 |
ターゲットのログインフォームの各フィールド (ユーザー名、パスワード、ドメインなど) について、次のように認証情報エントリに入力します。
典型的な設定の例 ヒント: テキストフィールドの名前または ID HTML DOM 属性を表示するには、テキストフィールドを右クリックし、Firefox または Chrome ブラウザで [検査] を選択します。 ヒント: 認証情報なしの [概要] スキャンを実行する場合、プラグイン 98033 ([ログインフォームが検出されました]) が、必要なログインボックスを自動的に検出してプラグインの出力にそれを表示することがあります。 |
| 正常な認証を検証するためのパターン |
認証が成功した場合にのみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、ようこそ、[ユーザー名] さん!)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| オプション | アクション |
|---|---|
| Authentication Method (認証方法) | ドロップダウンボックスで、[Cookie 認証] を選択します。 |
| セッション Cookie |
次を実行します。
|
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| オプション | アクション |
|---|---|
| Authentication Method (認証方法) | [Selenium 認証] を選択します。 |
|
Selenium Script (.side) (Selenium スクリプト (.side)) |
次を実行します。
|
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| オプション | アクション |
|---|---|
| 認証方法 | API キーを選択します。 |
|
ヘッダー |
次を実行します。
|
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| オプション | アクション |
|---|---|
| 認証方法 | [ベアラー認証] を選択します。 |
|
ベアラートークン |
ベアラートークンの値を入力します。 注意: ベアラートークン認証は、静的なベアラートークンが使用される場合に利用できます。別のログインプロセスの一部としてトークンが付与される場合は、Selenium、ログインフォーム、OAuth 認証情報のタイプの使用を検討してください。 |
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
OAuth 認証には、使用しているアプリケーションのニーズに合わせて 3 つのフロータイプオプションがあります。すなわち、承認コード、クライアント認証情報、デバイスコードです。
承認コード
このフローを使用するのは、OAuth プロバイダーのブラウザベースのログインページからアプリケーションがインタラクティブにログインする必要がある場合です。スキャナーはアイデンティティプロバイダーにリダイレクトされ、そこでユーザーが認証されると、プロバイダーは承認コードを返します。スキャナーはこれをアクセストークンと交換します。ログインページでマルチステップインタラクション (MFA プロンプトやカスタムフォームフィールドなど) が必要な場合は、Selenium スクリプトを使用して自動化できます。プロバイダーが PKCE をサポートしている場合は、セキュリティを強化するために有効にしてください。
| オプション | アクション |
|---|---|
| クライアント ID | アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。 |
| クライアントシークレット | クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。 |
| 認証 URL | プロバイダーのログインと承認ページ。ここにリダイレクトされたら、認証情報を入力し、スキャナーのアクセスを承認します。これは、認証プロバイダー経由でログインするときに表示されるページです。 |
| リダイレクト URL | スキャナーの承認が成功した後、OAuth プロバイダーからリダイレクトされた後の URL です。スキャナーがアクセストークンと交換する承認コードが入っています。プロバイダーに登録されているものと完全一致しなければなりません。クエリパラメーターを含めないでください。 |
| ユーザー名 | ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。 |
| パスワード |
ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。 |
| Selenium スクリプト (オプション) |
次を実行します。
|
| PKCE (Proof Key for Code Exchange) |
デフォルトでは、無効になっています。承認コードフローの追加セキュリティレイヤー。スキャナーはワンタイムシークレットを生成し、トークン交換中にそのシークレットを所有していることを証明することで、承認コードを傍受した人が使用するのを防ぎます。承認プロバイダーによって有効化されている場合にのみ有効にします。 |
| クライアントの範囲 |
スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。 |
| トークン URL |
スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。 |
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| ログインチェック戦略 |
スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。 |
| ログインリクエスト方法 |
スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。 |
クライアント認証コード
このフローは、アプリケーションが、ユーザーログインではなく、クライアント ID とシークレットを使用して認証する API エンドポイントを公開する場合に使用します。スキャナーは認証情報を OAuth トークンエンドポイントに直接提示し、ブラウザとのやり取りやユーザーセッションなしでアクセストークンを受け取ります。このフローは、認証パスにユーザーが介在しない、マシン間またはサービスアカウントのシナリオに適しています。
| オプション | アクション |
|---|---|
| クライアント ID | アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。 |
| クライアントシークレット | クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。 |
| クライアントの範囲 | スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。 |
| トークン URL | スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。 |
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| ログインチェック戦略 | スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。 |
| ログインリクエスト方法 |
スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。 |
デバイスコード
このフローは、アプリケーションが OAuth デバイス承認パターンに従う場合に使用します。つまり、デバイスまたはヘッドレスクライアントがコードを表示し、別のデバイスで承認を待機します。スキャナーは、Selenium スクリプトを使用して、承認ユーザーインターフェースを処理します。スクリプトで $DEVICE_CODE 変数を使用して、デバイスコード値を該当するフォームフィールドに渡します。アプリケーションの OAuth ログインがブラウザを開けないデバイス用に設計されている場合は、このフローを選択します。
| オプション | アクション |
|---|---|
| クライアント ID | アプリケーションが OAuth プロバイダーに登録されたときにアプリケーションに発行されるパブリック識別子。スキャナーの「ユーザー名」とも呼ばれます。どのアプリケーションがリクエストを行っているかをプロバイダーに伝えます。 |
| クライアントシークレット (オプション) | クライアント ID とペアリングされた機密パスワード。コードをトークンと交換するときにスキャナーの ID を証明するために使用されます。 |
| デバイスコード URL | デバイスコードフロー用の短いユーザーコードを発行する OAuth プロバイダーのエンドポイント。 |
| ユーザー名 |
ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するユーザー名を入力します。 |
| パスワード |
ウェブアプリケーションベースのサーバーに認証するために Tenable Web App Scanning が使用するパスワードを入力します。 |
| Selenium スクリプト (オプション) |
次を実行します。
注: $DEVICE_CODE をこの初期コード値に置き換える必要があります。
|
| クライアントの範囲 | スキャナーがリクエストしているアクセス許可のリスト (例: 読み取り、openid、プロファイルなど)。スキャナーが発行されたアクセストークンをアプリケーションに対して使用した後、そのアクセストークンで何をできるかを範囲で決めます。 |
| トークン URL | スキャナーが承認コード、デバイスコード、クライアント認証情報を実際のアクセストークンと交換するプロバイダーのエンドポイント。 |
| アクティブなセッションを確認するページ |
Tenable Web App Scanning が認証されたセッションを検証するために継続的にアクセスできる URL を入力します。 |
| アクティブなセッションを確認するパターン |
セッションが引き続きアクティブな場合のみウェブサイトに表示される単語、語句、または正規表現を入力します (たとえば、こんにちは、[ユーザー名] さんなど)。なお、先頭のスラッシュはエスケープされ、パターンの最初と最後に .* は必要ありません。 |
| ログインチェック戦略 |
スキャン中にスキャナーがまだログイン中であることを確認する方法です。応答本文に既知のパターンがないかをチェックする、特定のヘッダーをチェックする、HTTP 応答コードをチェックする、のいずれかを選択します。 |
| ログインリクエスト方法 |
スキャナーがアプリケーションを定期的にチェックしてセッションがまだ有効であることを確認するときに使用される HTTP メソッド (GET、POST、PUT など、またはフルブラウザリクエスト)。 |

ボタンをクリックしてヘッダーを追加します。