Webコンテンツへのユーザー・アクセスを制御し、システムへの侵入者からサイトを保護する機能は非常に重要です。この章では、Oracle Forms Servicesにおけるセキュリティのアーキテクチャと構成について説明します。
関連項目: セキュリティの詳細は、次のドキュメントを参照してください。
|
Oracle Forms Servicesでのシングル・サインオンは、Oracle HTTP Server用のOracleモジュールであるwebgate
を介して使用できます。webgate
アクセス・クライアントは、Oracle Access Manager (OAM)に対してユーザーを認証します。
Formsアプリケーションでは、データベース接続文字列がアプリケーションのリクエストとともに渡されます。渡されない場合は、ログイン・ダイアログが表示されます。シングル・サインオン環境でデータベース接続情報を取得するには、ユーザーのシングル・サインオン・サーバー名、認証されたユーザー名およびユーザーが起動をリクエストしているアプリケーション名を結合して作成される一意キーの値を、Formsサーブレットを使用してOracle Internet Directoryに問い合せます。
リソース・アクセス記述子(RAD)は、各ユーザーおよびアプリケーションに対して定義される、必要なデータベース接続情報を含むOracle Internet Directoryのエントリです。Forms ServletはRADからデータベース接続情報を読み取って、Forms Webアプリケーションを起動するコマンドラインとともに渡します。Forms認証はまだデータベース中心ですが、webgate
およびFormsサーブレットはWebベースの認証サーバー環境に統合されています。
従来、Formsアプリケーションでは、アプリケーション・ユーザーの認証にデータベースが使用されています。シングル・サインオン(SSO)でOracle Forms Servicesを使用するには、ユーザー・アカウントとその接続情報がOracle Internet Directoryで利用可能である必要があります。Oracle Internet Directoryでは、PL/SQL、JavaまたはOracle Delegated Administration Servicesを使用した複数の方法でユーザー・データがプロビジョニングされます。Oracle Delegated Administration Servicesは、Oracle Single Sign-On Serverユーザーおよび委任管理者用のWebベースのユーザー・インタフェースであり、権限を持つOracle Internet Directoryのセルフサービス・データの管理に使用します。
Oracle Internet Directoryでユーザー・アカウントを作成した後は、ユーザーによるFormsアプリケーションの初回リクエスト時に、(このアプリケーションに必要なデータベース接続情報をユーザーが知っていることを前提として)リソース・アクセス記述子(RAD)のエントリを動的に作成できます。
もうひとつの選択肢は、Oracle Delegated Administration Servicesで作成可能なRADのエントリを使用することです。デフォルトのRADエントリには、Oracle Single Sign-On Serverで認証されるすべてのユーザーがアクセスできます。特定のFormsアプリケーションをWebで実行しているときに、すべてのユーザーが同じデータベース接続情報を共有している場合はデフォルトのRADを使用します。このように、ユーザーはそのOracle Single Sign-On Server接続情報によって個別に認証されますが、デフォルトのRADエントリで定義されたアプリケーションでは、すべてのユーザーが共通のデータベース接続(情報)を共有します。
Formsアプリケーションに対してシングル・サインオンを有効化する場合、次の機能でFormsアプリケーションを保護できます。
以前のOracle Forms Servicesの一部のリリースでは、特定のアプリケーションおよびユーザーでRAD定義が見つからない場合に、エラー・メッセージが表示され、認証済にもかかわらずユーザーはそのFormsアプリケーションを実行できませんでした。Oracle Forms Servicesのこのリリースでは、RAD定義が存在しない場合は、ユーザーがOracle Forms Servicesを構成してリアルタイムにこのアプリケーションのRADを作成できます。DASページにリダイレクトする機能は、シングル・サインオン・パラメータssoDynamicResourceCreate
で実現しています。
以前のOracle Forms Servicesの一部のリリースでは、データベース・パスワードが期限切れの場合、Oracle Internet DirectoryのRAD情報は更新されませんでした。そのため、ユーザーは、Formsアプリケーションへの接続時にデータベース・パスワードを更新していました。Oracle Forms Servicesのこのリリースでは、Formsによるデータベース・パスワードの更新に伴ってOracle Internet DirectoryのRAD情報も自動的に更新されます。Oracle Forms Servicesのこの機能を使用するために、追加構成を行う必要はありません。
ユーザーによるOracle Forms Services URLの初回リクエスト時など(パートナ・アプリケーションからのリクエスト時も含む)、Oracle Forms Servicesにおけるシングル・サインオン・サポートの認証フローの詳細は、第9.1.2項「認証フロー」を参照してください。
Oracle Forms Servicesのセキュリティの構成は、Oracle Fusion Middleware Controlで行われます。画面ごとにオンライン・ヘルプを利用できます。詳細は、第4章「Forms Servicesの構成と管理」および第9章「Oracle Access ManagerでのForms Servicesの使用」を参照してください。
Oracle Platform Security ServicesまたはOracle Internet Directoryでリソースを動的に作成できるようにOracle Forms Servicesを構成できます。
詳細は、第9章「Oracle Access ManagerでのForms Servicesの使用」を参照してください。
Oracle Formsの構成と保護の詳細は、次の各章を参照してください。
RADのセキュリティを強化し、OID管理者が閲覧できないようにするには、次の手順に従います。
---aci-change.ldif---
で囲まれた内容をaci-change.ldif
ファイルにコピーします
---aci-change.ldif--- dn: cn=Extended Properties,%s_OracleContextDN% changetype: modify delete: orclaci orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) by guidattr=(orclOwnerGUID)(read,search,compare,write) by dnattr=(orclresourceviewers) (read,search, compare, write) by groupattr=(orclresourceviewers) (read,search, write) by * (none) - add: orclaci orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) DenyGroupOverride by guidattr=(orclOwnerGUID)(read,search,compare,write) by dnattr=(orclresourceviewers) (read,search, compare, write) by groupattr=(orclresourceviewers) (read,search, write) by * (none) ---aci-change.ldif---
注意: aci-change.ldif の中で、orclaci: access to attr= から始まる行は、by * (none) で終わる単独の行なので途中に改行を入れないようにする必要があります。 |
このLDIFファイルにある%s_OracleContextDN%
を、レルム固有のOracleコンテキストが持つ識別名(DN)に置き換えます。
たとえば、配布でのDNがdc=acme,dc=com
である場合、レルム固有のOracleコンテキストはcn=OracleContext,dc=acme,dc=com
です。
OID層で次のコマンドを実行します。
ldapmodify -p <port> -h <host> -D cn=orcladmin -q -v -f aci-change.ldif
このコマンドでは、コマンドライン・パラメータとしてcn=orcladmin
パスワードを指定していないので、実行するとこのパスワードを要求するメッセージが表示されます。
これらの変更を取り消すには、.ldif
ファイルにある次の内容を使用して同じコマンドを実行します(前述の注意に留意してください)。
---aci-revert.ldif--- dn: cn=Extended Properties,%s_OracleContextDN% changetype: modify delete: orclaci orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) DenyGroupOverride by guidattr=(orclOwnerGUID)(read,search,compare,write) by dnattr=(orclresourceviewers) (read,search, compare, write) by groupattr=(orclresourceviewers) (read,search, write) by * (none) - add: orclaci orclaci: access to attr=(orclUserIDAttribute,orclPasswordAttribute) by guidattr=(orclOwnerGUID)(read,search,compare,write) by dnattr=(orclresourceviewers) (read,search, compare, write) by groupattr=(orclresourceviewers) (read,search, write) by * (none) ---aci-revert.ldif---