Oracle Access Managerおよびシングル・サインオン
Oracle Access ManagerはJavaプラットフォームのEnterprise Edition (Java EE)に基づいた、エンタープライズ・レベルのセキュリティ・アプリケーションで、機密情報へのアクセスを制限したり、認証や認可のサービスを一元化します。Oracle Access Managerは、Oracle Fusion Middlewareのコンポーネントの1つで、認証と認可のためのシングル・サインオン・ソリューションです。
認証サーバーを使用すると、アプリケーションで共有認証トークンまたは認証局を使用してユーザーを認証できるようになります。あるアプリケーションで認証されたユーザーは、同一の認証ドメイン内にある他のすべてのアプリケーションでも自動的に認証されます。
Formsアプリケーションでは、Oracle Internet DirectoryまたはOracle Platforms Security Services (OPSS)からデータベース接続情報を取得するためにのみ、シングル・サインオン・ソリューションが使用されます。Oracle Forms 12cに導入されているSSOログアウト機能の1つを使用してFormsアプリケーションがコーディングされていないかぎり、アプリケーションを終了してもシングル・サインオン・ログアウトは実行されません。同様に、FormsのSSOログアウト機能の1つを使用してアプリケーションがコーディングされていないかぎり、シングル・サインオン・セッションからログアウトしてもアクティブなFormsセッションは終了しません。データベース・セッションは、サーバーのFormsランタイム(frmweb.exe
など)が(通常は明示的にフォームを終了することによって)終了するまで存続します。
Oracle Forms Servicesでは、サーバー・インスタンスで実行されるすべてのFormsアプリケーションに対するシングル・サインオンが、最初からサポートされています。Formsアプリケーションでさらにコーディングを行う必要はありません。
ノート:
Oracle Forms Servicesアプリケーションは、OID (またはOPSS)と認証サーバーの組合せを使用して、シングル・サインオン環境で実行されます。サポートされているバージョンは、製品動作保証ガイドを参照してください。
- 動作保証の詳細は、Oracle Fusion Middlewareでサポートされるシステム構成を参照してください。
- Oracle Access Managerの詳細は、「Access Managerでのシングル・サインオンの理解」を参照してください。
- Oracle Internet Directoryの詳細は、「Oracle Identity Manager用のSSOプロバイダの構成」を参照してください。
- Oracle Platform Security Servicesの詳細は、「Oracle Platform Security Servicesの概要」を参照してください。
カスタムFormsアプリケーションをシングル・サインオン・モードで実行している場合、Forms JavaEEアプリケーションを再デプロイして、そのコンテキスト・ルート・サーブレット別名をオーバーライドすると、次のエラーが発生する可能性があります。
FRM-60209 error obtaining credentials from Oracle Platform Security Services: missing resource FRM-60209 error obtaining credentials from Oracle Platform Security Services in oracle.forms.servlet.LBServletBundle
- カスタムForms JavaEEアプリケーションをデプロイします。
次の例では、salesおよびsalesservletをコンテキスト・ルートおよびアプリケーションとしてそれぞれ使用します。
context-root forms-> sales servlet-alias frmservlet-> salesservlet
- forms.confファイルにマッピングを作成します。
これをsalesアプリケーションで行う方法の例を、次に示します。
<Location /sales/> SetHandler weblogic-handler WebLogicCluster example.com:9010 DynamicServerList OFF </Location>
$ORACLE_HOME/forms/provision
ディレクトリに格納されたForms OAM登録メタデータ・ファイルFormsOAMRegRequest2Ports.xml
およびFormsOAMRegRequest.xml
に、次を追加します。エントリ 変更前 変更後 protectedResourcesList
<protectedResourcesList> <resource>/forms/frmservlet?*oamMode=true*</resource> <resource>/reports/rwservlet/*</resource> </protectedResourcesList>
<protectedResourcesList> <resource>/forms/frmservlet?*oamMode=true*</resource> <resource>/sales/salesservlet?*oamMode=true*</resource> <resource>/reports/rwservlet/*</resource> </protectedResourcesList>
excludedResourcesList
<excludedResourcesList> <resource>/forms/frmservlet?*ifcmd=startsession*</resource> <resource>/forms/lservlet*</resource> <resource>/forms/lservlet/**</resource> <resource>/forms/java/**</resource> <resource>/forms/html/**</resource> </excludedResourcesList>
<excludedResourcesList> <resource>/forms/frmservlet?*ifcmd=startsession*</resource> <resource>/forms/lservlet*</resource> <resource>/forms/lservlet/**</resource> <resource>/forms/java/**</resource> <resource>/forms/html/**</resource> <resource>/sales/salesservlet?*ifcmd=startsession*</resource> <resource>/sales/lservlet*</resource> <resource>/sales/lservlet/**</resource> <resource>/sales/java/**</resource> <resource>/sales/html/**</resource> </excludedResourcesList>
frmconfighelper
スクリプトを使用して、パートナ・アプリケーション登録を実行します。- 次のOPSS付与を付与します。WLSTに接続して次のコマンドを実行します。
grantPermission(codeBaseURL="file:${domain.home}/servers/${weblogic.Name}/tmp/ _WL_user/salesapp_14.1.2/-", permClass="oracle.security.jps.service.keystore.KeyStoreAccessPermission", permTarget="stripeName=salesapp,keystore=formsks,alias=*,Action=*")
- WebLogicサーバーを再起動します。
Oracle Formsで使用されるシングル・サインオン・コンポーネント
認証サーバーを使用したシングル・サインオン・モードでFormsアプリケーションを実行するときに関連する、Oracle Fusion Middlewareの様々なシングル・サインオン・コンポーネントがあります。
次の図に、Forms Servicesのシングル・サインオン・デプロイメント設定に関連する、様々なコンポーネントのおおまかな概要を示します。
図-26 OPSSをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント

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

「図-27 (Oracle Internet Directory) OIDアイデンティティをFormsアイデンティティ・ストアとしたForms Servicesのシングル・サインオン・デプロイメント設定に関連するコンポーネント」の説明
前述の図で示されたコンポーネントの説明を次に示します。
-
認証サーバー
-
Oracle Access Manager (OAMサーバー) - Webシングル・サインオン、認証、認可を含む全セキュリティ機能を提供するOracle FMW認証サーバー。Forms Servicesを実行するときに、アイデンティティ・ストアとしてOracle Internet Directoryを使用できます。Oracle Access Managerは、Oracle HTTP Serverに対して構成されるアクセス・クライアントとして
webgate
を使用できます。
-
-
アクセス・クライアント
-
webgate
- WebGateはシングル・サインオン・サポートを提供します。これは受信HTTPリクエストをインターセプトし、認証のためにそれらをアクセス・サーバーに転送します。Oracle Forms 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 Forms環境では、Formsのアイデンティティ・ストアがOIDではなくOPSSである場合、OAMで使用することが保証されている任意のLDAPサーバーを使用できます。
ノート:
Oracle Internet Directory (OID)がFormsアイデンティティ・ストアとして使用される場合、同じOracle Internet Directory (OID)インスタンスをOracle Access Managerのプライマリ・アイデンティティ・ストアとして設定する必要があります。
-
Forms Servlet - このOracle Forms Servicesコンポーネントは、Formsアプリケーションを起動する最初のユーザー・リクエストを受け取ります。Formsサーブレットは、アプリケーションに認証が必要かどうかを検出してリクエストを認証サーバーに転送し、Oracle Internet Directoryにアクセスしてデータベース接続情報を取得します。
認証フロー
次の図に、認証サーバーで保護されたアプリケーションURLをユーザーが最初にリクエストしたときの、Oracle Formsでの認証サーバー・サポートの認証フローを示します。
次のステップでは、前述の図で示す認証フローについて説明します:
- ユーザーは、
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
のように指定し、<ssoapp>
はシングル・サインオン(ssoMode
)が有効化されたフォーム構成ファイルのセクションの名前です。 - Formsサーブレットは、認証サーバー・ログイン・ページにユーザーをリダイレクトします。
- ユーザーが、ログイン・フォームでユーザー名とパスワードを指定します。
- Oracle Internet Directory (LDAPサーバー)で、パスワードが検証されます。
- ユーザーは、
sso_userid
情報とともにそのURLにリダイレクトされます。 - FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。
- Formsサーブレットは、フォーム実行セッションに
sso_userid
パラメータを設定し、アプレットのFormsリスナー・サーブレットへの接続を許可します。 - FormsサーブレットがFormsサーバーを起動します。
図-30に、別のパートナ・アプリケーションで認証されたユーザーが、認証サーバーで保護されたアプリケーションをリクエストした場合におけるOracle Forms Servicesのシングル・サインオン・サポートの認証フローを示します。
次のステップでは、前述の図で示す認証フローについて説明します:
- ユーザーは、Forms URLをリクエストします。
- Formsサーブレットは、認証サーバーおよびそのログイン・ページにユーザーをリダイレクトします。
- ユーザーのリクエストが、
sso_userid
情報とともにURLにリダイレクトされます。 - FormsサーブレットがFormsアイデンティティ・ストアからデータベース資格証明を取得します。
- Formsサーブレットは、ランフォーム・セッションに
sso_userid
パラメータを設定し、アプレットがFormsリスナー・サーブレットに接続します。 - FormsサーブレットがFormsサーバーを起動します。