プライマリ・コンテンツに移動
Oracle® Fusion Middleware Forms Servicesデプロイメント・ガイド
12c (12.2.1.2)
E82766-02
目次へ移動
目次

前
前へ
次
次へ

9 Oracle Access ManagerでのForms Servicesの使用

Oracle Access Manager 11gは、Oracle Fusion Middleware 11gのコンポーネントの1つで、認証と認可のためのシングル・サインオン・ソリューションです。Formsアプリケーションのシングル・サインオンの保護、認証サーバーの保護を使用したFormsサービス機能、シングル・サインオンを使用したFormsアプリケーションの保護、およびOracle FormsとReportsの統合をそれぞれ有効にするための情報を提供します。

この章の内容は次のとおりです。

Oracle Access Managerおよびシングル・サインオン

Oracle FMW 12cのOracle Forms Servicesアプリケーションは、Oracle Access Managed (OAM) 11gR2パッチ・セット3を使用して保護できます。

Oracle Access Manager 11gはJavaプラットフォームのEnterprise Edition (Java EE)に基づいた、エンタープライズ・レベルのセキュリティ・アプリケーションで、機密情報へのアクセスを制限したり、認証や認可のサービスを一元化します。Oracle Access Manager 11gは、Oracle Fusion Middleware 11gのコンポーネントの1つで、認証と認可のためのシングル・サインオン・ソリューションです。

認証サーバーを使用すると、アプリケーションで共有認証トークンまたは認証局を使用してユーザーを認証できるようになります。あるアプリケーションで認証されたユーザーは、同一の認証ドメイン内にある他のすべてのアプリケーションでも自動的に認証されます。

Formsアプリケーションでは、Oracle Internet DirectoryまたはOracle Platforms Security Services (OPSS)からデータベース接続情報を取得するためにのみ、シングル・サインオン・ソリューションが使用されます。データベース情報を取得した後は、認証サーバーとの連携は発生しません。Oracle Forms 12cに導入されているSSOログアウト機能の1つを使用してFormsアプリケーションがコーディングされていないかぎり、アプリケーションを終了してもシングル・サインオン・ログアウトは実行されません。逆に、Oracle Forms 12cに導入されているSSOログアウト機能の1つを使用してアプリケーションがコーディングされていないかぎり、シングル・サインオン・セッションからログアウトしてもアクティブなFormsセッションは終了しません。データベース・セッションは、サーバーのFormsランタイム(frmweb.exeなど)が(通常は明示的にフォームを終了することによって)終了するまで存続します。

認証サーバーをユーザーが使用し、Oracle製品ではないアプリケーション(カスタムJava EEアプリケーションなど)も認証できます。

Oracle Forms Servicesでは、サーバー・インスタンスで実行されるすべてのFormsアプリケーションに対するシングル・サインオンが、最初からサポートされています。Formsアプリケーションでさらにコーディングを行う必要はありません。

注意:

Oracle Forms Servicesアプリケーションは、OID (またはOPSS)と認証サーバーの組合せを使用して、シングル・サインオン環境で実行されます。サポートされているバージョンは、製品動作保証ガイドを参照してください。

動作保証の詳細は、http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.htmlを参照してください

Oracle Access Managerの詳細は、http://docs.oracle.com/cd/E40329_01/admin.1112/e27239/toc.htmを参照してください

Oracle Internet Directoryの詳細は、http://docs.oracle.com/cd/E40329_01/admin.1112/e27149/toc.htmを参照してください

Oracle Platform Security Servicesの詳細は、次を参照してください

http://docs.oracle.com/middleware/1213/idm/app-security/underjps.htm

Oracle Formsで使用されるシングル・サインオン・コンポーネント

認証サーバーを使用したシングル・サインオン・モードでFormsアプリケーションを実行するときに関連する、Oracle Fusion Middlewareの様々なシングル・サインオン・コンポーネントがあります。図9-1および図9-2に、Forms Servicesのシングル・サインオン・デプロイメント設定に関連する、様々なコンポーネントの上位レベルの概要を示します。

図9-1 OPSSをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント

図9-1の説明が続きます
「図9-1 OPSSをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント」の説明

この図は、OPSSをFormsアイデンティティ・ストアとして持つSSOを示しています。

図9-2 (Oracle Internet Directory) OIDアイデンティティをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント

図9-2の説明が続きます
「図9-2 (Oracle Internet Directory) OIDアイデンティティをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント」の説明

この図は、OIDをFormsアイデンティティ・ストアとして持つSSOを示しています。

前述の図で示されたコンポーネントの説明を次に示します。

  • 認証サーバー

    • Oracle Access Manager (OAMサーバー) - Webシングル・サインオン、認証、認可などを含む全セキュリティ機能を提供するOracle FMW 11g認証サーバー。Forms Servicesを実行するときに、アイデンティティ・ストアとしてOracle Internet Directoryを使用します。Oracle Access Managerは、Oracle HTTP Serverに対して構成されるアクセス・クライアントとしてwebgateを使用できます。

  • アクセス・クライアント

    • webgate - WebGateはシングル・サインオン・サポートを提供します。これは受信HTTPリクエストをインターセプトし、認証のためにそれらをアクセス・サーバーに転送します。Oracle Forms ServicesおよびOracle Reports Servicesは、OAMサーバーに対するアクセス・クライアントとしてwebgateを使用できます。

  • Formsアイデンティティ・ストア

    • これは、Formsサーバー・データベース接続情報が含まれるFormsリソース・アクセス記述子の記憶域です。Oracle Platform Security Services (OPSS)またはOracle Internet Directory (OID)をFormsアイデンティティ・ストアとして使用できます。Oracle Platform Security Services (OPSS)がデフォルトのFormsアイデンティティ・ストアとして設定されますが、Forms管理者はOracle Enterprise Managerを使用して、Formsアイデンティティ・ストアをOracle Internet Directory (OID)に変更したり、Oracle Platform Security Servicesに戻すことができます。

  • OAMサーバー・アイデンティティ・ストア - Oracle Internet Directory (OID)は、Oracle Access Manager (OAM)認証サーバーおよびFormsアプリケーションによってアイデンティティ・ストアとして使用されるLDAPサーバーです

    注意:

    Oracle Internet Directory (OID)がFormsアイデンティティ・ストアとして使用される場合、同じOracle Internet Directory (OID)インスタンスをOracle Access Managerのプライマリ・アイデンティティ・ストアとして設定する必要があります。

  • Forms Servlet - このOracle Forms Servicesコンポーネントは、Formsアプリケーションを起動する最初のユーザー・リクエストを受け取ります。Formsサーブレットは、アプリケーションに認証が必要かどうかを検出してリクエストを認証サーバーに転送し、Oracle Internet Directoryにアクセスしてデータベース接続情報を取得します。

