この章では、OpenSSO 8.0 Update 2 と Oracle Access Manager 10g または 11g を使用してシングルサインオンを実装する手順を説明します。この情報は、『Sun OpenSSO Enterprise 8.0 Integration Guide』の第 3 章「Integrating Oracle Access Manager」に記載されている情報を補足するものです。 このユースケースでは、Oracle Access Manager セッションを活用することで、OpenSSO によって保護されたアプリケーションに対してシングルサインオンを実現します。設定された OpneSSO 認証モジュールは、Oracle Access Manager セッションに基づいて OpenSSO セッションを生成します。
Oracle Access Manager との統合のために OpenSSO 8.0 Update 2 をインストールする前に、次のコンポーネントにアクセスできることを確認します。
opensso.war ファイル、統合ソースコード、設定ファイル、および OpenSSO 8.0 Update 2 のインストールと設定に必要なその他のファイルが含まれている ZIP ファイル。
OpenSSO によって保護されているアプリケーションが Oracle Access Manager によって確立された認証セッションを実際に使用する際に OpenSSO エージェントが利用されます。
Oracle の Web サイトから Oracle Access Manager をダウンロードします。Oracle Fusion Middleware 11gR1 Software ダウンロードのページを参照してください。
OpenSSO と Oracle Webgate の両方でサポートされているコンテナに Oracle Webgate をダウンロードします。現時点では、両方の製品でサポートされているコンテナは Sun Web Server 7.x のみです。Oracle Fusion Middleware 11gR1 Software ダウンロードのページを参照してください
Oracle Access Manager をダウンロードします。Oracle Access Manager と統合する場合、OpenSSO 認証モジュールのコンパイルと構築には SDK が必要です。
Oracle Fusion Middleware 11gR1 Software ダウンロードのページを参照してください
(省略可能) Oracle Access Manager 自体で認証モジュールを作成して OAM セッションを生成するには、OpenSSO C-SDK が必要です。これは OpenSSO の観点からは一般的なユースケースではない可能性があります。『Sun OpenSSO Enterprise 8.0 C API Reference for Application and Web Policy Agent Developers』の「Where is the C SDK?」を参照してください
opensso/integrations/oracle ディレクトリには、カスタム認証モジュールやその他のプラグインをコンパイルおよび構築するためのソースおよび設定が含まれています。ユースケースのオプションおよび関連情報については、『Sun OpenSSO Enterprise 8.0 Integration Guide』の第 3 章「Integrating Oracle Access Manager」を参照してください。次の表に、opensso/integrations/oracle ディレクトリ内のファイルと、各ファイルの説明を示します。
今開いているこのファイルです。
OpenSSO で Oracle Access Manager のカスタム認証モジュールを構築するための Ant 構築ファイル
OpenSSO で Oracle Access Manager の認証モジュールを作成するために必要な設定ファイル。
OblixAuthService.xml
Oracle Access Manager 認証モジュールの認証サービスファイル
OblixAuthModule.xml
Oracle Access Manager の認証モジュールコールバック。
これはデフォルトで空のファイルですが、設定をするために存在しなければならないものです。
OblixAuth.properties
認証のための国際化キーを格納するプロパティーファイル
このディレクトリはデフォルトで空です。この lib ディレクトリには、ソースライブラリをコンパイルするために次のライブラリが含まれている必要があります。
jobaccess.jar
Oracle Access Manager SDK からこのファイルをコピーします。
openfedlib.jar、amserver.jar、および opensso-sharedlib.jar
opensso.war からこれらのファイルをコピーします
servlet.jar or javaee.jar
GlassFish の lib ディレクトリをコピーします。理想的には、javax.servlet.http.Cookie などの標準の Java EE クラスを持つ JAR ファイルが適当です。
次のソースファイルを含むディレクトリです。
com/sun/identity/authentication/oblix/OblixAuthModule.java
com/sun/identity/authentication/oblix/OblixAuthModule.java
com/sun/identity/authentication/oblix/OblixPrincipal.java
com/sun/identity/saml2/plugins/OAMAdapter.java
このクラスは、SAML サービスプロバイダの SAML2 プラグインアダプタです。このクラスは OpenSSO のセッションサービスを使用して Oracle Access Manager に対してリモート認証を実施します。
このディレクトリには OpenSSO の Oblix 認証スキームのソースファイルが含まれています。これは C ベースの認証モジュールで、検証のために OpenSSO C-SDK を利用しています。
oam/solaris/authn_api.c
このファイルは OpenSSO の Oblix カスタム認証スキームを実装します。
oam/solaris/include/*.h
認証スキームをコンパイルするすのに必要なヘッダーファイルすべて。
oam/solaris/AMAgent.properties
OpenSSO エージェントの設定ファイルのサンプル。これは、OpenSSO セッションを検証するための認証スキームに必要です。
Ant スクリプトを使用してソースファイルを構築します。対応している Ant スクリプトを設定して、PATH で設定する必要があります。
次のコマンドを実行します。
cd $openssozipdir/integrations/oracle; ant -f build.xml
このコマンドによって、リソースファイルが構築され、fam_oam_integration.jar が $openssozipdir/integrations/oracle/dist ディレクトリに生成されます。
認証モジュールを OpenSSO WAR ファイルにバンドルします。
一時的なディレクトリを作成して、opensso.war を解凍します。次に例を示します。
# mkdir /export/tmp # cd /export/tmp # jar -xvf opensso.war
これ以降は、/export/tmp を WAR のステージング領域として使用し、マクロ $WAR_DIR とともに表します。
$openssozipdir/integrations/oracle/dist/fam_oam_integration.jar を $WAR_DIR/WEB-INF/lib にコピーします。
$openssozipdir/integrations/oracle/config/OblixAuth.properties を $WAR_DIR/WEB-INF/classes にコピーします。
$openssozipdir/integrations/oracle/config/OblixAuthModule.xml を $WAR_DIR/config/auth/default および $WAR_DIR/config/auth/default_en ディレクトリにコピーします。
jar cvf opensso.war を使用して $WAR_DIR の opensso.war を再WAR化します。
例: 作成予定
注: これは一般的なユースケースではありません。SAML2 サービスプロバイダのユースケースなど、構築する必要がある場合にのみ実施します。
Oblix 認証スキームを構築するには、makefile をカスタマイズする必要があります。また、これは C ベースの認証モジュールのため、オペレーティングシステムに依存します。
認証スキームファイルは $openssozipdir/integrations/oracle/oamauth/solaris ディレクトリの下にあります。
OpenSSO C-SDK 2.2 バージョンをダウンロードして設定します。
authn_api.c ファイルには、AMAgent.propeties file への参照が含まれます。ファイルを適宜編集します。
環境に合わせて makefile をカスタマイズします。
たとえば、gcc コンパイルの場所を指定します。また、LDFLAGS を編集して OpenSSO C-SDK の lib を指定します。
make コマンドを実行します。
make コマンドによって authn_api.so ファイルが生成されるはずです。
開始する前に: Sun Java System Web Server 7.x がすでにインストールおよび設定されている必要があります。Web サーバーのインストール手順については、Sun Java System Web Server Documentation Wiki を参照してください。
Sun Java System Web Server 7.x に OpenSSO をインストールします。
OpenSSO のポリシーエージェントをサポートされているコンテナにインストールして、エージェントが OpenSSO で動作するように設定します。
手順については、『Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for J2EE Agents』または『Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for Web Agents』『Sun OpenSSO Enterprise Policy Agent 3.0 User’s Guide for Web Agents』を参照してください。
Oracle Access Manager をインストールおよび設定します。
『Oracle Access Manager インストレーション・ガイド 10g (10.1.4.3)』を参照してください
Oracle Access Manager で Oracle Access Manager SDK をインストールおよび設定します。
『Oracle Access Manager インストレーション・ガイド 10g (10.1.4.3)』を参照してください
OpenSSO がインストールされた同一の Web コンテナに Oracle Webgate をインストールします (Sun Web Server 7.x)。
OpenSSO を設定して、OpenSSO Web アプリケーションの deployURI/UI/* のみが保護されるようにします。次に例を示します。/opensso/UI/.../*
Oracle Access Manager のポリシー、リソース、およびその他の設定の詳細については、『Oracle Access Manager Administration Guide』を参照してください。 OpenSSO Enterprise で、その他すべての URL の保護を解除します。これは、簡単なシングルサインオンの統合シナリオを実現するためですが、完全な統合とその他の配備の依存関係に基づいてポリシーを評価します。
OpenSSO で認証モジュールを設定します。
OpenSSO コンソールにアクセスします。
認証のため、ブラウザは Oracle Access Manager へリダイレクトします。認証成功後、ログインページが OpenSSO に表示されます。OpenSSO 管理者のユーザー名とパスワードを使用してログインします。
Oracle 認証モジュールのサービス XML ファイルを、OpenSSO の設定にインポートします。
認証モジュールサービスは、コマンド行の ssoadm ユーティリティーから、およびブラウザベースの ssoadm.jsp から読み込めます。
http://host:port/opensso/ssoadm.jsp にアクセスします。
「create-service」オプションを選択します。
$openssozipdir/integrations/oracle/config/OblixAuthService.xml から XML ファイルをコピー&ペーストして、「Submit」をクリックします。
これによって、認証モジュールのサービスが OpenSSO 設定に読み込まれます。
認証モジュールを認証コアサービスに登録します。
このコアサービスにはオーセンティケータのリストが含まれています。register-auth-module オプションを http://host:port/opensso/ssoadm.jsp で選択します。認証モジュールのクラス名として、com.sun.identity.authentication.oblix.OblixAuthModule と入力します。
認証モジュールがデフォルトのレルムに登録されていることを確認します。
URL http://host:port/opensso を使用して OpenSSO にアクセスします。OpenSSO コンソールで、デフォルトのレルムをクリックして、「Authentication」タブをクリックします。「New」をクリックして OblixAuth という名前の新しい認証モジュールを作成します。
「Authentication」タブで、OblixAuth 認証モジュールを選択します。
Oblix SDK ディレクトリを設定します。「Check Remote User Header Only」を有効にして、リモートヘッダー名として OAM_REMOTE_USER を指定します。このパラメータは配備に合わせて設定可能です。
(省略可能) OpenSSO のコア認証サービスで「Ignore Profile」オプションを有効にします。
OpenSSO コンソールで、「Configuration」>「Core」>「Realm Attributes」>「User Profile」の順に選択します。「Ignored」を選択して「Save」をクリックします。
この設定により、OpenSSO が認証成功後に既存のユーザープロファイルを検索しないようにします。ただし、OpenSSO と Oracle Access Manager によって使用されるユーザーリポジトリが完全に同一である場合、この手順は不要です。「Admin Console」>「Configuration」>「Core」>「Realm Attributes」>「User Profile」の順に選択します。「Ignored」を選択して「Save」をクリックします。
Web サーバーの起動スクリプトを編集して、Oracle Access Manager SDK の共有ライブラリを含めます。
startserv スクリプト内の LD_LIBRARY_PATH を更新して $ACCESSDKDIR/oblix/lib の共有ライブラリを含めます。
OpenSSO および Oracle Webgate の両方を含む Sun Web Server を再起動します。
Web Agent のログイン URL を http://openssohost:openssoport/deployURI/UI/Login?module=OblixAuth に更新します。
OpenSSO によって保護されているアプリケーションの保護リソースにアクセスします。まだ認証されていない場合、ブラウザは Oracle Access Manager のログインページにユーザーをリダイレクトします。ログイン成功後、 OpenSSO セッションが作成され、最後にポリシーエージェントに保護されたアプリケーションの URL にリダイレクトされます。ポリシーに基づいて、保護されたアプリケーションへのアクセスが許可または拒否されます。
この手順は、OpenSSO セッションの認証後に Oracle Access Manager セッションを生成しなければならない場合に便利です。関連するユースケースについての情報は、『Sun OpenSSO Enterprise 8.0 Integration Guide』の第 3 章「Integrating Oracle Access Manager」を参照してください。
Oblix 認証スキームは C 認証モジュールとして公開され、この認証スキームは OpenSSO C-SDK 2.2 バージョンを使用して OpenSSO セッションを検証します。Oblix の OpenSSO 認証スキームは、OpenSSO クライアントサイド設定に AMAgent.properties の設定を使用します。 このファイルは 認証モジュールを設定する前にカスタマイズする必要があります。構築手順でこのファイルの 場所を指定します。認証スキームを設定する前に、コンパイルされた authn_api.so およびその他の C-SDK ライブラリを $OAM_INSTALL_DIR/access/oblix/lib ディレクトリコピーする必要があります。『『Sun OpenSSO 8.0 Integration Guide』』には、Oracle 認証スキームの設定方法を図説したスクリーンショットの例が記載されています。ただしこのスクリーンショットは参照目的でのみ使用してください。詳細については、Oracle Access Manager の最新マニュアルを参照してください。
この節では、OpenSSO 8.0 Update 2 と Oracle Access Manager 10.1.4.0.1 または 11g を使用してシングルサインオンを実装する手順を説明します。この情報は、『Sun OpenSSO Enterprise 8.0 Integration Guide』の第 3 章「Integrating Oracle Access Manager」に記載されている情報を補足するものです。 このユースケースでは、Oracle Access Manager セッションを活用することで、OpenSSO によって保護されたアプリケーションに対してシングルサインオンを実現します。設定された OpneSSO 認証モジュールは、Oracle Access Manager セッションに基づいて OpenSSO セッションを生成します。