Oracle® Enterprise Single Sign-On Logon Manager: Webアプリケーションのための テンプレート構成および診断 リリース 11.1.2 B71100-01(原本部品番号:E27166-02) 2012年8月 |
Oracle Enterprise Single Sign-On Logon Manager: Webアプリケーションのためのテンプレート構成および診断
リリース11.1.2
B71100-01
Copyright © 2012, Oracle and/or its affiliates.All rights reserved.
このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。
ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。
このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
このソフトウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。
OracleはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。
このソフトウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。
目次
Logon Managerによってサポートされるinput要素の理解
ターゲット・フィールドとコントロールが「Web Form」ウィザードで表示されますか
アプリケーションでログオン成功または失敗のメッセージを表示しますか
ログオン・フォームとパスワード変更フォームは同一画面上にありますか
ターゲット・フィールドとコントロールが「Web Form」ウィザードで表示されますか
アプリケーションでパスワード変更の成功または失敗のメッセージ(あるいはその両方)を表示しますか.
コントロールID方式を使用したフィールドまたはコントロールの構成
SendKeys方式を使用したフィールドまたはコントロールの構成
新しいパスワードはアプリケーションのパスワード・ポリシーを満たしますか
エージェントはパスワード変更フォームにログオンと同様に応答しますか
第3部: 検出およびレスポンスの問題のトラブルシューティング
「Logon Using Logon Manager」トレイ・アイコン・オプションを使用すると、検出に成功しますか
すべての検出マッチング・ルールおよびオフセット・マッチング・ルールを削除すると、検出に成功しますか
URL定義をhost.domainフォームに短縮すると、検出に成功しますか
コントロールIDを使用する場合のフォームのレスポンスのトラブルシューティング
エージェントが資格証明を注入しても、資格証明の送信は行いませんか
SendKeysを使用する場合のフォームのレスポンスのトラブルシューティング
事前入力されたフィールドによって誤ったログオンが発生しますか
カーソルは常に同じフィールドで開始して、フォーカスを保持しますか
ジャーナル・フックを使用するSendKeysに切り替えると、注入の信頼性が回復しますか
マウス・クリック・アクションを使用してフィールドにフォーカスすると、ログオンに成功しますか
すべてのマッチング・ルールを削除すると、フォーム検出が回復しますか
標準ログオン・フォームのURLからのログアウト後のフォームのURL
ログアウト後のフォームは、標準ログオン・フォームと異なりますか
「Logon Loop Grace Period」オプションを構成すると、ログオン・ループは解決されますか
インストールしたJREはサポートされているブランドおよびバージョンですか
Oracle JInitiator、あるいは開発元がOracleまたはIBM以外の別のJREを使用していますか
Java Helper Object (JHO)の動作の構成
許可されるJava Runtime Environment (JRE)バージョン
Java Helper Object (JHO)のイベント・レスポンス動作の手動によるカスタマイズ
このマニュアルでは、Webアプリケーション・テンプレートを作成し、構成するためのベスト・プラクティスと、推奨される手順を示します。ログオンおよびパスワード変更のフォームの構成とテスト、および最も一般的なWebアプリケーションのレスポンスの問題に関する診断と解決について説明しています。
Hypertext Markup Language (HTML)、Webページの構造に関する実用的な知識を持ち、HTMLとCSSのコードを理解して分析できる方を対象としています。また、Logon Manager Agentのデプロイおよび構成、Logon ManagerのAdministrative Consoleの使用にも習熟している方を対象としています。(このマニュアルで説明する各機能の詳細は、Logon Manager Administrative Consoleヘルプで参照することができます。)
Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。
詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。
弊社では、今後もドキュメントを正確で最新に保てるよう、努力していきます。このドキュメントおよびその他のドキュメントの最新版は、http://download.oracle.com/docs/cd/E23906_01/index.htmを参照してください。
詳細は、このリリースのドキュメント・セットに含まれる次のドキュメントを参照してください:
· Oracle Enterprise Single Sign-On Suite Plus
o リリース・ノート
o インストレーション・ガイド
o 管理者ガイド
o セキュア・デプロイメント・ガイド
o ユーザーズ・ガイド
· Oracle Enterprise Single Sign-On Logon Manager
o Microsoft Active DirectoryへのLogon Managerのデプロイ
o Microsoft Active Directory Application ModeおよびActive Directory Lightweight Directory ServicesへのLogon Managerのデプロイ
o Lightweight Directory Access ProtocolディレクトリへのLogon Managerのデプロイ
o Windowsアプリケーション用のテンプレート構成および診断
o Webアプリケーション用のテンプレートの構成および診断
o メインフレーム・アプリケーション用のテンプレートの構成および診断
· Oracle Enterprise Single Sign-On Provisioning Gateway
o 管理者ガイド
o コマンドライン・インタフェース・ガイド
o Oracle Identity Managerコネクタ・ガイド
o Sun Java System Identity Managerコネクタ・ガイド
o IBM Tivoli Identity Managerコネクタ・ガイド
· Oracle Enterprise Single Sign-On Universal Authentication Manager
· 管理者ガイド
· ユーザーズ・ガイド
このマニュアルでは次の表記規則を使用します。
用語または略語 |
説明 |
太字 |
太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。 |
イタリック |
イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。 |
固定幅 |
固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。 |
この部では、後で説明するように、特定のサインオン・シナリオを解決するためにアプリケーション・テンプレートを構成する方法とその理由を理解するために必要な概念を説明します。内容は次のとおりです:
ログオン、パスワード変更およびその他の多様なサインオン・イベントを、Logon Managerで検出して応答するように構成することができ、様々なフォーム、フィールド、コントロールおよびイベント・フローがサポートされています。
Webフォームを認識するため、Logon Managerでは、実行中のWebブラウザが監視され、Webページがブラウザにロードされるとすぐに検出されます。
ページがすべてロードされると、Logon Managerで次の手順が実行されます:
1. ターゲットのWebページとフォームを検出します。監視中のブラウザから新しいURLがアクセスされると、Logon Managerは次の手順を実行します:
a. そのページのURLを調査し、使用可能なすべてのWebアプリケーション・テンプレートに格納されているURLと比較します。
b. 検出されたURLと一致する1つ目のテンプレートをロードします。
c. ページのDocument Object Model (DOM)を確認し、そのフォーム定義に構成された各フィールドとコントロールを特定します。
d. (オプション)ページのソース・コードを調べて、フォーム定義で構成されているその他のマッチングを実行します。
2. エージェントがフォームに応答し、ログオンを実行します。検出が完了して一致するものが見つかった場合、エージェントはテンプレートに格納されている構成に従って、フォームのフィールドおよびコントロールとの対話方法を判断します。通常、エージェントは次の手順を実行します:
a. ユーザーのストア(存在する場合)から関連する資格証明を取得し、該当するフィールドに注入します。(資格証明が存在しない場合、エージェントはユーザーに格納するよう求めます。)
b. 資格証明をアプリケーションに送信するために必要なアクションを実行し、処理を行います。
c. (オプション)ログオンまたはパスワード変更の成功や失敗のメッセージなど、補足情報のフォームを検出し、必要なアクションを実行します。
Logon Managerは、インストールされているWebブラウザにフックするヘルパー・オブジェクトを使用してそのブラウザとの通信を行い、データ(ページのURL、DOMおよびHTMLソース)をブラウザに問い合せたり、資格証明をターゲット・フィールドに注入して、検出が成功するとそれらを送信します。
ヘルパー・オブジェクトは、次のバックグラウンド・プロセスとして実行されます:
· Microsoft Internet Explorerの場合: SSOBHO.EXE
· Mozilla Firefoxの場合: SSOWEBHO.EXE
Webブラウザがページをロードし終わるたびに、このイベントが各ヘルパー・オブジェクトからLogon Managerに通知され、500ミリ秒の猶予期間タイマーが開始されます。この猶予期間中に、次のいずれかが発生します:
· 現在のページがリフレッシュされないか、または別のページのロードが開始されない場合、Logon Managerが検出を開始します。
· 現在のページがリフレッシュされたか、または別のページのロードが始まると、Logon Managerは検出の前にタイマーを再度開始し、そのページのロードが終わるまで待機します。
注意: ページがリフレッシュされるか、検出が始まった後に別のページのロードが始まった場合、Logon Managerは検出を中断し、そのページのロードが終了するまで待機した後に、500ミリ秒間の猶予期間タイマーを開始して、前述のとおりに経過するのを待ちます。
通常はブラウザ・ウィンドウの下部にあるステータス・バーに「Done」や「Finished.」などの適当なメッセージが表示され、そのページがロード完了したことが示されます。
検出が始まると、Logon Managerは次のようなページの特性を調べて、使用可能なテンプレートと比較します:
· URL
· ターゲット・フィールドとコントロール
· (オプション)ターゲット・フォームのテンプレートに構成された、その他の任意のマッチング基準(テキスト、HTMLコード、要素属性など)。
注意: アプリケーション・テンプレートは、Webアプリケーション・フォームの検出方法とWebアプリケーション・フォームに対するレスポンス方法をLogon Manager Agentに指示し、正常にログオンできるようにするための一連の構成オプションです。
下記の場合、WebアプリケーションとしてではなくWindowsアプリケーションとしてアプリケーションを構成する必要があるということに注意してください:
· Internet Explorerを使用していて、ターゲット・フォームをActiveXコントロールとして実装する場合
· Mozilla Firefoxを使用していて、ターゲット・フォームをブラウザに組込みの認証ダイアログを使用して表示する場合
詳細は、『Windowsアプリケーションのためのテンプレート構成および診断』を参照してください。
このドキュメントのリリース時点で、Logon Managerは次のタイプのフォームをWebアプリケーションでサポートします:
· ログオン
· ログオン成功(ログオンの成功を示すメッセージ)
· ログオン失敗(注入された資格証明が拒否されたことを示すメッセージ)
· パスワード変更
· パスワード変更の成功(パスワード変更の成功を示すメッセージ)
· パスワード変更の失敗(新しいパスワードが拒否されたことを示すメッセージ)
1つのテンプレートには、Webアプリケーションで表示できる複数のフォームの定義を含めることができます。ほとんどのアプリケーションの場合、定義する必要があるのは、Logon Managerで応答するフォームのみです。
注意: フォームを定義することで一意の識別基準ができ、そのフォームが検出されたときにとるアクションおよびそのアクションで実行する必要がある特定の動作(資格証明の注入など)が指定されます。
Logon Managerは、ユーザーの資格証明ストアから自動的に資格証明を取得し、それをフォーム内の適切なフィールドに移入することができるだけでなく、フォームのコントロールを操作して、アプリケーションに資格証明を送信して処理することもできます。
フォームのフィールドおよびコントロールとの対話方法をエージェントに指定する構成オプションは、テンプレートに格納されています。
Webフォームを検出する際に、Logon Managerで最初に考慮される基準は、Webアドレス(ターゲット・ページのURL)です。これは通常はページのロードが完了した後でブラウザのアドレス・バーに表示されるアドレスですが、ある状況では、フォーム定義で指定する必要がある実際のURLが、ログオン・フィールドやコントロールを含むコンテナまたはフォーム要素(用語については次の項で後述)などの、ページの要素のURLであることがあります。
ページURLの構造は次のとおりです:
http://apphost01.website.com/webapp01/apphome.html
URLは、そのWebアプリケーションのデプロイ方法に応じて、静的または部分的に動的になります。たとえば前述の例に示すように、静的ホスト名を持ち単一のHTMLページとして存在する単一のWebサーバー上に、単純なWebアプリケーションをデプロイするとします。このような場合は、そうしたURLと一致するフォーム定義を構成すれば、テンプレートを動作させることができます。
一方で、多くのエンタープライズWebアプリケーションは、ロード・バランスされているか、またはクラスタ化された複数のサーバーにデプロイされ、個々のインスタンスのURLは、単一エントリURLでマスクされます。
たとえばWebアプリケーションへのアクセスに使用されるURLが、次のものだけである場合、
http://webapp.website.com/webapp01/apphome.html
ロード・バランスされた個々のインスタンスへの実際のURLは、次のものであることがあります。
http://apphost01.website.com/webapp01/apphome.html
http://apphost02.website.com/webapp01/apphome.html
http://apphost03.website.com/webapp01/apphome.html
多くのエンタープライズWebアプリケーションでは、ブラウザとWebサーバーまたはデータベースとの間でデータを受渡しするために、JavaScriptやPHPのようなアクティブ・スクリプトのテクノロジを使用します。
そのようなアプリケーションは、一意のセッションIDのような動的パラメータまたは変数を、ページのURL内に1つ以上使用します。
例:
http://webapp.website.com/apphome.html?s=bd4cecd0d934870
一部のアプリケーションは、可変的な区切り記号(通常はアンパサンド(&))でURL変数を区切り、複数指定します:
…apphome.html?s=bd4cecd0d934870&view=full&sidebar=off
多くのエンタープライズWebアプリケーションのケースで、動的ホスト名と動的パラメータが同時に使用されており、フォーム定義を正常に構成するには、この両方が必要です。
Logon Managerでは、正規表現によって動的なURLを照合したり、Logon ManagerがすべてのWebアプリケーションに対して使用するURLマッチング精度をグローバル・エージェント設定で指定したりすることができます。
URLマッチング精度によって、検出時に考慮されるホストURL(ページURL内で右から左にカウントされる)のセグメント数が決まります。
たとえば、デフォルトの精度レベルが2で、ホスト名URLがアプリケーションURLの場合
http://webapp.website.com/apphome.php
前述のホストURLと、下記に示す、個々にホストされたアプリケーションのインスタンスのURLは、テンプレートに一致します:
http://apphost01.website.com/apphome.php
http://apphost02.website.com/apphome.php
これは、ホストURLの最後のセグメントを、次のいずれかでマスクしたものと同じです。ワイルドカードの場合:
http://*.website.com/apphome.php
正規表現の場合:
http://.*\.website\.com/apphome\.php
注意: URLには、標準的な単一セグメントのトップ・レベル・ドメイン(TLD) (.com、.netなど)ではなく、2つのセグメント(イングランドの.co.uk 、オーストラリアの.co.auなど)で構成されるTLDが含まれる場合があります。その場合、URLマッチング精度およびWebアプリケーション・テンプレートを構成する際、ホストURLにセグメントを追加することを検討する必要があります。
URLマッチング精度を3に増やすと、Logon ManagerはホストURLの連続する3つのセグメントを照合します - この例では、次に示すとおり、それがホスト名全体と一致することになります。
http://webapp.website.com/apphome.php
検出時、サーバー名の相違は許容されず、テンプレートに構成された正確なURL以外はLogon Managerによって拒否されます。この例では、前述のWebアプリケーションの個々のインスタンスのURLは、一致しているとみなされません。
ご使用の環境に適したURLマッチング精度を判断するには、次のガイドラインに従ってください:
· URLマッチング精度が低すぎると、Logon Managerは、あるイントラネット・アプリケーションと別のものを間違えたり、誤った資格証明で応答することがあります。
· URLマッチング精度の設定が高すぎると、一意のホスト名による分散インフラストラクチャを介して利用できるアプリケーションが、異なるホストURLによって、別々のアプリケーションとして誤認識される場合があります。
· 通常は、URLマッチング精度を5 (最大値)に設定します。これによって、ログオンをリクエストしているアプリケーションのURLがテンプレートに格納されたURLと厳密に一致する場合のみLogon Managerが応答することが保証されます。自動認識機能は限定されることになります。
· Logon ManagerのWebアプリケーション用自動認識機能のメリットを最大限に利用するには、URLマッチング精度をデフォルト値の2のままにします。ただし、イントラネット・アプリケーションへのレスポンスは低下することがあります。
Logon Managerでは、管理コンソールからグローバルにURLマッチング精度レベルを設定することができます。
このオプションは、「Global Agent Settings」>「End-User Experience」>「Response」>「Web Apps」にあります。エージェントの構成および変更のエンドユーザー・マシンへの公開については、ベスト・プラクティス・ガイドのLogon Manager Agentの構成を参照してください。
ある状況では、ページまたはページ内の要素のURLが容易に入手できない場合がありますが、テンプレートでのフォーム定義は完了する必要があります。たとえば、次のURLが必要な場合があります:
· WebページのURLとは異なるURLからロードする埋込みフォーム
· ブラウザとWebサーバーまたはデータベースとの間でデータを受け渡すログオン処理スクリプト
· 画像または埋込みのマルチメディア・オブジェクト
· ポップアップ
その場合は、次の手順を1つ以上実行して必要なURLを取得します:
· ブラウザのアドレス・バーが表示されていない場合は、[F11]を押して表示させます。
· オブジェクトまたはフォーム内で右クリックして「Properties」を選択すると、「Properties」ダイアログに、そのオブジェクトのURLが表示される場合があります。
· そのページのロードが完了してからHTMLソース・コードを調べて、必要なオブジェクトを検索します
特に、そのURLが部分的に動的な場合に、HTTPWatchまたはURL Getterのようなサードパーティ・ツールを使用してその要素のURLを取得します。ページのソース・コードを表示すると、必要なオブジェクトのすべてのURLを取得できる場合があります。
検出されたURLがテンプレートに一致すると、Logon Managerはフォーム定義に構成されたフィールドを検出するために、そのページのDocument Object Model (DOM)を確認します。
各フィールドおよびコントロールに対して、エージェントは次のものの名前または序数を調べます:
· 親フレーム要素
· 親フォーム要素
· ターゲット・フィールド要素
フィールドを正しく特定するには、3つの値すべてが、テンプレートのフォーム定義に構成された値に一致する必要があります。
下記の図および対応するコード例に、ログオン・フォームを含む単純なWebページの構造を示します。
注意: 現在のWebページのほとんどが、コンテンツの再分割にフレームを使用していません。
検出のために、Logon Managerは<html>コンテナをページのマスター・フレームとみなし、それを0の序数値で特定します。ほとんどの場合、その値は変更する必要がありません。
<!DOCTYPE html>
<html>
<head>
<title> Enterprise Web Application </title>
</head>
<body style="border: 2pt solid red; width: 490px; padding: 20px;
margin: 20px;">
<div id="page-header" style="font: 12pt Tahoma;
padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
<form action="/script/logon_form.html" method="POST" name="logon">
<div id="logon_form" style="font: 11pt Tahoma; border: solid 2pt
green; width: 220px; padding: 20px; margin-top: 20px;
margin-left: 107px">
<p style="padding-bottom: 20px; text-align: center;">
<b>Welcome - log on below.</b></p>
<p>User name: <input type="text" name="username" id="user"
size="18" style="border: 2pt solid blue;"></p>
<p>Password: <input type="password"
name="password" id="pass" size="18" style="border: 2pt
solid blue;"></p>
<p><input type="submit" id="submit_btn" name="submit"
value="Log On" style="margin-left: 75px; margin-top:
15px;"></p>
</div>
</form>
</body>
</html>
表示されたページの要素の親子関係に対応するコードの、階層的なネスト構造に注意します。
注意: 前述の例にある開始タグと終了タグの各ペアは、要素(フレーム、フォーム、フィールドのように、ページ内で1つの機能エンティティを構成しているコード部分)です。
テンプレートにフォーム定義を手動で構成する際、Logon Managerに対してフレーム、フォームとおよびフィールドの要素を次のもので指定できます:
· 要素のname属性の値、これが指定されない場合は
· 序数(ページのDOMに表示される順序に従って、サポートされる各タイプの要素にLogon Managerが割り当てるインデックス番号)。
前述のとおり、HTML内の要素は、フレーム、フォーム、フィールドのように、ページ内で1つの機能エンティティを構成しているコード部分です。要素は、1行のコードであり、<input>のような単一のタグの場合と、<div>…</div>のような開始タグおよび終了タグからなり、これらのタグの間にすべてが入る場合があります。
たとえば、典型的な<input>要素は次のようになります:
<input type="text" name="username" id="user" size="18"
style="border: 2pt solid blue;">
要素宣言(<input)の後のコードに注意してください。これらは要素の属性です。各属性には、フォーム内での名前と値があります:
attribute_name="attribute_value"
属性値を認識させるには、直線の二重引用符(インチマーク)が必要です。
フレームは、フレームセットを定義し、各フレームのサイズと表示するHTMLドキュメントを指定することでWebページをセクションに分けることができる、旧式のコンテナです。現在、大多数のWebサイトではこの技術を使用しておらず、<div>、<table>とCSSフォーマッティングの使用など、XHTML標準に定義された論理コンテナを使用してセクション化を実現しています。したがって、多くの場合、Logon Managerは<html>コンテナをページ内のマスターの(そして唯一の)フレームとして扱い、これをフレーム0として識別することになります。
フィールドおよび検出マッチング・ルールを構成する際、フレーム識別子を変更する必要はありません。ただし、Webアプリケーションが旧式のアプリケーションで、特にそれを必要とする場合(たとえば、スタンドアロンHTMLドキュメントとして存在し、親Webページのフレームに表示されるログオン・フォームを使用する場合)は別です。そのようなページを識別するには、DOMまたはソースで<frameset>タグで示されたフレームセット定義を検索します。フレームセット定義の例は、次のとおりです:
<FRAMESET cols="20%, 20%, 60%">
<FRAME src="frame1.html">
<FRAME src="frame2.html">
<FRAME src="frame3.html">
</FRAMESET>
フレームは、次のような<frame>タグで特定できます:
<FRAME src="contents_of_frame3.html">
<form>要素は、HTMLフォームを定義し、これは1つ以上の入力フィールドを含む論理エンティティ(次の項で説明)です。
<form>要素の定義では、スクリプトまたは別のリソースを参照し、フィールドに入力されてブラウザを介して送信される値を受け取って処理します。次に例を示します:
<form action="/script/logon_form.html" method="POST"
name="logon">
この例で、logon_form.htmlページは、ユーザー認証を処理します。ユーザーがフォームを送信すると、logon_form.htmlはフォームの入力フィールドに入力された値を受け取り、適切な認証ロジックを実行します。
一般に、HTMLフォーム・フィールドは、特定のクラスのinput要素として定義され、要素の定義に使用されるタグとtype属性で示されます。フォーム定義を構成すると、Logon Managerは次の要素タイプを認識します。
Logon Managerのフィールドのタイプ |
Logon Managerのフィールド・タイプで受け入れるinput要素のタイプ |
· User name/ID
· Password
· Third Field
· Fourth Field
|
· Text – <input>タグのtype="text"で識別されるテキスト・フィールド。このフィールドに入力されるテキストは、マスクされません。
· Password – <input>タグのtype="password"で識別されるテキスト・フィールド。このフィールドに入力されるテキストは、マスクされます。
· Select-one – <select>タグで識別され、その値として単一のリスト・アイテムを選択できるリスト・フィールド。
· Select-multiple – <select multiple … >タグで識別され、その値として1つ以上のリスト・アイテムを選択できるリスト・フィールド。
|
· Submit |
· Submit – <input>タグのtype="submit"で識別されるボタン・コントロール。<form>タグのaction属性で指定されているコードを実行します(通常はHTMLドキュメントか、アプリケーションのログオン・ロジックを含むスクリプトをコールします。)
· Button - <input>タグのtype="button"で識別されるボタン・コントロール。より広い範囲のスタイルを設定できること以外、機能的にはsubmitタイプの<input> 要素と同じです。
· Image –<input>タグのtype="image" で識別され、クリックすると参照先のリンクを実行するハイパーリンク付きイメージ。
· IMG – アンカー(<A HREF=)タグか、クリックされるとURLの送信が実行されるJavaScriptのonClick アクションのどちらかで囲まれる、<img src=タグで識別されるイメージ。
· Anchor – テキスト・ハイパーリンクの最も一般的な宣言(デフォルトでは、ページ内の青色のアンダーライン付きのテキストとして表示されます)。<A HREF="…">タグで識別されます。
|
Webアプリケーションをプロビジョニングするときは、ページ調査ツールを入手することをお薦めします。これによって、簡単にナビゲートして検索できる方法でページのDOM(必要に応じてソース・コードも)を表示させ、ページの構造を非常に簡単に短時間で理解することができます。
そのようなツールの例に、Mozilla FirefoxのDOMインスペクタ・アドオンがあります。このページ例のDOMは、DOMインスペクタで次のように表示されます:
ページの階層構造は左側のペインにあるナビゲート可能なツリーに表示されており、ある要素をクリックすると、ブラウザ・ウィンドウにあるその要素がハイライト表示され、その要素の属性と値が右側のペインに表示されるため、ページのソース・コードを厳密に調べなくても、ターゲット・ページ要素を簡単に特定し、理解することができます。このツールは特に、大規模で複雑なページに有用です。
DOMインスペクタは、Mozilla Firefoxのアドオン・サイト(http://addons.mozilla.org)で入手できます。
DOMインスペクタと同種のより高度で柔軟なツールに、Mozilla FirefoxのFirebugアドオンがあります。FirebugはDOMインスペクタのすべての機能を備えており、さらにすべてのソース・コードをDOMツリーに表示して、各コード要素をマウスオーバーで視覚的に強調表示することができます。ユーザーは、コードを変更したり、その変更をブラウザ・ウィンドウで確認することもできます。Firebugは主にWeb開発者向けですが、複雑なWebページの分析において、非常に優れていることがわかります。
Firebugは、Mozilla Firefoxのアドオン・サイト(http://addons.mozilla.org)で入手できます。
ここまでに説明したURLと要素が、ページ内のログオン・フォームを一意に特定するのに不十分である場合は、追加の検出基準を指定し、マッチングによって検出範囲を絞り込むことができます。「マッチング」という用語は、要素名や属性値などの特定のパラメータ値を、アプリケーションのテンプレートに格納されている値と比較照合することを指します。
たとえば、Webアプリケーションがメンテナンスのために停止状態のときにログオンしようとしても、そのログオンが失敗する理由を示すエラー・メッセージとともに、ログオン・フォームがもう1度表示されるという結果になります。そのような場合にLogon Managerが繰り返しログオンを試行することを防ぐため、テンプレートで2つのログオン・フォームを定義し、一方の定義ではテキスト・マッチングを使用してエラー・メッセージ・テキストを照合し、そのエラーを表示するログオン・フォームを無視するようにLogon Managerに指示します。
注意: この項では、Webアプリケーションに対するマッチングを正しく構成するために必要な、マッチング・メカニズムの根底にある原則を説明します。コンソールを介してマッチングを構成する実際の手順については、「追加のフィールド検出基準の構成」を参照してください。
Logon Managerでは、次に対するマッチングが可能です:
· ページに表示されるテキスト
· ページのソース・コードにあるHTMLコード
· ページ要素の属性の名前と値
前述のマッチング・タイプを説明するため、15-16ページの例を使用します。例には、ヘッダーEnterprise Web Applicationが表示され、特定のテキスト部分を簡単にインライン表示できるように、<div>コンテナとして実装されています。
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
Logon Managerには、検出とオフセットの2種類のマッチングがあります。ほとんどの場合は検出マッチングを使用し、オフセット・マッチングは使用しません。後者は、フレームが名前や属性によって特定されないフレームセットを使用している旧式のページに対して有用です。このような場合、Logon Managerは、そのフレームがページのDOMに表示される順に、フレームの序数を割り当てます。そのようなフレームセットにある特定のフレーム内の要素に一致させるには、フォーム検出ダイアログの「Matching」タブの「Offset Start」パラメータの値としてその序数を指定します。
最も一般的に使用されるマッチング・モードでは、そのフォーマットに関係なく、ヘッダー・テキスト自体を照合することができます。たとえば、「Enterprise Web Application」と一致するようにマッチング・ルールを構成するには、次のようにします:
· Tag: div
· Criteria: Text
· Value: Enterprise Web Application
· Match whole value: Yes
· Use regular expression: No
この構成では、次のものが一致することになります:
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
「HTML」マッチング・モードを使用すると、ページのソース・コード内の任意のコードの一部を照合することができます。このモードが最も一般的に使用されるのは、レンダリングされたテキスト(マークアップを含む)に対するマッチングですが、ページに固有の特定のコードの一部のマッチングにも使用できます。
注意: HTMLの仕様の性質により、Logon Managerは<span>タグを照合することができません。
たとえば、「Enterprise Web Application」と一致し、「Enterprise Web Application」と一致しないようにするには、次のようにマッチング・ルールを設定します:
· Tag: div
· Criteria: HTML
· Value: <b>Enterprise Web Application></b>
· Match whole value: Yes
· Use regular expression: No
この構成では、次が一致します:
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
注意: 「Match Whole Value」オプションは、「Value」フィールドに入力された文字列全体に対するマッチングをLogon Managerに強制します。デフォルトで有効になっています。ページでの部分一致(<b>Enterpriseなど)を可能にするには、このオプションを無効にします。
前述の<div>コンテナの開始タグ全体を照合するには、これを基準値として指定し、その親要素をタグとして指定します:
· Tag: body
· Criteria: HTML
· Value: <div id="page-header"…
· Match whole value: Yes
· Use regular expression: No
これにより、次が一致します:
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
要素内の特定の属性またはその値を照合することもできます。たとえば、<div>要素のid属性の値を照合することができます:
· Tag: div
· Criteria: Attribute
· Attribute name: id
· Value: page-header
· Match whole value: Yes
· Use regular expression: No
これにより、次が一致します:
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
ただし、「Value」フィールドを空白のままにすると、属性名で一致します:
<div id="page-header" style="font: 12pt Tahoma; padding-bottom: 10px">
<b>Enterprise Web Application</b>
</div>
Logon Managerでは、ブール論理演算子を使用して個々のマッチング・ルールを連鎖させ、特定の状況の組合せでのみ一致する複雑なルール・チェーンを作成できます。
たとえば、パスワード変更フィールドとコントロールを表示しながら、パスワードが正常に変更されたときに成功メッセージを表示するパスワード変更フォームの一致ルール・チェーンを作成するとします。このような場合は、Logon Managerがパスワード変更ループに入らないように、成功メッセージが表示された後はLogon Managerがこのフォームを無視するようにすると同時に、標準のパスワード変更フォームに対する適切なレスポンスを保持する必要があります。
これを実現するには、次のルールを作成します:
· 成功メッセージ・テキストに対する「NOT」一致ルール(これにより、Logon Managerはフォームを無視します)。
· フォーム上の任意のテキストに対する「AND」一致ルール(これは、成功メッセージが存在しない場合に一致し、Logon Managerが応答するようにします)。
この例に基づき、前述のルールを次のように構成します:
ルール1
· Tag: html
· Criteria: Text
· Value: Logon error
· Match whole value: Yes
· Use regular expression: No
· Operation: NOT
ルール2
· Tag: html
· Criteria: Text
· Value: Enterprise Web Application
· Match whole value: Yes
· Use regular expression: No
· Operation: AND
注意: 「NOT」一致ルールを定義するときは、これに続けて、一致する結果が得られる「AND」ルールを必ず定義する必要があります。これを行わないと、Logon Managerはフォームに応答しません。
その他の一般的なマッチング・ルール・チェーンを作成する例を次に示します。次の場合に一致する結果を得るには:
· ルール1かつルール2: この順序で、AND演算子を使用して両方のルールを構成します。
· ルール1またはルール2: この順序で、AND演算子を使用してルール1を構成し、OR演算子を使用してルール2を構成します。
· ルール1かつルール2であるが、ルール3ではない: 前述と同じです。「NOT」ルールをチェーン内で最初に配置し、その後に2つの「AND」ルールを配置します。
· ルール1またはルール2であり、ルール3ではない: ルール1を「AND」ルール、ルール2を「OR」ルール、ルール3を「NOT」ルールとして構成してから、「NOT」ルールをチェーン内で最初に配置し、その後に「AND」ルールと「OR」ルールを配置します。
? (1文字)や* (スペースを除く文字の任意の組合せ)などのワイルドカードは、動的な検出基準で最も一般的に使用される方法です。フォーム定義で基準を構成する際に「Wildcard」オプションを使用し、次のガイドラインに従って使用します:
· Je???eは、JeanneとJessieの両方と一致します。ただし、Jeanineとは一致しません(文字列の長さも、文字の順序も一致しないためです)。
· Je*eは、Jeで始まり、eで終わるすべての語と一致し、前述の3つの例は、この場合はすべて一致します。
· webapp*.company.comは、webappで始まるホスト名を含むすべてのURLと一致します。この方法は、共通のURLを使用して複数のアプリケーションのロード・バランスおよびマスクが実現されていて、アクセスするたびにアプリケーションが異なる物理ホストからロードされるためアプリケーションのURLが変化するような場合に、そのURLを照合する手段として便利です。
ATLフレームワークがサポートする正規表現を使用すると、このガイドで前述した基準に対してLogon Managerが一致すると認識するテキスト・パターンを作成することもできます。(フォーム定義で基準を構成する際に、「Regular expression」オプションを使用します)。参考として、最も一般的に使用される演算子およびメタ文字を次に示します:
説明 |
|
[ ] |
大カッコ内のいずれかの文字と一致する文字クラスを示します。
例: [abc]は"a"、"b"および"c"と一致します。 |
( ) |
文字をグループ化する演算子を示します。
|
{ } |
一致クラスを示します。 |
| |
2つの式を区切り、そのうちの1つが完全に一致します。
例: T|theは、"The"または"the"と一致します。 |
. |
任意の1文字と一致します。 |
^ |
^が文字クラスの先頭にある場合、その文字クラスは否定されます。
例: [^abc]は、"a"、"b"および"c"以外のどの文字とも一致します。
正規表現の先頭に^がある場合、入力の先頭と一致します。
例: ^[abc]は、"a"、"b"または"c"で始まる入力のみと一致します。 |
$ |
正規表現の末尾にある$は、入力の最後と一致します。
例: [0-9]$は、入力の最後の数字と一致します。 |
- |
文字クラスでは、ハイフンは文字の範囲を示します。
例: [0-9]は、"0"から"9"の任意の数字と一致します。 |
! |
後に続く式を否定します。 |
? |
前にある式がオプションであることを示します。1回一致するか、またはまったく一致しません。
例: [0-9][0-9]?は"2"および"12"と一致します。 |
表現 |
説明 |
||||||||||||||||||
+ |
前にある式が1回以上一致することを示します。
例: [0-9]+は、"1"、"13"、"666"などと一致します。
|
||||||||||||||||||
* |
前にある式が0回以上一致することを示します。
|
||||||||||||||||||
??,+?,*? |
?、+および*の「最長一致でない」バージョン。できるかぎり多く一致する「最長一致」バージョンと異なり、これらはできるかぎり少なく一致します。
例: 入力を<abc><def>とすると、<.*?>は<abc>と一致するのに対して、<.*>は<abc><def>と一致します。 |
||||||||||||||||||
\ |
次の文字がリテラルに解釈されることを強制するエスケープ文字。
例: [0-9]+は1つ以上の数字と一致しますが、[0-9]\+は後にプラス文字の後にくる数字と一致します。
\の後に数字のnがある場合は、n番目の一致グループ(0から始まる)と一致します。
例: <{.*?}>.*?</\0>は<head>Contents</head>と一致します。
\は略語にも使用されるため、次に最も一般的な略語を示します:
|
Logon Managerは正常にWebフォームとその入力フィールドを識別すると、適切なヘルパー・オブジェクトを使用してターゲット・フィールドに移入し、フォームの送信コントロールを動作させます。Webページのコードの記述方法に応じて、次に説明するレスポンス方式のいずれかを使用します。
これは、ほとんどのWebアプリケーションでデフォルトかつ推奨されるフォーム・レスポンス方式です。この方式では、Logon ManagerはブラウザのAPIを使用して、適切な資格証明をプログラムによってターゲット・フィールドに注入し、送信コントロールを動作させます。
ただし、Logon Managerがフォームのフィールドおよびコントロールとプログラムで対話する機能が妨げられたり、禁止されるような方法でWebページが記述されている場合、またはサインオン・イベントを完了するために追加のアクションが必要な場合(チェック・ボックスの選択、手動による特定のフィールドのフォーカス設定など)は、そのフォームと対話するために、コントロールID方式とSendKeys方式を併用する必要がある場合もあります。
この方式では、キーストローク、マウス・クリックなどのユーザー入力をエミュレートすることで、エージェントはターゲット・フォームと対話することができます。エージェントがフォームのフィールドおよびコントロールとプログラムによって対話できない場合は、この方法を使用します。たとえば、ログオン・フォームがAdobe Flashで実装されている場合は、マウス・クリックを送信してターゲット・フィールドを選択し、キーストロークを送信してデータを移入し、最後のマウス・クリックを送信して送信コントロールを動作させる必要があります。
これは、前述の2つの方式を組み合せて両方の長所を活かすもので、プログラムでは実行できないアクションを必要とするサインオン・シナリオのソリューションとして望ましい方式です。可能な場合は常にコントロールIDを使用してフォームと対話する一方で、キーストロークおよびマウス・クリックを送信して、フィールドのフォーカス設定、チェック・ボックスの選択、エージェントがターゲット・アプリケーション内ではプログラムで実行できないその他のアクションなどのタスクを実行します。
たとえば、カスケード検証のために特定の順序でフィールドに移入する必要がある場合(つまり、ユーザー名フィールドにデータが移入されたときにかぎりパスワード・フィールドがアクティブになる場合)、コントロールIDを使用して資格証明をフィールドに注入しますが、各フィールドの注入の合間にSendKeysで[Tab]キーストロークを送信してフィールドのフォーカスを移動することになります。
注意: この混合モードを実装するには、最初にSendKeysレスポンス方式を使用するようにフォームを構成し、目的のSendKeysアクションを構成し、そのアクションの構成中に、プログラム的なコントロールIDレスポンス方式を保持するアクションに対して「Inject directly into control」オプションを有効にします。
この部では、Windowsアプリケーション・フォームを構成およびテストする際に推奨されるベスト・プラクティスの手順を示します。内容は次のとおりです:
· フォームの構成
フォームを構成する際に、この項の情報を使用して、ターゲット・アプリケーションの要件および機能に基づいて最適な構成を確認します。
ほとんどの場合、「Web Form」ウィザードはターゲット・フォームに存在する資格証明フィールドおよびコントロールを正常に検出して表示します。フィールドまたはコントロールの一部またはすべてが欠落している場合は、次のいずれかを実行します。
· フィールドまたはコントロールがフォーム・ウィザードに表示されない場合、ログオン・フォームが別のURLを持つか、ログオン・フォームがポップアップ内にあります。「ページ、要素またはポップアップのURLの取得」の説明に従ってこのURLを取得し、ページの主要URLのかわりに、ウィザードに提供します。
· 送信コントロールが認識されない場合、「Show Anchor Tags」オプションを有効にして、実装されているコントロールをアンカー(<A HREF=)・タグとして表示します。
· それでもフィールドが表示されない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
ターゲット・フィールド要素の名前が一意でない場合、または動的な場合は、要素名のかわりに序数を使用して、Logon Managerに対するフィールドを識別します。該当するかどうかを確認するには、ページのDOMまたはソース・コード(あるいはその両方)を調べます。詳細は、「フィールド検出の理解」を参照してください。
ページまたはフォーム要素のURLが動的な場合は、ワイルドカードまたは正規表現を使用してエージェントのレスポンスを目的のURLまたはURL範囲に制限する必要があります。詳細は、「URL検出の理解」を参照してください。
ログオン・フォームをAdobe Flashで実装した場合、Logon Managerはそのフィールドおよびコントロールとプログラム的に対話することはできないため、この場合はSendKeys方式を使用してフォームと対話します。
送信コントロールがイメージで、そのURLが動的な場合(つまり、イメージが分散環境でホストされていて、URLのホスト名部分が静的でない場合)、ワイルドカードまたは正規表現を使用して目的のURL範囲がコントロールに対して有効になるように指定する必要があります。そうしないと、Logon Managerでは、コントロールURLが、テンプレート構成に使用された元の静的値と異なるとすぐに、コントロールの検出が停止されます。詳細は、「URL検出の理解」を参照してください。
ページに、ターゲット・フィールド以外の入力フィールドおよびコントロールがある場合、マッチングを使用してエージェントのレスポンスを目的のフィールドに制限します。詳細は、「追加のフィールド検出基準の構成」を参照してください。
アプリケーションによっては、ログオンの成功または失敗を示すメッセージが表示されます。
その場合は、アプリケーション・テンプレートでログオン成功フォームまたはログオン失敗フォーム(あるいはその両方)を定義します。
アプリケーションによっては、ユーザー名フィールド、またはアプリケーションのパスワード変更(PWC)フォームを起動する「Change Password」ボタンなど、ログオン関連のフィールドまたはコントロールを含むパスワード変更フォームを表示する場合があります。「Auto Submit」機能が有効で、エージェントがこのようなアプリケーションに応答する場合は、パスワードの変更オプションは表示されず、ユーザーは自動的にログインされます。
ユーザーが目的のアクションを選択できるようにするには、テンプレートでログオン・フォームおよびパスワード変更フォームを定義します。エージェントは、ログオン・フォームおよびパスワード変更フォームが統合されたアプリケーションに応答する場合は、ユーザーに目的のアクション(ログオンまたはパスワード変更)を選択するように求めます。
注意: アクション・チューザ機能の猶予期間を構成するオプションもあります。この猶予期間の間、エージェントは、自動的にログオンを優先アクションと想定して、目的のアクションの選択を求めることなくユーザーをログオンさせます。このオプションは、アプリケーション・テンプレート・ダイアログの「Miscellaneous」タブに、「Action Chooser Grace Period」という名前であります。
フォームでパスワード変更を開始するアクションが必要な場合(チェック・ボックスの選択など)、Webアプリケーションの性質上、Logon Managerはそのアクションをプログラム的には完了できない場合があります。
その場合は、可能であればSendKeys方式を使用してターゲット・コントロールと対話し、それ以外の場合は必要なアクションを手動で実行するようにユーザーに指示します。
ほとんどの場合、「Web Form」ウィザードはターゲット・フォームに存在する資格証明フィールドおよびコントロールを正常に検出して表示します。フィールドまたはコントロールの一部またはすべてが欠落している場合は、次のいずれかを実行します。
· フィールドまたはコントロールがフォーム・ウィザードに表示されない場合、ログオン・フォームが別のURLを持つか、ログオン・フォームがポップアップ内にあります。「ページ、要素またはポップアップのURLの取得」の説明に従ってこのURLを取得し、ページの主要URLのかわりに、ウィザードに提供します。
· 送信コントロールが認識されない場合、「Show Anchor Tags」オプションを有効にして、実装されているコントロールをアンカー(<A HREF=)・タグとして表示します。
· それでもフィールドが表示されない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
アプリケーションによっては、パスワードの変更を実行する際に、ユーザーに新しいパスワードの確認を求めます。ターゲット・アプリケーションでこのようなフォームを表示する場合は、テンプレートで2つ目のログオン・フォームを定義し、それをパスワード確認フォームに応答するように構成します。
同じデータを複数のフィールド(「Password」、「Confirm Password」フィールドを含むフォームなど)に注入する必要があり、エージェントによってその両方に新しいパスワードを注入する場合は、「Web Form」ウィザードの「Allow Multiple Field Designation」オプションを有効にして、それに従ってフィールドを割り当てます。
アプリケーションによっては、パスワード変更の成功または失敗を示すメッセージを表示します。
その場合は、アプリケーション・テンプレートでパスワード変更の成功フォーム、またはパスワード変更の失敗フォームを定義します。
ターゲット・フィールド要素の名前が一意でない場合、または動的な場合は、要素名のかわりに序数を使用して、Logon Managerに対するフィールドを識別します。該当するかどうかを確認するには、ページのDOMまたはソース・コード(あるいはその両方)を調べます。詳細は、「フィールド検出の理解」を参照してください。
ページまたはフォーム要素のURLが動的な場合は、ワイルドカードまたは正規表現を使用してエージェントのレスポンスを目的のURLまたはURL範囲に制限する必要があります。詳細は、「URL検出の理解」を参照してください。
送信コントロールがイメージで、そのURLが動的な場合(つまり、イメージが分散環境でホストされていて、URLのホスト名部分が静的でない場合)、ワイルドカードまたは正規表現を使用して目的のURL範囲がコントロールに対して有効になるように指定する必要があります。そうしないと、Logon Managerでは、コントロールURLが、テンプレート構成に使用された元の静的値と異なるとすぐに、コントロールの検出が停止されます。詳細は、「URL検出の理解」を参照してください。
ページに、ターゲット・フィールド以外の入力フィールドおよびコントロールがある場合、マッチングを使用してレスポンスを目的のフィールドに制限します。詳細は、「追加のフィールド検出基準の構成」を参照してください。
この項の手順は、このガイドの前の方で説明した概念および用語を使用して説明します。この項の手順を実行するときは、「フォームの最適な構成の確認」を参照して、ターゲット・アプリケーションに最も適した構成を決定してください。
フォームの基本的な構成を完了するには、次の手順を実行します:
注意: ターゲット・アプリケーションのタイトル・バーの「Logon Manager」ボタン(使用可能な場合)をクリックし、表示されたコンテキスト・メニューから「Create Template」を選択すると、すぐに構成プロセスを開始できます。
1. Logon Manager Administrative Consoleを開きます。デフォルトでは、ショートカットは「スタート」→「プログラム」→「Oracle」→「Logon Manager Console」にあります。
2. 左側のツリーで、「Applications」ノードを選択し、次のいずれかを実行します:
· 新しいテンプレートを作成し、その最初のフォームを定義する場合:
i. 右側のペインで「Add」をクリックします。
ii. 「New Application」ダイアログで、テンプレートのわかりやすい名前を入力し、「Finish」をクリックします。
新しいテンプレートが、格納済テンプレートのリストに表示されます。
注意: 2つ以上のアプリケーション・テンプレートに対して、テンプレートのいずれかの名前が別のテンプレートの名前の先頭部分と同じになるように名前を付けると、エージェントは誤って最も短い名前を持つテンプレートを使用して、すべての対象アプリケーションに応答します。この動作を回避するには、テンプレート名が同じテキスト文字列で始まらないようにします。
· 既存のテンプレートにフォーム定義を追加する場合は、次の手順を実行します:
i. 「Applications」ノードを展開し、目的のテンプレートを選択します。
テンプレートが右側のペインに表示されます。
ii. ペインの下部で「Add」をクリックします。
3. 表示された「Web Form」ウィザードで、ターゲット・フォームへの応答時に、エージェントと対話させるフィールドおよびコントロールを構成します:
a. 「Form Type」画面で、目的のフォーム・タイプを選択し、「Next」をクリックします。
b. 次の画面で、ターゲット・ページ、フォームまたは要素のURLを入力し、プレビュー・ペインでロードが完了するのを待機します。
注意: 同じ名前を共有する2つ以上のフィールドが表示される場合、構成の完了後に、エージェントがそのフォームに誤って応答する場合があります。その場合は、「Use ordinals instead of names」オプションを有効にし、序数(連続するインデックス番号)を使用してエージェントへの入力フィールドを一意に識別します。
詳細は、「Webフォームの検出の理解」を参照してください。
c. 画面下部のフィールド・リストで、次のようにリスト内のオブジェクトの中からターゲット・フィールドおよびコントロールを選択して構成します:
注意: 1つ以上のフィールドまたはコントロールがリストから抜けている場合は、それらを手動で構成する必要がある場合があります。その場合、ウィザードの残りを現状のままで完了し、対象の各入力フィールドに対して「フィールドまたはコントロールの手動構成」の手順を実行します。
注意: デフォルトでは、すべてのフィールドとコントロールが、コントロールIDレスポンス方式を使用します。1つ以上のフィールドに対してSendKeysレスポンス方式を使用する場合は、この手順の説明に従ってそれを定義し、「SendKeys方式を使用したフィールドまたはコントロールの構成」の手順を実行します。
i. (オプション)フォームの複数のフィールドに同じデータを注入する必要がある場合(たとえば、「Password」および「Confirm Password」フィールドへのパスワードの注入)、「Allow multiple field designation」オプションを有効にします。
ii. 目的の各フィールドまたはコントロールを右クリックし、コンテキスト・メニューからその機能を選択します。選択したフィールドは、ページ・プレビューでハイライト表示されます。
注意: ほとんどの場合「Detect Fields」機能は正確ですが、正確性を保証するためにも、常にフィールドおよびコントロールを手動で構成することをお薦めします。
注意: 送信ボタン(通常は「OK」、「Logon」などのラベルが付いているボタン)がリストに表示されない場合でも、Logon Managerは資格証明の注入後に、アプリケーションに送信アクションを送信します。このアクションは、ユーザーが手動で[Enter]キーを押すことと同等です。
iii. 送信コントロールが見あたらない場合、アンカー(つまり<A HREF=)、またはイメージ(つまり<IMG SRC=)として実装されている可能性があります。
その場合は、「Show anchor tags」または「Show non-input fields」(あるいはその両方の)オプションをそれぞれ有効にして、そのようなコントロールを公開します。
iv. すべての表示可能な入力フィールドを構成したら、「OK」をクリックします。
d. コンソールに、構成したWebフォーム定義のプロパティ・ダイアログが表示されます。次のいずれかを実行します:
· 「Web Form」ウィザードを使用してすべてのターゲット入力フィールドを正常に完成し、それ以上の構成が必要ない場合は、ダイアログで「OK」をクリックして終了し、「リポジトリへのテンプレートの公開」の説明に従って変更内容をリポジトリに公開します(該当する場合)。
· 「Web Form」ウィザードで1つ以上のターゲット・フィールドを構成できなかった場合は、「フィールドまたはコントロールの手動構成」の手順3に進みます。
· 既存のURL検出基準を変更したり、追加のURL検出基準を指定する必要がある場合は、「URL検出基準の構成」に進みます。
警告: 可能性のあるフィッシング攻撃の予防策として、URL定義からデフォルトのワイルドカード正規表現の接頭辞.*? を削除することをお薦めします。
· 「Matching」タブで追加のフィールド検出基準を構成する必要がある場合は、「追加のフィールド検出基準の構成」に進みます。
注意: ページのコンテンツが動的な場合、つまりページのロード完了後に変更される場合は、「Options」タブの「Dynamic Page」オプションを選択してアクティブ・ページ・ポーリングを有効にします。これによって、エージェントは、ページの変更を監視できるようになります。
「Web Form」ウィザードを使用して入力フィールドを構成できなかった場合、またはフィールドの既存の構成を変更する場合は、次の手順に従います。
1. コンソールで、「Applications」ノードを展開し、目的のテンプレートを選択します。
2. 「General」タブで、目的のフォーム定義を選択し、「Edit」をクリックします。
3. 表示されたフォーム・プロパティ・ダイアログで、「Fields」タブを選択します。
4. 「Fields」タブで、次の手順を実行します:
a. 新規フィールドを構成する場合は、「Add」をクリックし、既存のフィールドの構成を変更する場合は、リストでフィールドを選択して「Edit」をクリックします。
b. 表示された「Web Field」ダイアログで、次の手順を実行します:
注意: ここで指定する必要がある値については、「フィールド検出の理解」を参照してください。
i. 「Function」ドロップダウン・リストで、フィールドの目的を選択します。使用可能な値は、「Username/ID」、「Password」、「Third Field」および「Fourth Field」です。
ii. 「Frame」フィールドに、フィールドの親フレーム要素の名前または序数を入力します。
iii. 「Form」フィールドに、フィールドの親フォーム要素の名前または序数を入力します。
iv. 「Field Type」ドロップダウン・リストで、ターゲット入力フィールドのタイプを選択します。
v. 「Field Identification」フィールドで、「…」(省略記号)ボタンをクリックし、次の手順を実行します:
a) Logon Managerでフィールドを識別する方法を選択します。
使用可能な方法は、フィールド名、序数およびマッチングです。
b) 選択した識別方法に適切な値を入力します。
注意: マッチングの構成の詳細は、「検出マッチングの理解」を参照してください。
c) 「OK」をクリックして、変更を保存し、ダイアログを終了します。
vi. 「OK」をクリックして、フィールド定義をテンプレートに保存します。
e. 構成する追加のフィールドごとに、手順i – viを繰り返します。
4. フォーム・プロパティ・ダイアログで、「OK」をクリックして終了します。
5. 「リポジトリへのテンプレートの公開」の説明に従って、リポジトリに変更を公開します(該当する場合)。
フォームのレスポンス方式をSendKeysに変更すると、Logon ManagerではSendKeysアクションを直接追加できなくなります。SendKeysレスポンス方式に切り替えたフォーム定義に新しいアクションを追加するには、まずフォームをコントロールID方式に切り替え、「コントロールID方式を使用したフィールドまたはコントロールの構成」の説明に従って必要なアクションを追加してから、フォーム定義をSendKeys方式に切り替えます。この手順では、既存のコントロールIDアクションをSendKeysアクションに変換する方法、および変換されたSendKeysアクションを構成する方法について説明します。
注意: SendKeysフォーム定義をコントロールIDに切り替えて戻す場合、「Inject directly into control」オプションが無効のSendKeysアクションはすべて削除されます。
この構成手順を開始する前に、フォーム構成を十分に計画することをお薦めします。
SendKeysアクションを構成するには、次の手順を実行します:
1. コンソールで、「Applications」ノードを展開し、目的のテンプレートを選択します。
2. 「General」タブで、目的のフォーム定義を選択し、「Edit」をクリックします。
3. 表示されたフォーム・プロパティ・ダイアログで、「Fields」タブを選択し、次の手順を実行します:
a. (オプション)初めてSendKeys方式に切り替える場合は、「Transfer Method」セレクタで「SendKeys」を選択します。
注意: SendKeys方式を選択した場合、「Fields」リストのすべてのアクションが、「Inject directly into control」オプション(アクションのプロパティ・ダイアログ)が有効な状態でSendKeysアクションに変換されます。つまり、SendKeys方式を使用して実行する各アクションで「Inject directly into control」オプションを無効にするまで、これらのアクションではプログラムが使用されます。
可能な場合は常にプログラムによる注入を使用し、フィールドまたはコントロールでのプログラムによる相互作用が不可能な場合にのみSendKeysを使用することをお薦めします。
注意: 「SendKeys using journal hook」オプションを使用する場合については、「SendKeysを使用する場合のフォームのレスポンスのトラブルシューティング」を参照してください。
「Fields」タブの表示が、SendKeysレスポンス方式を反映するように変更されます:
b. SendKeysアクションの実行順序を変更するには、順序を変更するアクションを選択し、上矢印および下矢印のボタンを使用して移動します。
c. SendKeysアクションを構成するには、リストから選択し、「Edit」をクリックし、表示された「SendKeys」ダイアログを使用してアクションを構成します。ダイアログに存在する各オプションの詳細は、コンソール・ヘルプを参照してください。
d. すべてのアクションを構成したら、「OK」をクリックして変更を保存し、「SendKeys」ダイアログを終了します。
6. フォーム・プロパティ・ダイアログで、「OK」をクリックして終了します。
7. 「リポジトリへのテンプレートの公開」の説明に従って、リポジトリに変更を公開します(該当する場合)。
「Web Form」ウィザードによって構成されるデフォルトのURL検出基準を変更したり、追加の基準を指定する必要がある場合は、次の手順を実行します:
警告: 可能性のあるフィッシング攻撃の予防策として、URL定義からデフォルトのワイルドカード正規表現の接頭辞.*? を削除することをお薦めします。
1. コンソールで、「Applications」ノードを展開し、目的のテンプレートを選択します。
2. 「General」タブで、目的のフォーム定義を選択し、「Edit」をクリックします。
3. 表示されたフォーム・プロパティ・ダイアログで、「Identification」タブを選択します。
4. 「Identification」タブで、次の手順を実行します:
a. 新しいURL定義を構成するには、「Add」をクリックし、URL定義の構成を変更するには、リストで定義を選択して「Edit」をクリックします。
b. 表示されたURL定義のプロパティ・ダイアログで、次の手順を実行します:
注意: ここで指定する必要がある値については、「URL検出の理解」を参照してください。
i. 目的のマッチング・タイプを選択します。
ii. 目的のマッチング基準を入力します。
iii. 「OK」をクリックして、URL定義を保存します。
c. 追加のURL定義を構成するには、手順i – iiiを繰り返します。
d. フォーム・プロパティ・ダイアログで、「OK」をクリックして終了します。
5. 「リポジトリへのテンプレートの公開」の説明に従って、リポジトリに変更を公開します(該当する場合)。
標準またはオフセット・マッチング・モードで追加のフィールド検出基準を構成する必要がある場合は、次の手順を実行します:
1. コンソールで、「Applications」ノードを展開し、目的のテンプレートを選択します。
2. 「General」タブで、目的のフォーム定義を選択し、「Edit」をクリックします。フォーム・プロパティ・ダイアログが表示されます。
3. このダイアログで、「Matching」タブを選択します。
4. 目的の一致タイプに応じて「Detection Match」または「Form Offset Match」セクションのいずれかで、次の手順を実行します(詳細は、「検出マッチングとオフセット・マッチング」を参照してください)。
注意: オフセット・マッチングを実行する場合、「Offset Start」値を指定する必要があります。
a. 新しいマッチング・ルールを構成するには、「Add」をクリックし、既存のルールを変更するには、リストでルールを選択して「Edit」をクリックします。
b. 表示された「Match Criteria」ダイアログで、次の手順を実行します:
注意: ここで指定する必要がある値については、「検出マッチングの理解」を参照してください。
i. 「Tag」フィールドで、親要素の名前を指定します。
ii. (オプション)親要素の複数のインスタンスがページ内に存在する場合は、その序数を確認し、「Match tag instance」ボックスを選択し、値フィールドに序数を入力します。
iii. 「Criteria」フィールドで、目的のマッチング・モードを選択します。
iv. 「Value」フィールドに、ターゲット基準値を入力します。
v. ほとんどのシナリオでは、「Match whole value」オプションを有効のままにします(Logon Managerで基準値と厳密に一致するようになります)。このオプションを無効にすると、Logon Managerは基準値に対する部分一致も有効とみなします。
vi. 基準値の一部として正規表現を使用する場合は、「Use regular expression」オプションを有効にします。
vii. (オプション)複雑なマッチング・ルールを作成するためにマッチング・ルール・チェーンを作成する場合は、「Operation」ドロップダウン・リストから目的のブール演算子を選択して、このルールが前のルールとどのように連鎖するかを示します。
viii. 「OK」をクリックして、マッチング・ルールを保存します。
c. 追加のマッチング・ルールごとに、手順i - viiiを繰り返します。
d. フォーム・プロパティ・ダイアログで、「OK」をクリックして終了します。
5. 「リポジトリへのテンプレートの公開」の説明に従って、リポジトリに変更を公開します(該当する場合)。
フォームを作成して構成したら、エンドユーザー・ワークステーションにデプロイする前に、その構成をテストすることをお薦めします。そうするには、Logon Manager Administrative Consoleのテンプレート・テスト・マネージャ機能を使用します。
注意: テンプレート・テスト・マネージャでは、最も一般的な構成の問題に関して対話的なトラブルシューティングおよび改善指導を提供します(可能性のあるすべての問題のシナリオを網羅するようには設計されていません)。徹底したトラブルシューティングを行うには、次に説明するように、このガイドの手順を実行するとともにテンプレート・テスト・マネージャを使用します。
次の一連の手順を実行して、公開前にフォーム構成をテストします:
1. 左側のツリーで「Applications」ノードを展開し、ターゲット・テンプレートにナビゲートします。
2. ターゲット・テンプレートを右クリックし、コンテキスト・メニューから「Test」を選択します。
3. 表示された「Logon Manager Template Test Manager」ウィンドウで、次の手順を実行します:
a. 「Forms」ペインで、ターゲット・フォームを選択します。
b. 「Interactions」ペインに表示される手順に従います。
c. 次のいずれかを実行します:
· エージェントが期待どおりにアプリケーションに応答し、テストが正常に完了した場合は、「Finish」をクリックします。
· エージェントが期待どおりにアプリケーションに応答せず、テンプレート・テスト・マネージャから提示された手順ではその問題が解決されなかった場合は、「Close」をクリックし、このガイドの後の方のトラブルシューティング・フローチャートに従って、問題を確認して修正します。終了したら、手順1 - 3を繰り返して修正後の構成をテストします。
エージェントにテンプレートが提供されると、自動レスポンス機能が明示的に無効化されていないかぎり、ターゲット・フォームに自動的に応答します。エージェントがフォームへの応答に失敗した場合は、「Webフォームの検出のトラブルシューティング」を参照してください。
資格証明がユーザーのストア内のターゲット・アプリケーションに対して格納されている場合、エージェントはアプリケーションの検出に成功すると、資格証明を適切なフィールドに注入します。「Auto-Submit」機能が明示的に無効化されていないかぎり、エージェントは自動的に資格証明の送信も行います。資格証明の注入に失敗した場合は、「資格証明の注入および送信のトラブルシューティング」を参照してください。
アプリケーションによってはログアウト時にログオン画面を表示しますが、この場合、それによってエージェントがログオン・ループに入り、エージェントを停止しないかぎり、事実上ユーザーはアプリケーションからログアウトできなくなります。
これが発生した場合は、「ログオン・ループのトラブルシューティング」を参照してください。
エージェントにテンプレートが提供されると、自動レスポンス機能が明示的に無効化されていないかぎり、ターゲット・フォームに自動的に応答します。エージェントがアプリケーションへの応答に失敗した場合は、「Webフォームの検出のトラブルシューティング」を参照してください。
エージェントはパスワードの変更を検出すると、「Auto Submit」機能が明示的に無効化されていないかぎり、資格証明を適切なフィールドに注入し、アプリケーションに送信します。
資格証明の注入が不安定であるか、まったく行われない場合、「資格証明の注入および送信のトラブルシューティング」を参照してください。
Logon Managerで生成される新規パスワードがアプリケーション独自のパスワード・ポリシーを満たさない場合、パスワード変更は失敗します。これに該当するかどうかを確認する場合は、現在エージェントにデプロイされているパスワード生成ポリシーを、ターゲット・アプリケーションのパスワード・ポリシーと比較し、パスワード変更の失敗の原因となる可能性がある非一貫性をすべて修正します。
エージェントがパスワード変更フォームに対して、ログオン・フォームと同様に応答する場合(つまり、エージェントがユーザーの現在格納されている資格証明を注入および送信する場合)は、次の項目をチェックします。
· テンプレートの構成ミス(誤った要素またはフォーム・タイプ、入力フィールド定義のエラーなど)
· パスワード変更フォームに動的URLが含まれるかどうかを確認し、含まれている場合はそれに応じてテンプレートを更新します。
· 検出マッチングを使用している場合は、正しいマッチング・タイプを使用しているかどうかを確認し、マッチング文字列にエラーがないか検証します。
アプリケーション・テンプレートのテストが正常に終了したら、リポジトリ内の選択したターゲット・コンテナにディレクトリ形式の階層で(デフォルト)、またはフラット形式の構成ファイルとして公開することで、エンドユーザー・マシンに配付できます。
注意: Logon Managerをリポジトリとともにデプロイする方法およびリポジトリ・ツリー構築のベスト・プラクティスは、ご使用のプラットフォームのLogon Managerベスト・プラクティスのガイドを参照してください。
注意: この手順を実行する前に、リポジトリの構造および構成を熟知していることを確認します。
目的のテンプレートおよびその他の構成オブジェクトを選択し、リポジトリに公開するには、次の手順を実行します:
1. Logon Manager Administrative Consoleを起動します。
2. 「Applications」ノードを右クリックし、コンテキスト・メニューから「Publish…」を選択します。
「Publish to Repository」ダイアログが表示されます。
3. 「Available configuration objects」リストで、目的のオブジェクトにナビゲートして選択します。
注意: このリストには、オブジェクトが構成されたカテゴリのみが表示されます。
たとえば、パスワード生成ポリシーが存在しない場合、対応するカテゴリはこのリストに表示されません。
4. 「>>」をクリックして、選択したオブジェクトを、「Selected objects to be published」リストに移動します。
(このリストからオブジェクトを除去して公開しないようにするには、オブジェクトを選択して、「<<」をクリックします。)
5. 次のいずれかを実行して、選択したオブジェクトの公開先のターゲット・コンテナを選択します:
o 以前、目的のコンテナに公開したことがある場合は、「Target Repository」ドロップダウン・リストからそれを選択します。
o 以前、目的のコンテナに公開したことがない場合、またはターゲット・コンテナ・パスが「Target Repository」ドロップダウン・リストに表示されない場合は、「Browse」機能を使用してターゲット・コンテナを検索して選択する必要があります:
i. 「Browse」をクリックして、ディレクトリ・ツリーを参照します。
注意: ディレクトリにまだ接続していない場合は、コンソールから必要な接続情報を提供するように求められます。
ii. 表示された「Browse for Repository」ダイアログで、ターゲット・コンテナにナビゲートして選択します。
注意: 新しいコンテナを作成する場合は、目的の親コンテナを右クリックし、コンテキスト・メニューから「New Container」を選択し、新しいコンテナの目的の名前を入力し、「OK」をクリックしてプロセスを完了します。
6. (オプション)構成オブジェクトをフラット形式で格納する必要がある環境の場合は、「Store selected items in configuration files, rather than as individual objects」チェック・ボックスを選択します。
注意: このオプションを選択することで、既存の構成ファイルに格納されているすべての項目が上書きされます(ターゲット・コンテナに存在する場合)。
7. (オプション)初回使用オブジェクト(FTUList)を作成する場合は、対応するチェック・ボックスを選択します。
注意: 手順6でフラット形式での構成オブジェクトの格納を選択した場合、このオプションはアクティブのみ可能です。
8. 「Publish」をクリックします。コンソールは、選択したオブジェクトをターゲット・リポジトリに公開します。
注意: 公開プロセスが完了するまで、ダイアログを終了したり、コンソールを閉じようとしないでください。オブジェクトが公開されると、ダイアログは自動的に閉じます。
公開プロセスの詳細は、Logon Manager Administrative Consoleヘルプを参照してください。
この部では、エージェントによるWebフォームの検出やWebフォームへの応答が不安定になる原因となる最も一般的な問題の診断および解決手順について説明します。内容は次のとおりです:
· コントロールIDを使用する場合のフォームのレスポンスのトラブルシューティング
· SendKeysを使用する場合のフォームのレスポンスのトラブルシューティング
ヒント: この項の手順で問題を解決できない場合は、Logon Managerのアクティビティの追跡とロギングを行い、記録された情報を分析のためにOracleサポートに送信することにより、さらにトラブルシューティングを行うことができます。このために、Oracleではトレース・コントローラ・ユーティリティ(Oracleサポートから入手可能)を提供しています。このユーティリティの使用方法の詳細は、How toガイドのトレース・コントローラ・ユーティリティの使用を参照してください。
この項の手順で問題を解決できない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
不安定なフォーム検出を診断するには、次のステップを使用します。
エージェントがフォームを検出せず、エージェントのシステム・トレイ・アイコンの「Logon Using Logon Manager」オプションを起動すると検出に成功する場合は、次を実行します:
· フォーム定義の「Options」タブの「Auto-recognize」オプションが有効になっていることを確認します。
· テンプレートで、誤った、または不正確なURL、入力フィールド定義、マッチング・ルールなどのエラーがないかどうかを確認します。
ブラウザがページの完全なロードを示すまで、エージェントは検出を開始しません。
ページのロードが低速である場合は、検出が適切に行われているかどうかを判断する前に、完全にロードするまで待機する必要があります。通常はブラウザ・ウィンドウの下部にあるステータス・バーに「Done」や「Finished.」などの適切なメッセージが表示され、そのページがロード完了したことが示されます。
インストールされているWebブラウザとの通信を行うために、エージェントは、そのブラウザにフックするヘルパー・オブジェクトを使用し、ブラウザに対してデータを送受信する手段をLogon Managerに提供します。ヘルパー・オブジェクトがバックグラウンドで実行されていない場合、Logon Managerはブラウザと通信できません。詳細は、「Webフォーム検出の理解」を参照してください。
ターゲットWebフォームの検出の成功を妨げるような方法で1つ以上のマッチング・ルールが構成されている可能性があります。すべてのマッチング・ルールを削除し、問題のあるルールを特定するまで、検出をテストしながらマッチング・ルールを1つずつ再追加します。
エージェントが一貫性を保ってフォームを検出するのを妨げる動的セグメントがURLに含まれる場合があります。URL定義をhost.domainフォームに簡略化してテンプレートをテストし、検出が成功した場合は、問題のあるセグメントを特定するまでURL定義のセグメントを1つずつ再構築し、正規表現を使用して動的セグメントに対応します。詳細は、「URL検出の理解」を参照してください。
前述の手順で問題を解決できない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
エージェントがフォームをまったく検出せず、レスポンスを試みない場合は、「Webフォーム検出の理解」を参照して、検出を妨げている可能性がある問題をテンプレート構成で特定します。
エージェントがフィールドの検出および正しい資格証明の注入を正常に行っても、処理のために資格証明をアプリケーションに自動的に送信できない場合は、[Enter]を押して資格証明が送信されるかどうかを確認し、次のいずれかを実行します:
· [Enter]を押すと資格証明が送信される場合は、テンプレートから「submit」入力フィールド定義を削除します。「submit」フィールド定義がない場合、エージェントはデフォルトの送信アクション([Enter]キーストローク)を送信します。
· [Enter]を押しても資格証明が送信されない場合は、手動で送信するようにユーザーに指示します。
エージェントによるフィールドへの移入が不安定である場合(誤った値、切り捨てられた値、文字化けした値または空白の値を取り込むなど)、1つ以上のターゲット要素名が一意でないか、動的である可能性があります。このような場合は、要素名のかわりに序数を使用し、Logon Managerに対して要素を一意に識別します。
前述の手順で問題を解決できない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
アプリケーションによっては、ログオン・フォームの表示時にログオン・フィールドの事前入力を行うことがあります(たとえば、ユーザー名のフィールドに、最後に正常にログオンしたユーザーの名前が事前入力されているなど)。1つ以上の[Backspace]または[Delete]キーストロークを送信して、資格証明を注入する前に、事前入力されたフィールドをクリアする必要がある場合があります。
カーソルが必ずしも同じフィールドで開始せず、エージェントによる移入前にフィールドがフォーカスを失う場合は、特定のホットキーの組合せ([Alt]+[U]など)または標準のWindowsキー([Tab]、矢印など)によるフィールドへのナビゲートがアプリケーションで許可されるかどうかを確認します。キーストロークを使用してフィールドにナビゲートできない場合は、目的のフィールドまたはコントロールを対象としたマウス・クリック・アクションを使用します。
エージェントが単一のフィールドに複数の値(ユーザー名とパスワードなど)を挿入する場合は、エージェントによるSendKeysアクションの起動が非常に早いため、アプリケーションが適切に応答できていない可能性があります。このような場合は、資格証明の注入の信頼性が高まるまで、アクションの起動速度を低下させます。これを行うには、他のアクションとの間に遅延アクションを挿入するか、「End-User Experience」→「Response」の下にある「SendKeys event interval」グローバル・エージェント設定を「Use for slow system」または「Use for very slow system」に設定します。
前述の手順の提案を試した後もエージェントが引き続き単一のフィールドに複数の値を注入する場合は、フォームの対話方法をジャーナル・フックを使用するSendKeysに切り替えます。これを行うには、アプリケーション・テンプレートで「General」タブを選択して目的のフォームを選択し、「Edit」をクリックして「Fields」タブを選択し、「Transfer Method」オプションを「SendKeys using Journal Hook」に設定します。
注意: 「SendKeys using journal hook」方法を使用すると、エージェントが代替APIを使用してキーストロークおよびマウス・クリックをブラウザに送信するため、これは通常、Citrix環境で最も効果的です。
注入されたフィールド値から個々の文字が欠落している場合は、エージェントによるSendKeysアクションの起動が非常に早いため、アプリケーションが適切に受け入れることができていない可能性があります。このような場合は、資格証明の注入の信頼性が高まるまで、アクションの起動速度を低下させます。これを行うには、他のアクションとの間に遅延アクションを挿入するか、「End-User Experience」→「Response」の下にある「SendKeys event interval」グローバル・エージェント設定を「Use for slow system」または「Use for very slow system」に設定します。
ログオンに引き続き失敗する場合は、マウス・クリック・アクションを使用してフォーム内のすべてのフィールドおよびコントロールにフォーカスすることを検討します。
前述のどの手順でも問題を解決できない場合は、Oracleサポートに連絡してください。
テンプレート内のフォーム定義からすべてのマッチング・ルールを削除すると適切なフォーム検出が行われる場合は、問題のあるルールを特定するまでルールを1つずつ再追加します。次に、問題のあるルールの範囲を広げるか(たとえば、現在指定されているHTMLコンテナよりも、サイトのDOM階層内で1つ上のHTMLコンテナを指定するなど)、問題のあるルールを完全に削除して検出が回復するかどうかを確認します。マッチングを完全に無効にしても検出が回復しない場合、問題は他にあります。
「Webフォームの検出のトラブルシューティング」を参照して問題を解決します。
前述の手順で問題を解決できない場合は、詳細を「Oracleサポートへの問合せ」で参照してください。
一部のアプリケーションではログアウト時にログオン・フォームが表示されるため、Logon Managerがログオン・フォームを認識してアプリケーションへの再ログインを自動的に行う原因となります。
これによって無限ログオン・ループが作成され、アプリケーションからログアウトできません。管理者は、このループの発生を防ぐために最後のログオン以降、設定された期間内はLogon Managerがアプリケーションにログオンするのを禁止するログオン猶予期間機能を有効にすることを選択できます。
ログアウト時に示されるログオン・フォームのURLが標準ログオン・フォームのURLと異なる場合は、ログオン後のフォームのURLが一致しないようにテンプレート内のURL定義を変更します。手順については、「URL検出基準の構成」を参照してください。
ログアウト時に示されるログオン・フォームがアプリケーションの標準ログオン・フォームと大幅に異なる場合は、マッチングを使用してこの2つのログオン・フォームを一意に区別します。手順については、「追加のフィールド検出基準の構成」を参照してください。
ログアウト後のフォームを標準ログオン・フォームと一意に区別できない場合は、指定された猶予期間が完全には経過していない場合にエージェントが同じアプリケーションに自動的にログオンするのを防ぐ猶予期間を構成します。
ログオン・ループ猶予期間タイマーを構成するには、次の手順を実行します:
1. Logon Manager Administrative Consoleで目的のテンプレートを開き、「Miscellaneous」タブを選択します。
2. 「Logon Loop Grace Period」フィールドで、ドロップダウン・リストから目的の操作モードを選択します。
· Prompt: エージェントは、猶予期間が有効なときにアプリケーションのログオン・フォームを検出した場合、ログオンを完了するか、アプリケーションを無視するかを尋ねるプロンプトを表示します。
· Silent: エージェントは、猶予期間が有効なときにアプリケーションのログオン・フォームを検出した場合、アプリケーションを無視し、ユーザーのログオンを行いません。
· None: 猶予期間タイマーを非アクティブ化します。エージェントは、アプリケーションのログオン・フォームを検出するたびにアプリケーションに応答します。
3. 猶予期間が有効なときにエージェントに実行させる内容に応じて、次のいずれかを実行します:
· アプリケーションの実行可能ファイルの起動が検出されるたびにエージェントがユーザーのログオンを行うようにするには、「Reset for each process」チェック・ボックスを選択します。
· 猶予期間が経過するまでエージェントがアプリケーションを無視するようにするは、「Reset for each process」チェック・ボックスを空白のままにします。
4. 変更を保存してリポジトリにコミットします(該当する場合)。
注意: ログオン猶予期間タイマーを構成しても、ログオン・ループが特定のフォーム定義で発生する場合は、フォーム定義の「Options」タブのAdhere to logon loop grace periodオプションが有効になっていることを確認します。
前述の手順で問題を解決できない場合は、さらなるサポートを受けるために「Oracleサポートへの問合せ」を参照してください。
Javaアプリケーション固有の問題を診断し解決するには、次のステップを使用します。
サポートされるJREのリストについては、ご使用のバージョンのLogon Managerのリリース・ノートを参照してください。インストールしたJREがサポートされていない場合は、Logon Managerを現在のJREがサポートされるリリースにアップグレードするか、現在のJREをご使用のリリースのLogon Managerでサポートされるバージョンに置き換える必要があります。
Logon Managerを、Oracle JInitiatorまたはOracle/IBM以外のJREとともにデプロイした場合の問題は報告されていませんが、このようなJREを使用した場合のLogon Managerの適切な動作についてはサポートおよび保証されません。
場合によっては、Javaアプリケーション使用時に構成上の問題によってJHOがロードされない場合があります。JHOがインストールされ実行されていることを確認するには、Microsoft Spy++ (Microsoft Visual Studioに付属)、またはSysInternals Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)などのプロセス・ビューア・ツールを使用して、JVM実行可能ファイルがssojho.dll子スレッドを生成したことを確認してください。
次に示す例は、Process ExplorerでのSun JVM実行可能ファイルjavaw.exeのプロパティ・ボックスを示しており、ssojho.dll子スレッドが実行中であることがわかります:
JHOがターゲットJREに対してロードされていない場合は、ホーム・ディレクトリにあるユーザーの.java.policyファイルで、JHOが必要とする権限が付与されているかどうかを確認します(次の項で説明します)。
JHOは、ターゲットJREのコンテキストで適切に動作できるように、ユーザーの.java.policyファイルを通じて付与される特定の権限のセットを必要とします。
これらの権限が有効でない場合、Logon ManagerはJavaアプリケーションを検出することも、それに応答することもできません。
Logon Managerが起動するたびに、権限はテンプレート.java.policyファイル(%INSTALLDIR%\v-GO SSO\Helper\Java)から、ユーザーの.java.policyファイル(ユーザーのホーム・ディレクトリ)にコピーされます。これらの権限は、Javaアプリケーションが起動されるたびにJHOに自動的に付与されます。
必要な権限がJHOに付与されていない疑いがある場合は、Logon Managerの起動後に、JHOを参照している例外のうち欠落する権限に関する例外がないか、JREのログを確認してください。そのような例外が存在する場合、必要な権限は付与されていません。次のいずれかの原因が考えられます:
· ユーザーの.java.policyファイルに、JHOで必要な権限が含まれていない。
· ターゲットJREのセキュリティ設定が(通常はJREのjava.securityファイルに保存される)、ユーザーの.java.policyファイルを参照しない。
必要なJHO権限がユーザーの.java.policyファイルに含まれていない場合、そのファイルのACLによってLogon Managerがそのファイルに権限を書き込めない可能性があるため、ファイルのACLを調べて書込み権限が拒否されていないかを確認してください。
ACLが適切で、必要な権限がユーザーの.java.policyファイルに存在しない場合は、次のいずれかを実行します:
· ユーザーの.java.policyファイルに、保持する必要がある他の権限または構成情報が含まれている場合は、このファイルを編集して欠落しているJHO権限を手動で追加します。
· ユーザーの.java.policyファイルに、保持する必要がある他の権限または構成情報が含まれていない場合は、このファイルを削除してからLogon Managerを再起動すると、ファイルが再作成されて必要な権限が自動的に挿入されます。
注意: JREがそのベンダーによって更新され、将来のリリースで1つ以上の新しい権限が導入される場合がありますが、JHOでそれが必要になったとしても、Logon Managerのリリース時点ではそれが考慮されていない可能性があります。その場合は、Logon ManagerおよびターゲットJavaアプリケーションの起動後に、欠落する権限に関する例外がないかJREのエラー・ログを確認し、その権限をLogon Managerの.java.policyテンプレート・ファイルに追加して、次回Logon Managerを起動したときにユーザーの.java.policyファイルを通じてその権限が付与されるようにします。
Logon Managerは、JHOの次の側面の動作を制御できる、グローバルなエージェント設定を提供します:
· 特定のJREバージョンを除外する
· 特定のJREベンダーを除外する
· Javaアプレットのロードを考慮したレスポンス遅延を定義する
· JREの初期化を考慮したレスポンス遅延を定義する
· レスポンス再試行間の遅延を定義する
· レスポンス再試行の最大数を定義する
· JHOが認識または無視する特定の階層、ウィンドウ、コンポーネントおよび注入タイプのイベントを定義する
これらの設定は、Logon Manager Administrative Consoleのツリーの次の場所にあります:
「Global Agent Settings」→「Live」→「User Experience」→「Application Response」→「Java Applications」
これらの設定および構成方法の詳細は、コンソール・ヘルプを参照してください。さらに精度の高い制御を行う場合、Logon Managerではレジストリ設定が提供されています(次の項で説明します)。これらの設定は熟練した管理者のみが行うことをお薦めします。
前述のコンソール設定以外に、Logon Managerでは非常に精度の高い包含および除外ルールを作成できるレジストリ設定が提供されています(包含および除外ルールは、Logon Managerがターゲット・アプリケーションに対してJHOをロードするかどうかを決定する際に使用します)。Java Virtual Machine (JVM)実行可能ファイル、JARファイル、およびJHOで考慮されるコマンドライン・パラメータを、正規表現を使用して指定できます。
これらの設定を構成する際には、次の点に注意してください:
· 設定の値を省略すると、指定されているデフォルトが使用され、値を設定すると一致しない値はすべて無視されます。
· JHOは最初に包含ルールを処理し、その後除外ルールを処理します。
· N接尾辞は、特定のアプリケーションに属する設定をバンドルする一意の数値識別子です。JHOは、このバンドルを昇順に順次処理します。
N接尾辞は、1から開始される正の整数です。
· トレース・ロギング・ユーティリティを使用して、アプリケーションのホストJVM実行可能ファイルおよび起動コマンドを確認できます。Javaトレース・ログの先頭部分は、アプリケーションのホストJVMおよび起動コマンドを示します。
設定は、Windowsレジストリの次のパスにあります。
HKEY_LOCAL_MACHINE\SOFTWARE\Passlogix\Extensions\AccessManager\JHO
設定は、次のカテゴリに分けられます:
· JHO包含ルール
· JHO除外ルール
· 許可されるJava Runtime Environment (JRE)バージョン
これらの設定は、ホストJVM実行可能ファイル、アプリケーションJARファイル、およびターゲット・アプリケーションに対してJHOをロードするためのコマンドライン・パラメータを指定する場合に使用します。値は、大/小文字が区別されない正規表現です。
設定 |
説明 |
JhoIncludeHostNameN |
アプリケーションのホストJVM実行可能ファイルを指定します。
たとえば、アプリケーションがjava.exeまたはjavaw.exeという名前のJVM実行可能ファイルによってホストされている場合にJHOをロードするには、値を次のように設定します。 すべての実行可能ファイルが受け入れられます(つまり、JHOはどのような実行可能ファイルに対してもロードされます)。 |
JhoIncludeHostCommandLineN |
アプリケーションの起動に使用されるコマンドを指定します。
たとえば、アプリケーションのJARファイルがLogin.jarという名前の場合のみJHOをロードする場合(コマンドの残り部分は異なっていても許容される)、値を次のように設定します。 |
これらの設定は、ホストJVM実行可能ファイル、アプリケーションJARファイル、およびJHOがターゲット・アプリケーションを無視するためのコマンドライン・パラメータを指定する場合に使用します。値は、大/小文字が区別されない正規表現です。
設定 |
説明 |
JhoExcludeHostNameN |
アプリケーションのホストJVM実行可能ファイルを指定します。
たとえば、ホストJVM実行可能ファイルの名前が"java.exe"または"javaw.exe"の場合にJHOがアプリケーションを無視するようにするには、値を次のように設定します。 |
JhoExcludeHostCommandLineN |
アプリケーションの起動に使用されるコマンドを指定します。
たとえば、JARファイルの名前が"Login.jar"の場合にJHOがアプリケーションを無視するようにするには(ただし、コマンドの残りの部分は非間接的)、値を次のように設定します。 |
これらの設定では、JHOがロードされる目的のJRE/JDKバージョンを指定可能であり、この指定範囲外のバージョンはすべて無視され、JHOはロードされません。
どちらの設定の値もx.y.zという形式である必要があります:
· xは、メジャー・バージョンです。
· yは、マイナー・バージョンです。
· zは、リリース・タイプ(機能、メンテナンスまたは更新)、およびインストールされているJREのビルドID (1.6.0_07など)を示します。
設定 |
説明 |
JhoMinimumJavaVersion |
許可されるJRE/JDKバージョンの下限を指定します。
デフォルト値: 1.2 (JHOでサポートされる最も古いJREバージョン) |
JhoMaximumJavaVersion |
許可されるJRE/JDKバージョンの上限を指定します。
デフォルト値: 空白(つまり、JREバージョンの上限はありません) |
コンソールで提供される設定以外に、Logon Managerでは、さらに高レベルの精度でJHOのイベント・レスポンス動作を制御するためのレジストリ設定が提供されています。これらの設定を使用すると、Javaアプリケーションが検出された場合に特定のイベントに対するJHOのレスポンスを変更することによって、Javaアプリケーションに応答する際のLogon Managerのパフォーマンスのトラブルシューティングおよび最適化を実行できます。
この設定は、Windowsレジストリの次のキーにあります。
HKEY_LOCAL_MACHINE\SOFTWARE\Passlogix\Extensions\AccessManager
設定 |
説明 |
JhoHierarchyEventProcessing |
どのJava階層イベントを認識するかを決定します。フラグを次のように設定します:
HIERARCHY_EVENT_CHANGED = 0x1
前述の値は、すべての階層イベントを認識するようにJHOに指示します。 |
JhoEventWaitTimeout |
JHOコントロールのイベント処理タイムアウトを決定します(ミリ秒単位)。デフォルト値の0は、JHOに無期限に待機するように指示します。 |
JhoWindowEventProcessing |
どのJavaウィンドウ・イベントを認識するかを決定します。
· WINDOW_EVENT_OPENED = 0x1 · WINDOW_EVENT_CLOSED = 0x2 · WINDOW_EVENT_ACTIVATED = 0x4 · WINDOW_EVENT_DEACTIVATED = 0x8 · WINDOW_EVENT_CLOSING = 0x10 · WINDOW_EVENT_ICONIFIED = 0x20 · WINDOW_EVENT_DEICONIFIED = 0x40
デフォルトでは、すべてのウィンドウ・イベントが認識されます。 |
設定 |
説明 |
JhoComponentEventProcessing |
どのJavaコンポーネント・イベントを認識するかを決定します。このフラグは、次の値の組合せです:
· COMPONENT_EVENT_SHOWN = 0x1 · COMPONENT_EVENT_HIDDEN = 0x2 · COMPONENT_EVENT_ADDED = 0x4 · COMPONENT_EVENT_REMOVED = 0x8
|
JhoInjectType
|
データをコントロールに送信する際にJHOが使用する注入タイプを確認します。このフラグは、次の値のいずれかをとります:
· INJECT_TYPE_DEFAULT = 0 · INJECT_TYPE_METHOD = 1 · INJECT_TYPE_ACCESSIBLE = 2 · INJECT_TYPE_NONACCESSIBLE = 3 · INJECT_TYPE_ROBOT = 4
デフォルトでは、このフラグにINJECT_TYPE_DEFAULTが設定され、その場合、JHOは次の各方法を、ここに示す順に、注入が成功するまで試みます:
· INJECT_TYPE_METHOD (コントロールに適切な設定方法が検出された場合) · INJECT_TYPE_ACCESSIBLE (コントロールでアクセシビリティがサポートされている場合) · INJECT_TYPE_NONACCESSIBLE · INJECT_TYPE_ROBOT
注意: コンボ・ボックスおよびリスト・ボックスの場合、JHOは常にINJECT_TYPE_METHODを使用します。 |
Logon Managerの新規インストールでは、次のデフォルト設定をお薦めします:
· JhoWindowEventProcessing=0x3
· JhoComponentEventProcessing=0xB
· JhoHierarchyEventProcessing=0x0
これらの値は、次のイベントを認識するようにJHOに指示します:
· WINDOW_EVENT_OPENED (0x1)
· WINDOW_EVENT_CLOSED (0x2)
· COMPONENT_EVENT_SHOWN (0x1)
· COMPONENT_EVENT_HIDDEN (0x2)
· COMPONENT_EVENT_REMOVED (0x8)