認証フロー

図9-3および図9-4に、認証サーバーで保護されたアプリケーションURLをユーザーが最初にリクエストしたときの、Oracle Forms Servicesでの認証サーバー・サポートの認証フローを示します。

図9-3 最初のクライアント・リクエストの認証フロー

図9-3の説明が続きます
「図9-3 最初のクライアント・リクエストの認証フロー」の説明

この図は、最初のクライアント・リクエストの認証フローを示しています。

図9-4 最初のクライアント・リクエストの認証フロー

図9-4の説明が続きます
「図9-4 最初のクライアント・リクエストの認証フロー」の説明

この図は、最初のクライアント・リクエストの認証フローを示しています。

  1. ユーザーは、http(s)://<hostname>:<port>/forms/frmservlet?config= <application>&...のようなForms URLをリクエストします。

    注意:

    シングル・サインオンを使用するFormsアプリケーションでは、HTTPのポート番号をForms URLで指定します。Forms URLはhttp://<host name>:<http port>/forms/frmservlet?config=ssoappのように記述します。soapは、Forms構成ファイルの中で(ssoModeを指定して)シングル・サインオンを有効にしたセクションの名前です。

  2. Formsサーブレットは、認証サーバー・ログイン・ページにユーザーをリダイレクトします。

  3. ユーザーが、ログイン・フォームでユーザー名とパスワードを指定します。

  4. Oracle Internet Directory (LDAPサーバー)で、パスワードが検証されます。

  5. ユーザーは、sso_userid情報とともにそのURLにリダイレクトされます。

  6. FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。

  7. Formsサーブレットは、フォーム実行セッションにsso_useridパラメータを設定し、アプレットのFormsリスナー・サーブレットへの接続を許可します。

  8. FormsサーブレットがFormsサーバーを起動します。

図9-5に、別のパートナ・アプリケーションで認証されたユーザーが、認証サーバーで保護されたアプリケーションをリクエストした場合におけるOracle Forms Servicesのシングル・サインオン・サポートの認証フローを示します。

図9-5 後続のクライアント・リクエストの認証フロー

図9-5の説明が続きます
「図9-5 後続のクライアント・リクエストの認証フロー」の説明

この図は、後続のクライアント・リクエストの認証フローを示しています。

  1. ユーザーは、Forms URLをリクエストします。

  2. Formsサーブレットは、認証サーバーおよびそのログイン・ページにユーザーをリダイレクトします。

  3. ユーザーのリクエストが、sso_userid情報とともにURLにリダイレクトされます。

  4. FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。

  5. Formsサーブレットは、ランフォーム・セッションにsso_useridパラメータを設定し、アプレットがFormsリスナー・サーブレットに接続します。

  6. FormsサーブレットがFormsサーバーを起動します。

設定プロセス

Formsアプリケーションでは、シングル・サインオンは初期状態で有効ではありません。

Formsアプリケーションに対してシングル・サインオンを有効にするには、次の手順が必要です。

Forms Service 12c Weblogicドメインの構成後のFormsアプリケーションに対するシングル・サインオンの有効化

12c Forms Services Weblogicドメインの設定後およびドメインでのWeb層の構成後にFormsアプリケーションに対してシングル・サインオンを有効にできます。

フローチャートに、インストール後にFormsアプリケーションに対してSSOを有効化する手順を示します。

このフローチャートに示した手順の詳細を表9-1に示します。

表9-1 インストール後にFormsアプリケーションのシングル・サインオンを有効化するためのタスク

タスク オプション 説明 備考

前提条件

なし

WeblogicドメインでWeb層(OHS)インスタンスを作成し、Forms管理対象サーバーのルーティングに対してWeb層(OHS)を有効にします。

 

タスク1: Formsアプリケーションのシングル・サインオン保護を有効にするかどうかの決定。

なし

ユーザーは、シングル・サインオン保護なしでFormsアプリケーションを実行することを選択しました。

 

はい

ユーザーは、認証サーバーとしてOracle Access Manager (OAMサーバー)を使用してシングル・サインオン・サーバーとともにFormsを実行することを選択しました。

OAMのインストール手順の詳細は、『Oracle Fusion Middleware Oracle Forms and Reportsインストレーション・ガイド』を参照してください。

タスク2: パートナ・アプリケーションの登録アプローチの選択。

frmconfighelperスクリプトの使用

ユーザーは、frmconfighelperスクリプトを使用してWeb層インスタンスをパートナ・アプリケーションとしてOracle Access Manager (OAMサーバー)に登録することを選択しました。

手順の詳細は、「OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成」を参照してください

OAM管理コンソールの使用

ユーザーは、OAMコンソールを使用してWeb層インスタンスをパートナ・アプリケーションとしてOracle Access Manager (OAMサーバー)に登録することを選択しました。

手順の詳細は、「OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成」を参照してください

