この章の内容は次のとおりです。
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
認証サーバーを使用したシングル・サインオン・モードでFormsアプリケーションを実行するときに関連する、Oracle Fusion Middlewareの様々なシングル・サインオン・コンポーネントがあります。図9-1および図9-2に、Forms Servicesのシングル・サインオン・デプロイメント設定に関連する、様々なコンポーネントの上位レベルの概要を示します。
図9-1 OPSSをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント
この図は、OPSSをFormsアイデンティティ・ストアとして持つSSOを示しています。
図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での認証サーバー・サポートの認証フローを示します。
この図は、最初のクライアント・リクエストの認証フローを示しています。
この図は、最初のクライアント・リクエストの認証フローを示しています。
ユーザーは、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
を指定して)シングル・サインオンを有効にしたセクションの名前です。
Formsサーブレットは、認証サーバー・ログイン・ページにユーザーをリダイレクトします。
ユーザーが、ログイン・フォームでユーザー名とパスワードを指定します。
Oracle Internet Directory (LDAPサーバー)で、パスワードが検証されます。
ユーザーは、sso_userid
情報とともにそのURLにリダイレクトされます。
FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。
Formsサーブレットは、フォーム実行セッションにsso_userid
パラメータを設定し、アプレットのFormsリスナー・サーブレットへの接続を許可します。
FormsサーブレットがFormsサーバーを起動します。
図9-5に、別のパートナ・アプリケーションで認証されたユーザーが、認証サーバーで保護されたアプリケーションをリクエストした場合におけるOracle Forms Servicesのシングル・サインオン・サポートの認証フローを示します。
この図は、後続のクライアント・リクエストの認証フローを示しています。
ユーザーは、Forms URLをリクエストします。
Formsサーブレットは、認証サーバーおよびそのログイン・ページにユーザーをリダイレクトします。
ユーザーのリクエストが、sso_userid
情報とともにURLにリダイレクトされます。
FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。
Formsサーブレットは、ランフォーム・セッションにsso_userid
パラメータを設定し、アプレットがFormsリスナー・サーブレットに接続します。
FormsサーブレットがFormsサーバーを起動します。
Formsアプリケーションでは、シングル・サインオンは初期状態で有効ではありません。
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アプリケーションの保護」を参照してください。 |
このリリースの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
ファイルで行われます。シングル・サインオン・パラメータssoMode
にFALSE
以外の有効な値が設定されている場合は、アプリケーションが認証サーバーによる認証を必要としていることを示します。
このパラメータによって、Forms Servicesインスタンスで、データベース・パスワードを取得するためにシングル・サインオンに依存するアプリケーション・タイプと依存しないアプリケーション・タイプの両方を処理できます。シングル・サインオンはformsweb.cfg
ファイルで構成するので、Fusion Middleware Controlをユーザーが使用し、認証のこの側面を管理できます。
Oracle Forms Services 12cでは、データベース・パスワードが期限切れになり、かつシングル・サインオン・モードで実行されるForms Servicesアプリケーションによりパスワードが更新された場合、ユーザーが入力した新しいパスワードが、Formsアイデンティティ・ストアでこのアプリケーションのリソース・アクセス記述子(RAD)を更新します。この機能により、Formsユーザーのデータベース・パスワードが変更されても、Formsでの認証サーバーによるそのユーザーの認証が引き続き機能します。ただし、Oracle FormsではなくSQL*Plusでパスワードが変更された場合、データベース接続文字列は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セクションで設定した同一のパラメータをオーバーライドします。
アプリケーションのシングル・サインオンを有効にするには:
Fusion Middleware Controlを起動します。
「Forms」メニューから「Web構成」を選択します。
アプリケーションの構成セクションをリストする行を選択します。
「セクション」リージョンの「表示」ドロップ・ダウン・リストからssoを選択します。
「セクション」リージョンで、ssoMode
を含む行を選択します。
「値」フィールドにwebgate
またはTRUE
と入力します。
「適用」をクリックしてformsweb.cfg
ファイルを更新します。
選択したアプリケーションでシングル・サインオンが有効になります。
アプリケーションのシングル・サインオンを無効にするには:
ssoMode
パラメータを使用して、Forms Servicesアプリケーションを認証サーバーに接続できます。シングル・サインオン・パラメータssoMode
に設定できる値を次に示します。
ssoMode
をTRUE
またはwebgate
に設定すると、アプリケーションがWebゲートをアクセス・クライアントとして使用してOAMサーバーによる認証を要求することを示します。Webゲートは、手動でインストールして構成する必要があります。
ssoMode
をFALSE
に設定すると、アプリケーションが認証サーバーによる認証を要求しないことを示します。
デフォルトでは、Oracle Forms Servicesアプリケーションは、シングル・サインオン・モードで実行するようには構成されません。ssoModeパラメータは、formsweb.cfgファイル内の次の2つの場所で設定できます。
formsweb.cfg
のデフォルト・セクションでssoMode
に値true
またはwebgate
を設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます
Oracle Forms Servicesアプリケーションの名前を付けた構成でssoMode
パラメータを設定します。これにより、この特定のアプリケーションでのみ、シングル・サインオンが有効または無効になります。次に例を示します。
[myApp]
form=myFmx
ssoMode=true
ssoProxyConnect
パラメータを使用することにより、ユーザーは、Oracle Formsでデータベースへのプロキシ接続を使用するかどうかを制御できます。ssoProxyConnect
パラメータは、次の2つの方法で設定できます。
formsweb.cfg
のデフォルト・セクションでssoProxyConnect
に値yes
を設定します。これにより、このForms Servicesインスタンスによってすべてのアプリケーションがシングル・サインオン・モードで実行されます。
ssoProxyConnect
パラメータを実行時のURLで渡します(例: http://<host>:<port>/?config=myapp&……&ssoProxyConnect=yes
)。
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
パラメータを使用して、特定のアプリケーションにユーザーの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
パラメータは動的RAD作成機能(ssoDynamicResourceCreate= true
)とともに使用します。このパラメータでは、ユーザーがHTMLフォーム(要求されたアプリケーションのRADエントリを動的に作成するためのフォーム)で取消しボタンを押した場合にリダイレクトされるURLが定義されます。
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 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>
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にクライアントが直接接続できないようにします。
Formsでプロキシ・サポートを使用できるようにするには、まずプロキシ・ユーザーを作成する必要があります。
この例では、プロキシ・ユーザー名はmidtier
です。
また、エンタープライズ・ユーザー・セキュリティと呼ばれるデータベース機能を使用することで、データベース・ユーザーを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のドキュメントを参照してください。
formweb.cfg
にシングル・サインオン用の構成セクション(たとえばssoapp
)を作成し、SSOProxyConnect
をyes
、ssoMode
をtrue
またはwebgate
にそれぞれ設定します。
プロキシ接続で使用されるユーザー名とパスワードは、ログオン・ユーザー用のRADエントリに定義されています。ssoProxyConnect=yes
に設定されている場合、Formsによって発行された接続文字列は有効になります。
SQL> connect RADUsername[appuserName]/RADPassword@databaseTnsName
プロキシ・ユーザーの接続とシングル・サインオンを有効にした後、次の手順を実行してFormsアプリケーションにアクセスします。
http://<host name>:<http port>/forms/frmservlet?config=ssoapp
というURLを使用して、Formsアプリケーションを実行します。ssoapp
はシングル・サインオン(ssoMode
)を有効にした構成セクションの名前です。 appuser
、パスワードはappuserPW
です)。ビルトインの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アイデンティティ・ストアとして実行されている場合のみです。
プロキシ・ユーザーが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の構成を参照してください。
この項では、インストール後のいくつかの手順について説明します。「設定プロセス」で行った選択内容によっては、これらの手順の実行が必要になります。
この項には次のトピックが含まれます:
Formsアプリケーションを介してプロキシ・ユーザーとして接続するユーザーは、認証サーバーとOracle Internet Directoryにも定義する必要があります。Oracle Formsでは、認証サーバーを介してこのユーザーを認証します(プロキシ・ユーザーを使用する際、Formsでは認証サーバーを使用する必要があります)。次に、Oracle Formsはデータベースにプロキシ・ユーザーとして接続しますが、その接続で使用するプロキシ・ユーザーの名前とパスワードは、アプリケーション・ユーザー用のOracle Internet DirectoryエントリのRADに格納されています。
関連付け/関連付けの解除ページにアクセスする手順:
Fusion Middleware Controlを起動します。
Formsのホーム・ページにナビゲートします。
「Forms」メニューから「Forms RuntimeのLDAPアソシエーション」を選択します。
「Forms RuntimeのLDAPアソシエーション」ページが表示されます。
この図は、Fusion Middleware Controlの「関連付け/関連付けの解除」ページのスクリーンショットです。
OIDホストをFormsアプリケーションに関連付けるには::
Oracle Internet DirectoryホストをFormsアプリケーションに初めて関連付けるには、「OIDの関連付け/関連付けの解除」ページでそのFormsアプリケーションを選択します。「関連付け」をクリックします。
「関連付け」ダイアログが表示されます。
表9-3の記載に従って、Oracle Internet Directoryホストの詳細を入力します。
「関連付け」をクリックします。
「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アプリケーションの関連付けを解除するには::
「OIDの関連付け/関連付けの解除」ページから、Formsアプリケーションを選択します。「関連付けの解除」をクリックします。
「確認」ボックスが表示されます。
「はい」をクリックします。
Oracle Internet DirectoryホストとFormsアプリケーションの関連付けが解除されます。
変更を有効にするために、Oracle WebLogic管理対象サーバーとフロントエンドOHSを再起動します。
アクティブなFormsセッションからユーザーが誤って接続解除されないように、Oracle WebLogic管理対象サーバーとフロントエンドOHSの再起動は、ユーザーがFormsセッションを実行していない都合の良い時間に実行するようにします。
OIDホストをFormsアプリケーションに再度関連付けるには::
Oracle Platform Security Services (OPSS)は、デフォルトのFormsアイデンティティ・ストアです。管理者がForms OIDの関連付けを実行すると、Oracle Internet DirectoryがFormsアイデンティティ・ストアとして設定されます。ユーザーは、「Forms RuntimeのLDAPアソシエーション」ページで各デプロイメントの「プライマリ・アイデンティティ・ストア」列のチェック・ボックスの選択を解除することにより、Formsアイデンティティ・ストアとしてOracle Platform Security Services (OPSS)に戻すことができます。
ユーザーには、Oracle Access Manager (OAM)パートナ・アプリケーションとしてWeb層インスタンスを登録し、生成されたOAMポリシーを構成する手段として2つの選択肢が用意されています。
frmconfighelperスクリプト
OAMコンソール
注意:
Web層およびこれを管理するWeblogic Admin Serverは、いずれかの構成オプションの後に再起動する必要があります。
frmconfighelperスクリプトは、Oracle Access ManagerのRREGツールを使用して、パートナ・アプリケーションの登録を実行した後、OAM上でポリシーを構成します。ポリシー構成の詳細はすべて、Forms OAMポリシー構成ファイル$FMW_HOME/forms/provision/FormsOAMRegRequest.xml
に含まれています。ユーザーは、次の操作を行う必要があります。
enable_sso
オプションを渡します。ユーザーは、次の手順を実行する必要があります。
Web層インスタンスでWebゲートを構成にします。
Webgate 12cはFMW 12c Oracle HTTP Serverとともにインストールされますが、OHSインスタンスでは構成されないので、構成する必要があります。ユーザーは、FMW 12cのドキュメント内のOracle HTTP Server 12c Webゲートに関する指示に従うことも、frmconfighelperスクリプトを実行してenable_webgate
オプションを渡すこともできます。frmconfighelperスクリプトの詳細は、このドキュメントの「Oracle Formsのユーティリティおよびスクリプト」を参照してください。
OAMコンソールでWebゲートを作成し、生成されたポリシーを構成します。
OAMコンソールを使用してWebGate 11gエージェントを作成し、OHSホストおよびポート情報を渡し、保護されているリソース・リストに次を追加します。
/forms/frmservlet?*oamMode=true*
OAMコンソールを使用して生成されたポリシー内のリソースを編集し、除外リストに次を追加します。
/* and /.../*
注意:
同じポリシー内でFormsおよびReportsを構成する場合、保護されているリソース・リストに/reports/rwservlet/*
も追加します。
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パラメータを無効にする必要があります。これを実行する手順を次に示します。
OAM管理コンソールにログインします。
「認証スキーム」を選択し、「LDAPScheme」にナビゲートします。
ssoCookie
パラメータ値にdisablehttponlyを設定します。
「適用」クリックします。