| Oracle® Fusion Middleware Oracle Access Management管理者ガイド 11g リリース2 (11.1.2.3) for All Platforms E61950-08 |
|
![]() 前 |
![]() 次 |
この項では、Oracle ADFセキュリティおよびOPSS SSOフレームワークを使用するWebアプリケーションと、ユーザー認証用のAccess Manager SSOセキュリティ・プロバイダの統合方法について説明します。
Webアプリケーションを実行する前に、Access Managerセキュリティ・プロバイダ用にアプリケーションのターゲットOracle WebLogic Server上にドメイン・レベルのjps-config.xmlファイルを構成する必要があります。
ドメイン・レベルのjps-config.xmlファイルは次のパスにあり、デプロイされたアプリケーションのjps-config.xmlファイルと混同しないようにします。
$DOMAIN_HOME/config/fmwconfig/jps-config.xml
ノート:
ドメイン・レベルのjps-config.xmlファイルを、デプロイされたアプリケーションのjps-config.xmlファイルと混同しないようにします。
Oracle JRF WLSTスクリプトを使用して、Webアプリケーションのデプロイ前または後のいずれでも、ドメイン・レベルのjps-config.xmlファイルを構成できます。Oracle JRF WLSTスクリプトの名前は次のようになります。
Linux: wlst.sh
Windows: wlst.cmd
Oracle JRF WLSTスクリプトはJDev経由で実行している場合は、次のパスで使用できます。
$JDEV_HOME/oracle_common/common/bin/
スタンドアロンJRF WebLogicインストールの場合、パスは次のようになります。
$MW_HOME/oracle_common/wlst
ノート:
Oracle JRF WLSTスクリプトが必要です。Oracle Java Required Files (JRF)のWLSTを実行しているときは、$JDEV_HOME/wlserver_10.3/common/binの下のWLSTスクリプトを使用しないでください。
コマンド構文
addOAMSSOProvider(loginuri, logouturi, autologinuri)
次の例のように、addOAMSSOProviderコマンドを実行します。
cd $MW_HOME/oracle_common/common/bin
./wlst.sh
.......after running ./wlst.sh............
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication",
logouturi="/oamsso/logout.html", autologinuri="/obrar.cgi")
addOAMSSOProvider(loginuri="/testapp/adfAuthentication",
logouturi="/oamsso/logout.html", autologinuri="/obrar.cgi")
wls:/offline> addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oamsso/logout.html", autologinuri="/obrar.cgi")
表A-1では、各引数の予想値を定義します。
表A-1 addOAMSSOProviderコマンド行引数
| 引数 | 定義 |
|---|---|
loginuri |
ログイン・ページのURIを指定します ノート: ADFセキュリティが有効なアプリケーションの場合、"/<context-root>/adfAuthentication"を'loginuri'パラメータに指定する必要があります。手順を示します。
|
logouturi |
ログアウト・ページのURIを指定します ノート: ADFセキュリティが有効なアプリケーションの場合、「11g Webゲートが関与するセッションの集中ログアウトの構成」に記載されているログアウト・ガイドラインに基づいてlogouturiを構成する必要があります。次のとおりです。
|
autologinuri |
自動ログイン・ページのURIを指定します。 |
Oracle ADFセキュリティが有効なFusion Webアプリケーション用にドメイン・レベルjps-config.xmlを構成する手順は、より大きなタスクの一部です。コマンド構文を除き、すべてのタスクはAccess Manager 10gと11gとで同じです。
次を参照してください。
関連項目:
『Oracle Fusion Middleware Oracle WebLogic Scripting Tool』
WebLogic Server WLSTコマンド・リファレンス
すべてのタスク(Access Manager SSOプロバイダおよびOAM構成例を含む)用に『Oracle Platform Security Servicesによるアプリケーションの保護』で説明されている手順で入力したSSOサービス構成は、ファイルjps-config.xmlに書き込まれます。指定されたデータには次のものが含まれます。
特定のSSOサービス
自動ログインおよび自動ログアウトURI
認証レベル
選択したSSOサービスにより戻されるURLに含まれる問合せパラメータ
トークン生成に適した設定
jps-config.xmlファイルにある次のコードはAccess Manager SSOプロバイダの構成を示しています。いくつかの値は実際の内容に対するプレースホルダにすぎません。使用する構成では実装用の値を含む必要があります。
関連項目:
Access Manager用のSSO構成のサンプル
<propertySets>
<propertySet name = "props.auth.url">
<property name = "login.url.BASIC" value = "http://host:port/oam_login.cgi?level=BASIC"/>
<property name = "login.url.FORM" value = "http://host:port/oam_login.cgi?level=FORM"/>
<property name = "login.url.DIGEST" value = "http://host:port/oam_login.cgi?level= DIGEST"/>
<property name = "autologin.url" value = " http://host:port/obrar.cgi"/>
<property name = "logout.url" value = "http://host:port/logout.cgi"/>
<property name = "param.login.successurl" value = "successurl"/>
<property name = "param.login.cancelurl" value = "cancelurl"/>
<property name = "param.autologin.targeturl" value = "redirectto"/>
<property name = "param.autologin.token" value = "cookie"/>
<property name = "param.logout.targeturl" value = "targeturl"/>
</propertySet>
<propertySet name="props.auth.uri">
<property name="login.url.BASIC" value="/${app.context}/adfAuthentication?level=BASIC" />
<property name="login.url.FORM" value="/${app.context}/adfAuthentication?level=FORM" />
<property name="login.url.DIGEST" value="/${app.context}/adfAuthentication?level=DIGEST" />
<property name="autologin.url" value="/obrar.cgi" />
<property name="logout.url" value="/${oamsso/logout.html" />
</propertySet>
<propertySet name = "props.auth.level">
<property name = "level.anonymous" value = "0"/>
<property name = "level.BASIC" value = "1"/>
<property name = "level.FORM" value = "2"/>
<property name = "level.DIGEST" value = "3"/>
</propertySet>
<propertySets>
<serviceProviders>
<serviceProvider name = "sso.provider"
class = "oracle.security.jps.internal.sso.SsoServiceProvider"
type = "SSO">
<description>SSO service provider</description>
</serviceProvider>
</serviceProviders>
<serviceInstances>
<serviceInstance name = "sso" provider = "sso.provider">
<propertySetRef ref = "props.auth.url"/>
<propertySetRef ref = "props.auth.level"/>
<property name = "default.auth.level" value = "2"/>
<property name = "token.type" value = "OAMSSOToken"/>
<property name = "token.provider.class" value = "oracle.security.wls.oam.providers.sso.OAMSSOServiceProviderImpl"/>
</serviceInstance>
</serviceInstances>
<jpsContexts default = "default">
<jpsContext name = "default">
<serviceInstanceRef ref = "sso"/>
</jpsContext>
</jpsContexts>
次の重要な点に注意してください。
SSOプロバイダは少なくともフォーム・ログイン用のURIをプロパティlogin.url.FORMを使用して定義する必要があります。値はURLである必要はありません。
アプリケーションが自己登録ページURIまたはURLをサポートする場合、プロパティautologin.urlを使用して指定する必要があります。
SSOソリューションがグローバル・ログアウトURIまたはURLをサポートする場合、プロパティlogout.urlを使用して指定する必要があります。OAMソリューションはグローバル・ログアウトをサポートします。
例A-1に示す次のプロパティはオプションです。
param.login.successurl
param.login.cancelurl
param.autologin.targeturl
param.login.token
param.logout.targeturl
プロパティ・セットprops.auth.uri内の値などのURI仕様における変数app.contextは、Access Managerソリューションとの統合時にADFアプリケーションに対してのみ使用できます。
プロパティ・セットprops.auth.levelが必要です。
props.auth.urlへの参照が必要です。
SSOプロバイダのサービス・インスタンス内のプロパティsso.provider.classは、特定のSSOソリューションを実装するクラスの完全修飾名です。
OAMソリューションの場合、提供されているクラス名はoracle.security.wls.oam.providers.sso.OAMSSOServiceProviderImplです。
SSOプロバイダのサービス・インスタンス内のプロパティ名default.auth.levelは、例A-1に示すように"2"に設定する必要があります。
SSOプロバイダのサービス・インスタンス内のプロパティ token.typeが必要です。
このトークンのタイプは、正常な認証後にSSOプロバイダが発行するHTTPリクエストのトークン・セットを特定します。2回目以降は、このトークンがSSOプロバイダで使用されるので、ユーザーの再認証が不要となり、ユーザーのサインオンが引き続き有効となります。OAMソリューションの場合、例A-1に示されているとおり、トークン・タイプをOAMSSOTokenとします。
SSOプロバイダのサービス・インスタンス内のプロパティtoken.provider.classはトークン・クラスの完全修飾名で、プロバイダ特有です。
自己登録ロジックを実装し、自己登録が正常に終了した後はユーザーを自動ログインさせるアプリケーションは、OPSS autoLogin APIをコールする必要があります。そしてこのコールを許可するには、アプリケーションにクラスJpsPermissionを含むCredentialMappingという名前のコード・ソース権限を付与する必要があります。
次に示すファイルsystem-jazn-data.xmlの一部は、アプリケーションMyAppへのこの権限の仕様を示します。
<grant>
<grantee>
<codesource>
<url>file:${domain.home}/servers/MyApp/-</url>
</codesource>
</grantee>
<permissions>
<permission>
<class>oracle.security.jps.JpsPermission</class>
<name>CredentialMapping</name>
</permission>
</permissions>
</grant>