タスク3: Web層インスタンスおよび管理サーバー・インスタンスの再起動

Webゲート構成をWeb層ランタイム・インスタンスにレプリケートするには、Web層インスタンスおよびWLS管理サーバー・インスタンスを再起動する必要があります。

 

タスク4: リソース・アクセス記述子を格納するためのFormsアイデンティティ・ストア・タイプの選択。

OPSS (Oracle Platform Security Services)

Oracle Platform Security Services (OPSS)がデフォルトのFormsアイデンティティ・ストアとして構成されるため、作業は必要はありません。

詳細な手順は、このドキュメントの「Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択」を参照してください

Oracle Internet Directory (OID)

ユーザーは、アイデンティティ・ストアとしてOracle Internet Directory (OID)を使用することを選択しました。

Forms (Oracle Internet Directory) OIDの関連付けおよびFormsアイデンティティ・ストアとしての(Oracle Internet Directory) OIDの有効化の詳細な手順は、「Oracle Internet Directoryに対するForms J2EEアプリケーションの構成」を参照してください。

タスク5: formsweb.cfgでのFormsアプリケーションに対するSSOの有効化

このタスクは必須です。

認証サーバーにアクセス・クライアントを登録した後で、ユーザーは、Formsアプリケーションに対してSSOを有効化する必要があります。

formsweb.cfgでFormsアプリケーションに対してSSOを有効化する手順の詳細は、「シングル・サインオンでのFormsアプリケーションの保護」を参照してください。

認証サーバー保護付きのForms Services機能

このリリースのOracle Forms Servicesでは、次の機能および拡張機能が利用可能です。

動的リソースの作成

シングル・サインオン・モードでは、ユーザーがFormsアプリケーションに接続しようとしたときに、認証サーバーおよびFormsアイデンティティ・ストアと組み合せてwebgateでユーザーが認証されます。認証されたユーザーは、Formsサーブレットに送られます。Formsサーブレットは、シングル・サインオンのユーザー名が含まれたユーザーのリクエスト情報を取得します。このユーザー名とアプリケーション名によって、Formsアイデンティティ・ストアでこのアプリケーションに対するユーザーのリソース情報を識別する一意のペアが作成されます。

認可されたFormsユーザーが、リクエストしている特定のアプリケーションのリソース、またはFormsアイデンティティ・ストアのデフォルトのリソースのいずれも持たない場合、ユーザーはリソース・アクセス記述子の作成のために、Forms RAD Servletにリダイレクトされます。このリソースの作成後、ユーザーは元のFormsのリクエストURLにリダイレクトされます。

不足したリソース情報をForms Servicesで処理する方法は、アプリケーションまたはForms Services管理者によってカスタマイズできます。次のオプションを使用できます。

  • リソースの動的な作成の許可(デフォルト)

  • ssoErrorUrlパラメータに指定されている事前定義されたURLへのユーザーのリダイレクト

  • Formsのエラー・メッセージの表示

システム管理者は、Forms構成ファイルにリダイレクションURL(絶対URLまたは相対URL)を指定します。

動的ディレクティブのサポート

Formsでのシングル・サインオンの適用はformsweb.cfgファイルで行われます。シングル・サインオン・パラメータssoModeFALSE以外の有効な値が設定されている場合は、アプリケーションが認証サーバーによる認証を必要としていることを示します。

このパラメータによって、Forms Servicesインスタンスで、データベース・パスワードを取得するためにシングル・サインオンに依存するアプリケーション・タイプと依存しないアプリケーション・タイプの両方を処理できます。シングル・サインオンはformsweb.cfgファイルで構成するので、Fusion Middleware Controlをユーザーが使用し、認証のこの側面を管理できます。

データベース・パスワードの期限切れのサポート

Oracle Forms Services 12cでは、データベース・パスワードが期限切れになり、かつシングル・サインオン・モードで実行されるForms Servicesアプリケーションによりパスワードが更新された場合、ユーザーが入力した新しいパスワードが、Formsアイデンティティ・ストアでこのアプリケーションのリソース・アクセス記述子(RAD)を更新します。この機能により、Formsユーザーのデータベース・パスワードが変更されても、Formsでの認証サーバーによるそのユーザーの認証が引き続き機能します。ただし、Oracle FormsではなくSQL*Plusでパスワードが変更された場合、データベース接続文字列はFormsアイデンティティ・ストアで更新されません。

シングル・サインオンでのFormsアプリケーションの保護

Oracle Formsアプリケーションは、集中構成ファイル($DOMAIN_HOME/config/fmwconfig/servers/WLS_FORMS/applications/formsapp_12.2.1/configにあるformsweb.cfgファイル)を使用して構成されます。formsweb.cfgファイルの管理には、Fusion Middleware Controlを使用することをお薦めします。

ユーザーが個別のFormsアプリケーションまたは複数のFormsアプリケーションのシングル・サインオンを有効化するには、Oracle Forms Services構成ファイルformsweb.cfgに定義されている次のパラメータが必要です。このファイルは、Fusion Middleware Controlを使用して管理することをお薦めします。

表9-2 シングル・サインオンの有効化に使用するパラメータ

パラメータ名 有効な値 デフォルト値

ssoMode

true

webgate

false

false

ssoProxyConnect

yes

no

yes

ssoDynamicResourceCreate

true

false

true

ssoErrorUrl

URLの文字列

ssoCancelUrl

URLの文字列

注意:

これらのパラメータの詳細および可能な値を次に説明します。

formsweb.cfgファイル内のこれらのOracle Forms Servicesパラメータは、User Parameterセクションで設定します。これらのパラメータは、サーバーで実行されるすべてのFormsアプリケーションの動作を定義します。これらのパラメータは、Named Configurationで設定することもできます。これらは特定のアプリケーションのみに対して定義されます。Named Configurationセクションで設定したシングル・サインオン・パラメータは、User Parameterセクションで設定した同一のパラメータをオーバーライドします。

アプリケーションのシングル・サインオンを有効にするには:

  1. Fusion Middleware Controlを起動します。

  2. 「Forms」メニューから「Web構成」を選択します。

  3. アプリケーションの構成セクションをリストする行を選択します。

  4. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。

  5. 「セクション」リージョンで、ssoModeを含む行を選択します。

  6. 「値」フィールドにwebgateまたはTRUEと入力します。

  7. 「適用」をクリックしてformsweb.cfgファイルを更新します。

    選択したアプリケーションでシングル・サインオンが有効になります。

アプリケーションのシングル・サインオンを無効にするには:

  1. 「Forms」メニューから「Web構成」を選択します。
  2. アプリケーションの構成セクションをリストする行を選択します。
  3. 「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。
  4. 「セクション」リージョンで、ssoModeを含む行を選択します。
  5. 「値」列に、FALSEと入力します。
  6. 「適用」をクリックします。

    選択したアプリケーションでシングル・サインオンが無効になります。

ssoMode

ssoModeパラメータを使用して、Forms Servicesアプリケーションを認証サーバーに接続できます。シングル・サインオン・パラメータssoModeに設定できる値を次に示します。

  • ssoModeTRUEまたはwebgateに設定すると、アプリケーションがWebゲートをアクセス・クライアントとして使用してOAMサーバーによる認証を要求することを示します。Webゲートは、手動でインストールして構成する必要があります。

  • ssoModeFALSEに設定すると、アプリケーションが認証サーバーによる認証を要求しないことを示します。

デフォルトでは、Oracle Forms Servicesアプリケーションは、シングル・サインオン・モードで実行するようには構成されません。ssoModeパラメータは、formsweb.cfgファイル内の次の2つの場所で設定できます。

  • formsweb.cfgのデフォルト・セクションでssoModeに値trueまたはwebgateを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます

  • Oracle Forms Servicesアプリケーションの名前を付けた構成でssoModeパラメータを設定します。これにより、この特定のアプリケーションでのみ、シングル・サインオンが有効または無効になります。次に例を示します。

    [myApp]

    form=myFmx

    ssoMode=true

ssoProxyConnect

ssoProxyConnectパラメータを使用することにより、ユーザーは、Oracle Formsでデータベースへのプロキシ接続を使用するかどうかを制御できます。ssoProxyConnectパラメータは、次の2つの方法で設定できます。

  • formsweb.cfgのデフォルト・セクションでssoProxyConnectに値yesを設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます。

  • ssoProxyConnectパラメータを実行時のURLで渡します(例: http://<host>:<port>/?config=myapp&……&ssoProxyConnect=yes)。

ssoDynamicResourceCreate

ssoDynamicResourceCreateパラメータはデフォルトでtrueに設定されます。これにより、ユーザーは(構成した方法に応じて) OPSSでリソース・アクセス記述子(RAD)エントリを作成し、アプリケーションを実行できます(このリソース・エントリが存在しない場合)。

リソースが動的に作成されることによって、管理者がユーザーのRAD情報を事前に作成する必要がなくなるため、管理が簡素化されます。ssoDynamicResourceCreateパラメータは、システム・パラメータとしてformsweb.cfgファイルに設定するか、名前を付けた構成のパラメータとして設定できます。デフォルトでtrueに設定されているため、このパラメータを特定のアプリケーションの名前を付けた構成で使用し、デフォルトとは異なる方法で不足したRADエントリを処理できます。

ssoDynamicResourceCreateパラメータをfalseに設定してアプリケーションでシングル・サインオンを有効にし、ssoErrorURLに値を指定しないでおくと、認証されたユーザーとこのアプリケーションにRADリソースがない場合にOracle Forms Servicesにエラー・メッセージが表示されます。

管理者にとって、ユーザーが自分自身のリソースを作成することは望ましくないこともあるため、管理者はこれらのパラメータを使用して、Formsアイデンティティ・ストアのリソース作成を制御できます。デフォルトの動作では、リソースを作成できるHTMLフォームにユーザーをダイレクトしますが、管理者はその設定を変更し、ユーザーをカスタムURLにリダイレクトできます。

Formsアプリケーションの構成セクションで、次のパラメータを設定する必要があります。

[myApp]

form=myFmx

ssoMode=true

ssoDynamicResourceCreate=false

Enterprise Manager Fusion Middleware Controlを使用してこれらのパラメータを設定する方法の詳細は、「パラメータの管理」を参照してください。

ssoErrorURL

管理者はssoErrorURLパラメータを使用して、特定のアプリケーションにユーザーのRADエントリがない場合の処理を行うリダイレクションURLを指定できます。このパラメータは、ssoDynamicResourceCreateパラメータがfalseに設定され、動的リソース作成の動作が無効になっている場合にのみ有効になります。ssoErrorURLパラメータは、デフォルト・セクションで定義できるほか、名前を付けた構成セクションのパラメータとして定義することもできます。URLには、任意のアプリケーション、静的HTMLファイル、RADを作成するカスタム・サーブレット(JSP)アプリケーション(次の例を参照)などを指定できます。

[myApp]
form=myFmx
ssoMode=true
ssoDynamicResourceCreate=false
ssoErrorURL=http://example.com:7779/servlet/handleCustomRADcreation.jsp
…

ssoCancelUrl

ssoCancelURLパラメータは動的RAD作成機能(ssoDynamicResourceCreate= true)とともに使用します。このパラメータでは、ユーザーがHTMLフォーム(要求されたアプリケーションのRADエントリを動的に作成するためのフォーム)で取消しボタンを押した場合にリダイレクトされるURLが定義されます。

Formsからシングル・サインオン情報へのアクセス

Formsアプリケーションで情報を認証するための認証サーバーを扱う場合は、必要に応じてGET_APPLICATION_PROPERTY()ビルトインを使用し、ログイン情報(シングル・サインオンのユーザーID、ユーザー識別名(dn)およびサブスクライバ識別名(サブスクライバdn))を取得できます。

authenticated_username := get_application_property(SSO_USERID);
userDistinguishedName := get_application_property(SSO_USRDN);
subscriberName := get_application_property(SSO_SUBDN);
config := get_application_property(CONFIG).

Formsアプリケーション開発者は、アクセス・クライアントとしてwebgateを使用している場合、OracleAS Single Sign-OnサーバーまたはOracle Access Managerを使用してSSOモードでシングル・サインオンのユーザーID、サブスクライバ識別名(サブスクライバdn)、ユーザー識別名(dn)などのSSO情報を取得できます。

Oracle Platform Security Services (OPSS)をFormsアプリケーションRADを格納するためのアイデンティティ・ストアとして使用する場合、SSO_USERDNおよびSSO_SUBDNプロパティはGET_APPLICATION_PROPERTY()ビルトイン経由では使用できません。

注意:

configは非シングル・サインオン・モードでも取得できます。

Oracle FormsとOracle Reportsの統合

Oracle Reportsは、認証サーバーが有効化された状態でインストールされます。

Oracle Formsアプリケーションで統合Oracle Reportsをコールする最適な方法は、Oracle FormsビルトインのRUN_REPORT_OBJECTを使用することです。

SSOを有効にしたOracle Forms Servicesアプリケーションからレポートを要求する場合、RUN_REPORT_OBJECTビルトインへの各コールを使用して、認証されたユーザーのSSOアイデンティティが暗黙的にReports Serverに渡されます。必要に応じてさらに認可チェックを行う場合は、このSSOアイデンティティはReports Serverへのユーザーを認証します。

非SSOモードで実行されているFormsアプリケーションは、SSOで保護されたReports Serverのレポートを実行できますが、Reports Serverで認可が要求されるとレポートは実行できなくなります。また、Web上でReports出力を取得する場合、ユーザーは自身のSSO資格情報を指定する必要があります。

Formsでのシングル・サインオンの有効化の詳細は、「シングル・サインオンでのFormsアプリケーションの保護」を参照してください。

ReportsでのSingle Sign-Onの構成の詳細は、Oracle Single Sign-Onの構成と管理を参照してください。

Oracle FormsとOracle Reportsの統合の詳細は、http://www.oracle.com/technetwork/developer-tools/formsでホワイト・ペーパーOracle FormsとOracle Reportsの統合を参照してください。

注意:

Oracle FormsおよびReports 12c以降、FormsからReportsに統合するには、Forms環境構成(default.env)で環境変数COMPONENT_CONFIG_PATHを設定する必要があります。値は、次のパスに設定する必要があります

DOMAIN_HOME/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_component_name>

別々のインスタンスにインストールしたFormsとReportsの統合

11g以降、FormsとReportsをそれぞれ別々のインスタンスで構成できます。別々のOracleインスタンスにインストールしたFormsとReportsを統合する必要が後で発生した場合は、Reports Serverとの通信の確立に必要なファイルを手動で構成する必要があります。詳細は、異なるインスタンス上にインストールされているReportsとFormsの間の通信を参照してください。

プロキシ・ユーザーの有効化と構成

Oracle Databaseでは、プロキシ・ユーザー認証をサポートしています。これによって、クライアント・ユーザーは、アプリケーション・サーバーを介してデータベースにプロキシ・ユーザーとして接続できます。

この項は、次のトピックで構成されています。

プロキシ・ユーザーの概要

Oracle E-Business Suiteなどの大規模なアプリケーションの多くでは、すべての接続で単一のユーザー名が使用されます。これにより、多くの場合、大企業に適した方法でユーザーを管理できますが、監査に関する問題が発生します。レコードの挿入、更新および削除のすべてでは、シングル・ユーザーにより実行されるようにデータベースでは見えます。監査をリストアするには、アプリケーション開発者は、カスタマイズされた監査コードをデータベースにおいて記述して実装する必要があります。コードでは、ユーザー名をアプリケーションからデータベースに渡す必要があります。この手順は、開発時間が必要になるだけでなく、Oracle Databaseで実装済の機能と重複することにもなります。2番目の問題はセキュリティです。シングル・ユーザーのアクセスは脆弱であり、脆弱なユーザーがアプリケーション・スキーマ全体にアクセスできてしまいます。これらの問題に対処するために、Oracle Databaseではプロキシ・ユーザー認証がサポートされています。これによって、クライアント・ユーザーはデータベースにアプリケーション・サーバー経由でプロキシ・ユーザーとして接続できます。

図9-6は、Formsプロキシ・ユーザーの認証を示します。

図9-6 プロキシ・ユーザーの認証

プロキシ・ユーザーの認証フローの図
  • 図の中央に示されているOracle Internet Directory (LDAP)を使用して、Oracle Formsでユーザーが認証されます。

  • Formsではプロキシ・ユーザーとして接続(パスワードを使用する場合と使用しない場合のどちらか)し、実際のユーザー名をOracle Internet Directoryリポジトリから渡します。

  • 通常、プロキシ・ユーザーは最低限の権限で構成されています。次の手順では、プロキシ・ユーザーには接続権限とセッション作成権限が割り当てられています。

  • データベースでは、プロキシ・ユーザー用にcreateセッション・アクションを受け付け、実際のユーザー名を監査とアクセス制御で使用します。

  • Oracle Internet Directoryのユーザーは、プロキシ・ユーザー・アカウントの構成がないとデータベースに単独では接続できません。

  • プロキシ・ユーザー・アカウントは、SQL *Plusにクライアントが直接接続できないようにします。

(Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化

Formsでプロキシ・サポートを使用できるようにするには、まずプロキシ・ユーザーを作成する必要があります。

この例では、プロキシ・ユーザー名はmidtierです。

  1. データベースにプロキシ・ユーザーを作成します。
    SQL> CREATE USER midtier IDENTIFIED BY midtierPW;
    
    
  2. midtierへの接続を割り当て、midtierへのセッション権限を作成します。
    SQL> GRANT CONNECT,CREATE SESSION TO midtier; 
    
    

    この時点で、このプロキシ・ユーザーは接続権限とセッション作成権限を持っていますが、どのユーザー・スキーマに対しても権限はありません。

  3. SSOユーザー名に対して1対1でマップしたデータベース・ユーザーを作成します(たとえば、SSOユーザー名がappuserであれば、appuserというデータベース・ユーザーを作成します)。
    SQL> CREATE USER appuser IDENTIFIED BY appuserPW;
    
  4. appuserにセッション作成権限を割り当てます。
    SQL> GRANT CREATE SESSION TO appuser; 
    
  5. midtierユーザーを介して接続できるようにするには、次のようにデータベース・ユーザーを変更する必要があります。
    SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier;
    

    これで、ユーザーappuserがmidtierアカウントを介して接続できるようになります。

    また、次のようにプロキシ・ユーザーからデータベースへの接続が可能なロールを定義することもできます。

    SQL> ALTER USER appuser GRANT CONNECT THROUGH midtier WITH ROLE <role_name>;
    

    プロキシ・ユーザー・アカウントを使用する必要があるすべてのデータベース・ユーザーについて、ステップ3とステップ4を繰り返します。

また、エンタープライズ・ユーザー・セキュリティと呼ばれるデータベース機能を使用することで、データベース・ユーザーをOracle Internet Directoryで設定することもできます。この方法を選択すると、プロキシ・ユーザーは、データベースにおいて定義された唯一のユーザーになり、管理が容易になるという利点があります。エンタープライズ・ユーザー・セキュリティの使用の詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』を参照してください。

アプリケーション・ユーザーのパスワードは、データベースに渡されません。アプリケーション・ユーザーの名前、プロキシ・ユーザーの名前とパスワードのみ渡されます。Formsでは、OCIコールを使用して、次のコマンドと同等のコマンドを発行します。

SQL> connect midtier[appuser]/midtierPW@databaseTnsName 

たとえば、必ずmidtierを使用してデータベースに接続するアプリケーションがあるとします。このmidtierからは、実際のユーザーがappuserであることがデータベースに通知されます。プロキシ・ユーザーを使用しない場合、SQLコマンドselect USER from DUALはmidtierを返しますが、プロキシ・ユーザーを使用すると、この問合せはappuserを返します。これは、ユーザーが他の方法で認証済であることを信頼し、パスワードなしでのユーザー接続を許可して接続のロールを付与するようにデータベースに指示していることになります。

注意:

  • 前述の手順のステップ3で、データベース・ユーザーは通常スキーマに付与されている権限の一部を持つように構成されます。たとえば、appuserには、次のSQLコマンドを使用して、スキーマapp_schemaに対するCREATE権限が付与されます。

    SQL> GRANT CREATE ON SCHEMA app_schema TO appuser

    したがって、appuserはプロキシ・ユーザー・モードのアクションの実行のみに限定されます。

  • データベース・ユーザー(appuserなど)がプロキシ・モードで接続すると、監査対象となるユーザー・アクションは、プロキシ・ユーザーのものではなくデータベース・ユーザーのものになります。ユーザー・アクションの監査の詳細は、http://www.oracle.com/technetwork/indexes/documentation/index.htmlでOracle Databaseのドキュメントを参照してください。

プロキシ・ユーザーに対するSSOの有効化

formweb.cfgにシングル・サインオン用の構成セクション(たとえばssoapp)を作成し、SSOProxyConnectyesssoModetrueまたはwebgateにそれぞれ設定します。

プロキシ接続で使用されるユーザー名とパスワードは、ログオン・ユーザー用のRADエントリに定義されています。ssoProxyConnect=yesに設定されている場合、Formsによって発行された接続文字列は有効になります。

SQL> connect RADUsername[appuserName]/RADPassword@databaseTnsName 

Formsアプリケーションへのアクセス

プロキシ・ユーザーの接続とシングル・サインオンを有効にした後、次の手順を実行してFormsアプリケーションにアクセスします。

  1. http://<host name>:<http port>/forms/frmservlet?config=ssoappというURLを使用して、Formsアプリケーションを実行します。ssoappはシングル・サインオン(ssoMode)を有効にした構成セクションの名前です。
  2. シングル・サインオンのユーザー名とパスワードを使用してログインします(「(Oracle Internet Directory) OIDを使用してSSOを有効化する場合のプロキシ・ユーザー接続の有効化」で取り上げたこの例では、シングル・サインオンのユーザー名はappuser、パスワードはappuserPWです)。

Formsビルトインにおける変更

ビルトインのget_application_propertyには、IS_PROXY_CONNECTION(ブール型)の新しいパラメータがあります。このパラメータが渡されたときに、フォームがプロキシ・ユーザー・モードで実行中の場合、コールによりtrueが返されます。それ以外の場合は、falseが返されます。

注意:

Oracle Platform Security Services (OPSS)をFormsアイデンティティ・ストアとして使用し、SSO_USERDNまたはSSO_SUBDNパラメータがget_application_propertyビルトインに渡される場合、空の文字列が返されます。これらのパラメータが有効なのは、Oracle Internet DirectoryがFormsアイデンティティ・ストアとして実行されている場合のみです。

Reportsとプロキシ・ユーザーとの統合

プロキシ・ユーザーがFormsで使用されていると、Reportsとの統合が維持されます。Oracle Reports管理者は、プロキシ・ユーザーを設定する必要があります。Reportsの構成ファイルで次の構成が完了していることを確認してください。

rwserver.confに、Forms構成セクション名(frm_config_name)とプロキシ・ユーザー・サポート用に構成されているデータベースSID名(dbname)を入力します。

<dbProxyConnKeys>

<dbProxyKey name="frm_config_name" database="dbname"/>

</dbProxyConnKeys>

rwservlet.propertiesで、プロキシ・モードが有効になっていることを確認します。

<enabledbproxy>yes</enabledbproxy>

Reports構成ファイルの詳細は、Oracle Reports Servicesの構成を参照してください。

インストール後の構成

この項では、インストール後のいくつかの手順について説明します。「設定プロセス」で行った選択内容によっては、これらの手順の実行が必要になります。

この項には次のトピックが含まれます:

Oracle Internet Directoryに対するForms J2EEアプリケーションの構成

Formsアプリケーションを介してプロキシ・ユーザーとして接続するユーザーは、認証サーバーとOracle Internet Directoryにも定義する必要があります。Oracle Formsでは、認証サーバーを介してこのユーザーを認証します(プロキシ・ユーザーを使用する際、Formsでは認証サーバーを使用する必要があります)。次に、Oracle Formsはデータベースにプロキシ・ユーザーとして接続しますが、その接続で使用するプロキシ・ユーザーの名前とパスワードは、アプリケーション・ユーザー用のOracle Internet DirectoryエントリのRADに格納されています。

関連付け/関連付けの解除ページにアクセスする手順:

  1. Fusion Middleware Controlを起動します。

  2. Formsのホーム・ページにナビゲートします。

  3. 「Forms」メニューから「Forms RuntimeのLDAPアソシエーション」を選択します。

    「Forms RuntimeのLDAPアソシエーション」ページが表示されます。

図9-7 Forms RuntimeのLDAPアソシエーション

図9-7の説明が続きます
「図9-7 Forms RuntimeのLDAPアソシエーション」の説明

この図は、Fusion Middleware Controlの「関連付け/関連付けの解除」ページのスクリーンショットです。

OIDホストをFormsアプリケーションに関連付けるには::

  1. Oracle Internet DirectoryホストをFormsアプリケーションに初めて関連付けるには、「OIDの関連付け/関連付けの解除」ページでそのFormsアプリケーションを選択します。「関連付け」をクリックします。

    「関連付け」ダイアログが表示されます。

  2. 表9-3の記載に従って、Oracle Internet Directoryホストの詳細を入力します。

  3. 「関連付け」をクリックします。

    OIDの関連付け/関連付けの解除」ページが再び表示されます。

    表9-3 Oracle Internet Directoryホストの詳細

    パラメータ 説明

    OIDホスト

    リストからOracle Internet Directoryホストを選択するか、「新規OIDホスト」を選択して新しいホストの詳細を追加します。

    新規OIDホスト

    Oracle Internet Directoryサーバーのホスト名。このフィールドは、新規のOracle Internet Directory (OID)ホストを選択して追加した場合に有効になります。

    新規OIDポート

    Oracle Internet Directoryでリスニングが行われているポート番号。このフィールドは、新規のOracle Internet Directoryホストを追加する場合に有効になります。

    ユーザー名

    Oracle Internet Directory管理者のユーザー名

    パスワード

    Oracle Internet Directory管理者パスワード

    SSLポートの使用

    Oracle Internet Directoryホストへの接続でSSLを使用する場合はこのボックスを選択します(この場合、指定するポート番号は、SSLポートとなります)。

OIDホストとFormsアプリケーションの関連付けを解除するには::

  1. OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付けの解除」をクリックします。

    「確認」ボックスが表示されます。

  2. 「はい」をクリックします。

    Oracle Internet DirectoryホストとFormsアプリケーションの関連付けが解除されます。

  3. 変更を有効にするために、Oracle WebLogic管理対象サーバーとフロントエンドOHSを再起動します。

    アクティブなFormsセッションからユーザーが誤って接続解除されないように、Oracle WebLogic管理対象サーバーとフロントエンドOHSの再起動は、ユーザーがFormsセッションを実行していない都合の良い時間に実行するようにします。

OIDホストをFormsアプリケーションに再度関連付けるには::

  1. OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付けの解除」をクリックします。
  2. OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付け」をクリックします。

    表9-3の記載に従って、Oracle Internet Directoryホストの詳細を入力します。

  3. Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択で説明されているように、アクセス・クライアント・ファイルを生成および適用します。

Formsアイデンティティ・ストアとしてのOracle Internet DirectoryまたはOracle Platform Securityの選択

Oracle Platform Security Services (OPSS)は、デフォルトのFormsアイデンティティ・ストアです。管理者がForms OIDの関連付けを実行すると、Oracle Internet DirectoryがFormsアイデンティティ・ストアとして設定されます。ユーザーは、「Forms RuntimeのLDAPアソシエーション」ページで各デプロイメントの「プライマリ・アイデンティティ・ストア」列のチェック・ボックスの選択を解除することにより、Formsアイデンティティ・ストアとしてOracle Platform Security Services (OPSS)に戻すことができます。

OAMパートナ・アプリケーションとしてのWeb層インスタンスの登録およびOAMポリシーの構成

ユーザーには、Oracle Access Manager (OAM)パートナ・アプリケーションとしてWeb層インスタンスを登録し、生成されたOAMポリシーを構成する手段として2つの選択肢が用意されています。

  • frmconfighelperスクリプト

  • OAMコンソール

    注意:

    Web層およびこれを管理するWeblogic Admin Serverは、いずれかの構成オプションの後に再起動する必要があります。

frmconfighelperスクリプトを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

frmconfighelperスクリプトは、Oracle Access ManagerのRREGツールを使用して、パートナ・アプリケーションの登録を実行した後、OAM上でポリシーを構成します。ポリシー構成の詳細はすべて、Forms OAMポリシー構成ファイル$FMW_HOME/forms/provision/FormsOAMRegRequest.xmlに含まれています。ユーザーは、次の操作を行う必要があります。

  1. Oracle Access Managerサーバー上にあるRREG.tarをダウンロードし、Oracle FMW 12c $FMW_HOMEディレクトリで展開します。
  2. frmconfighelperスクリプトを実行し、enable_ssoオプションを渡します。

Oracle Access Manager (OAM)コンソールを使用したWeb層パートナ・アプリケーションの登録およびポリシーの登録

ユーザーは、次の手順を実行する必要があります。

  1. Web層インスタンスでWebゲートを構成にします。

    Webgate 12cはFMW 12c Oracle HTTP Serverとともにインストールされますが、OHSインスタンスでは構成されないので、構成する必要があります。ユーザーは、FMW 12cのドキュメント内のOracle HTTP Server 12c Webゲートに関する指示に従うことも、frmconfighelperスクリプトを実行してenable_webgateオプションを渡すこともできます。frmconfighelperスクリプトの詳細は、このドキュメントの「Oracle Formsのユーティリティおよびスクリプト」を参照してください。

  2. OAMコンソールでWebゲートを作成し、生成されたポリシーを構成します。

    OAMコンソールを使用してWebGate 11gエージェントを作成し、OHSホストおよびポート情報を渡し、保護されているリソース・リストに次を追加します。

    /forms/frmservlet?*oamMode=true*

    OAMコンソールを使用して生成されたポリシー内のリソースを編集し、除外リストに次を追加します。

    /* and /.../*

    注意:

    同じポリシー内でFormsおよびReportsを構成する場合、保護されているリソース・リストに/reports/rwservlet/*も追加します。

  3. ObAccessClient.xmlおよびcwallet.ssoをOAMサーバーから、ディレクトリDOMAIN_HOME/config/fmwconfig/components/OHS/<ohs instance>/webgate/configの下にある関連するOHSにコピーします。

    frmconfighelpスクリプトの使用の詳細は、「Oracle Formsのユーティリティおよびスクリプト」を参照してください

注意:

webgateアクセス・クライアントがOracle Access Manager 11gと連携するようにインストールして構成した後に、ユーザーがアクセス・クライアントとしてwebgateを使用して初めてFormsアプリケーションにアクセスする際、java例外エラーが表示されます。この問題を回避するには、HTTPOnlyパラメータを無効にする必要があります。これを実行する手順を次に示します。

  1. OAM管理コンソールにログインします。

  2. 「認証スキーム」を選択し、「LDAPScheme」にナビゲートします。

  3. ssoCookieパラメータ値にdisablehttponlyを設定します。

  4. 「適用」クリックします。

Oracle Formsのリモート・アクセス記述子の管理

リモート・アクセス記述子またはRADは、アプリケーションがSSO対応である場合に、Oracle FormsのランタイムがOracle Databaseに接続するために使用されます。

RADは、デフォルトではOPSSに格納されています。RADは、Fusion Middleware Control内のリソース管理ページで管理できます。

リソース管理へのアクセス

リソース管理ページにアクセスするには、次の手順を実行します。

  1. Fusion Middleware Controlにログインします。
  2. 左上隅の近くにあるドメイン名の横のアイコンサイドバーをクリックしてサイドバーを展開します
  3. 「Forms」ノードを展開し、目的のFormsインスタンス(forms1など)をクリックします。
  4. 左上の近くにある「Forms」を展開します。
  5. 「セキュリティ」を選択し、RAD情報を格納するためにOPSSとOracle Internet Directory (LDAP)のどちらを使用しているかに応じて、OPSSリソース管理またはLDAPリソース管理を選択します。

    図9-8 「Forms」ドロップダウン

    図9-8の説明が続きます
    「図9-8 「Forms」ドロップダウン」の説明
  6. リソース管理ページでは、リソースを追加、編集または削除できます。

    図9-9 リソース・ページ

    図9-9の説明が続きます
    「図9-9 リソース・ページ」の説明

リソース移行アシスタント

「リソース移行アシスタント」ページでは、Oracle Internet Directory (OID)に格納されているOracle Forms RADをOracle Platform Security Services (OPSS)に移行できます。このユーティリティは、OIDからOPPSへの移行のみを目的としています。

「リソース移行アシスタント」ページにアクセスするには、次の手順を実行します。

  1. Fusion Middleware Controlにログインします。
  2. 左上隅の近くにあるドメイン名の横のアイコンサイドバーをクリックしてサイドバーを展開します
  3. 「Forms」ノードを展開し、目的のFormsインスタンス(forms1など)をクリックします。
  4. 左上の近くにある「Forms」を展開します。
  5. 「セキュリティ」「リソース移行」の順に選択します。
  6. 「リソース移行」ページが表示されます。移行プロセスのためにOracle Internet Directory (OID)サーバーにアクセスするには、このサーバーに関する情報を入力する必要があります。この選択内容は、ページにアクセスした後で「OIDの接続」ボタンをクリックすることにより、変更できます。

    図9-10 リソース移行アシスタント

    図9-10の説明が続きます
    「図9-10 リソース移行アシスタント」の説明

    この図は、リソース移行アシスタントでのログオンを示しています。

  7. 「リソース移行」ページでは、選択したOIDで見つかったリソースがすべて表示されます。OPSSに移行するエントリを表内で選択し、「移行」をクリックします。転送のステータスがポップアップ・ダイアログに表示されます。

    図9-11 「リソース移行アシスタント」ページ

    図9-11の説明が続きます
    「図9-11 「リソース移行アシスタント」ページ」の説明