25 Webサービス・セキュリティの構成

WebCenter Portalおよび関連するサービスとコンポーネントに、Webサービス・セキュリティ(WS-Security)を構成します。

ノート:

Oracle WebCenter Portalでは、Jive機能(お知らせおよびディスカッション/ディスカッション・フォーラム)のサポートが非推奨となりました。したがって、Jive機能は14.1.2インスタンスでは使用できません。

WS-Securityでは、OPSSキーストア・サービス(KSS)キーストアを使用し、1つ以上のドメインを対象として、WebCenter Portalアプリケーションと補助アプリケーションおよびコンポーネントのセキュリティ資格証明を取得および管理するメカニズムを提供します。KSSキーストアは、認証およびデータ整合性に使用可能な公開キーおよび秘密キーに関する情報を提供します。

次のトピックでは、WS-Securityを使用した標準トポロジを構成する方法(WebCenter PortalアプリケーションとWSRPプロデューサが同じドメインを共有するが、BPELサーバーが外部SOAドメインに存在する場合)、および、より複雑な環境(たとえば、BPELサーバーが別のSOAドメインに存在し、1つのWSRPプロデューサが外部ポートレット・ドメインに存在する場合)に合せてこの構成を拡張する方法について説明します。

権限:

この章のタスクを実行するには、Oracle WebLogic Server管理コンソールでWebLogic ServerのAdminロールが付与されている必要があります。MonitorまたはOperatorロールを持つユーザーは、セキュリティ情報を表示できますが変更することはできません。

「管理操作、ロールおよびツールの理解」も参照してください。

25.1 標準トポロジの場合のWS-Securityの構成

この項では、WebCenter PortalアプリケーションとWSRPプロデューサは同一ドメインを共有しているが、BPEL (SOA)サーバーは外部ドメインに配置されているトポロジの場合にWS-Securityを構成する方法を説明します。

標準トポロジ

  • ドメイン1 : WebCenter Portal、ポートレット・プロデューサ

  • ドメイン2 : SOA

標準の2つのドメイン・トポロジの場合にWS-Securityを構成するステップは、次の各項で説明しています。

25.1.1 WebCenter Portalドメイン・キーストアの作成

この項では、OPSSキーストア・サービス(KSS)を使用してWebCenter Portalキーストアおよびキーを作成する方法を説明します。キーストアとは、使用可能な公開キーおよび秘密キーの情報を提供するファイルです。キーは、認証やデータ整合性など、様々な目的に使用されます。また、ユーザー証明書や、ピア証明書の検証に必要なトラスト・ポイントも、キーストアにセキュアに格納されます。キーストアを作成すると、KSSを使用して、WebCenter Portal、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』キーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。

WebCenter Portalドメイン・キーストアを作成するには:

  1. 次のWLSTコマンドを実行します。
    svc = getOpssService(name='KeyStoreService')
  2. 次のWLSTコマンドを使用して、キーストアを作成します。
    svc.createKeyStore(appStripe='appStripe', name='producer', password='password', permission=true/false))

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • permission — 権限とパスワードの両方によって保護する場合はfalse (キーストアを権限のみで保護する場合はtrue)

    たとえば:

    svc.createKeyStore(appStripe='WCPortalStripe', name='producer', password='welcome1', permission=true))
  3. この新しく作成されたキーストアのキー・ペアを生成します。
    svc.generateKeyPair(appStripe='appstripe', name='name', password='password', dn='CN=Producer, OU=Producer, O=MyOrganization, L=MyTown, ST=MyState, C=US', keysize='2048', alias='producer', keypassword='keypassword')

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • dn — ドメイン名(dn='CN=webcenter_certificate'など)

    • alias — 公開キーの別名

    • keypassword — 新しい公開キーのパスワード

    たとえば:

    svc.generateKeyPair(appStripe='WCPortalStripe', name='producer', password='welcome1', dn='CN=Producer, OU=Producer, O=MyOrganization, L=MyTown, ST=MyState, C=US', keysize='2048', alias='producer', keypassword='welcome1')
  4. プロデューサ証明書(コンシューマによって使用される)をエクスポートします。
    svc.exportKeyStoreCertificate(appStripe='appstripe', name='name', password='password', alias='alias', type='TrustedCertificate',filepath='filepath')

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • alias — 公開キーの別名

    • keypassword — 新しい公開キーのパスワード

    • filepath — 証明書パス

    たとえば:

    svc.exportKeyStoreCertificate(appStripe='WCPortalStripe', name='producer', password='welcome1', alias='producer', type='TrustedCertificate',filepath='/scratch/certificate/webcenter.cer')

25.1.2 SOAドメイン・キーストアの作成

この項では、OPSSキーストア(KSS)を使用してSOAドメイン・キーストアおよびキーを作成する方法を説明します。KSSコマンドの構文情報および参照情報は、『Oracle Fusion Middlewareインフラストラクチャ・セキュリティWLSTコマンド・リファレンス』OPSSキーストア・サービス・コマンドに関する項を参照してください。

SOAドメイン・キーストアを作成するには:

  1. 次のWLSTコマンドを使用して、OPSSサービス・コマンド・オブジェクトを取得します。
    svc = getOpssService(name='KeyStoreService')
  2. キーストアを作成します。
    svc.createKeyStore(appStripe='appStripe', name='name', password='password', permission=true/false))

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • permission — 権限とパスワードの両方によって保護する場合はfalse (キーストアを権限のみで保護する場合はtrue)

    たとえば:

    svc.createKeyStore(appStripe='SOAStripe', name='bpel', password='welcome1', permission=true))
  3. 新しく作成されたキーストアのキー・ペアを生成します。
    svc.generateKeyPair(appStripe='appstripe', name='name', password='password', dn='CN=Producer, OU=Producer, O=MyOrganization, L=MyTown, ST=MyState, C=US', keysize='2048', alias='bpel', keypassword='keypassword')

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • dn — ドメイン名(dn='CN=webcenter_certificate'など)

    • alias — 公開キーの別名

    • keypassword — 新しい公開キーのパスワード

    たとえば:

    svc.generateKeyPair(appStripe='SOAStripe', name='bpel', password='welcome1', dn='CN=BPEL, OU=Consumer, O=MyOrganization, L=MyTown, ST=MyState, C=US', keysize='2048', alias='bpel', keypassword='welcome1')
  4. プロデューサによってエクスポートされた証明書をインポートします。
    svc.importKeyStoreCertificate(appStripe='appStripe', name='name', password='password', alias='webcenter_spaces_ws', keypassword='keypassword', filepath='filepath',type='TrustedCertificate')

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • keypassword — 新しい公開キーのパスワード

    • filepath — 証明書パス

    ノート:

    importKeyStoreCertificateコマンドの別名は、常にwebcenter_spaces_wsに設定する必要があります。この別名は変更しないでください。SOAユースケースが失敗します。

    たとえば:

    svc.importKeyStoreCertificate(appStripe='SOAStripe', name='bpel', password='welcome1', alias='webcenter_spaces_ws', keypassword='welcome1', filepath='/scratch/certificate/webcenter.cer',type='TrustedCertificate')
  5. プロデューサによってインポートされる公開証明書をエクスポートします。
    svc.exportKeyStoreCertificate(appStripe='appstripe', name='name', password='password', alias='alias', filepath='filepath',type='TrustedCertificate')

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • alias — 公開キーの別名

    • filepath — 証明書パス

    たとえば:

    svc.exportKeyStoreCertificate(appStripe='SOAStripe', name='bpel', password='welcome1', alias='bpel', filepath='/scratch/certificate/bpel.cer',type='TrustedCertificate')
  6. SOAドメインに新しく作成されたストライプを登録します。
    configureWSMKeystore('/WLS/base_domain','KSS', 'kss://appstripe/bpel', signAlias='bpel', cryptAlias='bpel', signAliasPassword='signAliasPassword',cryptAliasPassword='cryptAliasPassword')

    ここで:

    • WLS/base_domain — ドメイン名で、次の形式に従う必要があります。WLS/<domainName>

    • kss://appstripe/bpel — KSSキーストア名

    • cryptAlias — 公開キー別名

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • signAliasPassword — 公開キーのパスワード

    • cryptAlias — 公開キー別名

    • cryptAliasPassword — 公開キーのパスワード

    たとえば:

    configureWSMKeystore('/WLS/base_domain','KSS', 'kss://SOAStripe/bpel', signAlias='bpel', cryptAlias='bpel', signAliasPassword='signAliasPassword',cryptAliasPassword='cryptAliasPassword')
  7. SOAドメインに新しく作成されたbpelストライプにキーストア権限を付与します。
    grantPermission(permClass="oracle.security.jps.service.keystore.KeyStoreAccessPermission", permTarget="stripeName=SOAStripe,keystoreName=bpel,alias=*", permActions="read")
  8. コンシューマ証明書をWebCenterにインポートします。
    svc.importKeyStoreCertificate(appStripe='appstripe', name='name', password='password', alias='bpel', keypassword='keypassword', filepath='filepath', type='TrustedCertificate')
    

    ここで:

    • appstripe — キーストア・ストライプ名。キーストア内に作成されたキーおよび証明書はアプリケーション・ストライプまたは製品内に存在し、ドメイン内の各ストライプには一意の名前が付けられます

    • name — キーストア名

    • password — キーストア・パスワード

    • alias — 公開キーの別名

    • keypassword — 新しいキーのパスワード

    • filepath — 証明書パス

    たとえば:

    svc.importKeyStoreCertificate(appStripe='WCPortalStripe', name='producer', password='welcome1', alias='bpel', keypassword='welcome1', filepath='/scratch/certificate/bpel.cer', type='TrustedCertificate')
    
  9. プロデューサ・ストライプを登録します。
    configureWSMKeystore('/WLS/wc_domain','KSS', 'kss://appstripe/producer', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')

    ここで:

    • wc_domain — WebCenter Portalドメイン

    • signAliasPassword — 公開キーのパスワード

    • cryptAlias — 公開キー別名

    • cryptAliasPassword — 公開キーのパスワード

    たとえば:

    configureWSMKeystore('/WLS/WLS_SOAWC','KSS', 'kss://WCPortalStripe/producer', signAlias='producer', signAliasPassword='welcome1', cryptAlias='producer', cryptAliasPassword='welcome1')
  10. 新しく作成されたトライプにキーストア権限を付与します。
    grantPermission(permClass="oracle.security.jps.service.keystore.KeyStoreAccessPermission", permTarget="stripeName=WCPortalStripe,keystoreName=producer,alias=*", permActions="read")

25.2 複数ドメインのWS-Securityの構成

この項では、たとえば、WebCenter Portalアプリケーション、BPEL (SOA)サーバーおよびWSRPプロデューサ・サーバーがそれぞれ独自のドメインに存在するトポロジの場合に、標準トポロジのWS-Securityの構成を拡張する方法を説明します。

複数ドメイン・トポロジ

  • ドメイン1 : WebCenter Portal

  • ドメイン2 : SOA (BPEL)サーバー

  • ドメイン3 : WSRPプロデューサ

複数のドメインが含まれるトポロジの場合にWS-Securityを構成するステップは、次の各トピックで説明しています。

25.2.1 WebCenter Portalドメイン・キーストアの設定

WebCenter Portalドメイン・キーストアを作成する場合は、「WebCenter Portalドメイン・キーストアの作成」で説明している、標準トポロジでWS-securityを構成するステップに従います。キーストアを作成すると、KSSを使用して、WebCenter Portal、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』キーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。

25.2.2 SOAドメイン・キーストアの作成

「SOAドメイン・キーストアの作成」の説明に従い、OPSSキーストア(KSS)を使用してSOAドメイン・キーストアおよびキーを作成します。KSSコマンドの構文情報および参照情報は、『Oracle Fusion Middlewareインフラストラクチャ・セキュリティWLSTコマンド・リファレンス』OPSSキーストア・サービス・コマンドに関する項を参照してください。

25.2.3 外部ポートレット・ドメイン・キーストアの作成

外部ポートレット・ドメイン・キーストアを作成するには:

  1. JDK_HOME/jdk/binに移動し、コマンド・プロンプトを開きます。
  2. keytoolを使用して、WebCenter Portalドメインの公開証明書をインポートすることでキーストアを生成します。
    keytool -importcert -alias webcenter_public -file webcenter_public.cer -keystore producer.jks -storepass keystore_password
    

    ここで:

    • keystore_passwordは、キーストア・パスワードです。

    例: 証明書のインポート

    keytool -importcert -alias webcenter_public -file webcenter_public.cer -keystore producer.jks -storepass MyPassword
    
  3. keytoolを使用して、キー・ペアを生成します。
    keytool -genkeypair -keyalg RSA -dname "consumer_dname" -alias producer  -keypass key_password -keystore producer.jks -storepass keystore_password  -validity days_valid
    

    ここで:

    • consumer_dnameは、コンシューマの名前です(たとえば、cn=producer,dc=example,dc=com)。

    • key_passwordは、新規公開キーのパスワードです(たとえば、MyPassword)。

    • keystoreは、キーストア名です(たとえば、webcenter.jks)。

    • keystore_passwordは、キーストアのパスワードです(たとえば、MyPassword)。

    • days_validは、キーのパスワードが有効な日数です(たとえば、1064)。

      例: キー・ペアの生成

      keytool -genkeypair -keyalg RSA -dname "cn=producer,dc=example,dc=com" -alias  producer -keypass MyPassword -keystore producer.jks -storepass MyPassword  -validity 1064

    ノート:

    キーを生成するためにkeytoolによって使用されるデフォルト・アルゴリズム(DSA)は、Oracle Web Services Security Managerの要件に適合しないため、上に示すように、-keyalgパラメータを使用し、その値としてRSAを指定する必要があります。

  4. WebCenter Portalドメインのキーストアにインポートできるように、公開キーが含まれる証明書をエクスポートします。
    keytool -exportcert -v -alias producer -keystore producer.jks -storepasskeystore_password -rfc -file producer_public_key.cer
    

    ここで:

    • keystore_passwordは、キーストアのパスワードです(たとえば、MyPassword)。

    例: 公開キーが含まれる証明書のエクスポート

    keytool -exportcert -v -alias producer -keystore producer.jks -storepass MyPassword  -rfc -file producer_public_key.cer
    
  5. WebCenter Portalドメインに、異なる別名で証明書をインポートします(別名がproducer_public_keyの既存の証明書を上書きするかどうかを尋ねられたら「Yes」を選択します)。
    keytool -importcert -alias producer_public_key -file producer_public_key.cer  -keystore webcenter.jks -storepass keystore_password
    

    ここで:

    • keystore_passwordは、キーストアのパスワードです(たとえば、MyPassword)。

    例: 証明書のインポート

    keytool -importcert -alias producer_public_key -file producer_public_key.cer  -keystore webcenter.jks -storepass MyPassword
    

25.3 WebCenter Portal Client APIを使用するアプリケーションに対するWS-Securityを使用したWebCenter Portalの保護

この項では、WebCenter Portal APIを公開するアプリケーション(コンシューマ)とWebCenter Portal (プロデューサ)の間の通信のセキュリティが確保され、そのAPIを呼び出すユーザーのアイデンティティが保護されるように、WebCenter PortalにWS-Securityを構成する場合に必要な管理者タスクについて説明します。

この項には次のトピックが含まれます:

25.3.1 WebCenter PortalクライアントAPIを使用するアプリケーションの標準トポロジの構成

クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()に対して次のコマンドを設定するだけで済みます。

GroupSpaceWSContext context = new GroupSpaceWSContext();
context.setRecipientKeyAlias("producer");

ノート:

ここでの別名は常に公開キーにする必要があります。

クライアント・アプリケーションがJDeveloperであり、WebCenter Portalサーバーの構成済キーストアにアクセスできる場合は、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dirにコピーし、このキーストアを使用するようにJDeveloperドメインを構成します。これらのステップは、「WebCenter Portalドメイン・キーストアの作成」のステップとまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。

GroupSpaceWSContext context = new GroupSpaceWSContext();
context.setRecipientKeyAlias("producer");

25.3.2 WebCenter PortalクライアントAPIを使用するアプリケーションの複数ドメイン・トポロジの構成

クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()に対して次のコマンドを設定するだけで済みます。

GroupSpaceWSContext context = new GroupSpaceWSContext();
context.setRecipientKeyAlias("producer");

ノート:

ここでの別名は常に公開キーにする必要があります。

クライアント・アプリケーションがJDeveloperの場合、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dirにコピーして、このキーストアを使用するようにJDeveloperドメインを構成します。これらのステップは、「WebCenter Portalドメイン・キーストアの作成」のステップとまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。

GroupSpaceWSContext context = new GroupSpaceWSContext();
context.setRecipientKeyAlias("producer");

25.4 標準トポロジの場合のJKSコマンド・サマリー

標準トポロジの場合にキーストアを迅速に構成するには、次のコマンド・サマリーを使用します。これらのコマンドは、JKSキーストアの構成方法について説明します。

WebCenter側

次のkeytoolコマンドを使用して、キーストアを生成し、太字で示した値をローカル環境の値に置き換えます。

keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=example,dc=com" -alias webcenter -keypass MyPassword -keystore webcenter.jks -storepass MyPassword -validity 1064
keytool -exportcert -v -alias webcenter -keystore webcenter.jks -storepass MyPassword -rfc -file webcenter_public.cer

SOA側

keytool -genkeypair -keyalg RSA -dname "cn=bpel,dc=example,dc=com" -alias bpel -keypass MyPassword -keystore bpel.jks -storepass MyPassword -validity 1024
keytool -exportcert -v -alias bpel -keystore bpel.jks -storepass MyPassword -rfc -file bpel.cer
keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass welcome1

WebCenter側

keytool -importcert -alias bpel -file bpel.cer -keystore webcenter.jks -storepass welcome1

webcenter.jksファイルをdomain_home/config/fmwconfigディレクトリにコピーし、bpel.jksファイルをsoa_domain_home/config/fmwconfigディレクトリにコピーします。

SOAドメイン・キーストアの構成

次のWLSTコマンドを実行してキーストアを登録します。

configureWSMKeystore('/WLS/WC_Domain',JKS, 'webcenter.jks', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')

ここで:

  • WC_Domain — WebCenter Portalドメイン

  • signAliasPassword — 公開キーのパスワード

  • cryptAlias — 公開キー別名

  • cryptAliasPassword — 公開キーのパスワード

たとえば:
configureWSMKeystore(context='/WLS/WC_Domain', keystoreType='JKS', location='./consumer.jks',keystorePassword='welcome1', signAlias='consumer', signAliasPassword='welcome1', cryptAlias='consumer', cryptAliasPassword='welcome1')

25.5 標準トポロジを拡張する場合のJKSコマンド・サマリー

複数ドメイン・トポロジの場合にキーストアおよびDFプロパティを迅速に構成するには、次のコマンド・サマリーを使用します。

WebCenter側

次のkeytoolコマンドを使用して、キーストアを生成し、太字で示した値をローカル環境の値に置き換えます。

keytool -genkeypair -keyalg RSA -dname  "cn=spaces,dc=example,dc=com" -alias webcenter -keypass MyPassword -keystore webcenter.jks -storepass MyPassword -validity 1064

keytool -exportcert -v -alias webcenter -keystore webcenter.jks -storepass MyPassword -rfc -file webcenter_public.cer

SOA側

keytool -genkeypair -keyalg RSA -dname "cn=bpel,dc=example,dc=com" -alias bpel -keypass MyPassword -keystore bpel.jks

keytool -exportcert -v -alias bpel -keystore bpel.jks -storepass MyPassword -rfc -file bpel.cer

keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass welcome1

証明書を信頼するかを尋ねられたら、yesと答えます。

keytool -importcert -alias webcenter_spaces_ws -file bpel.cer -keystore bpel.jks -storepass MyPassword

ノート:

webcenter_spaces_wsとしての別名を維持します。

SOAドメイン・キーストアの構成

次のWLSTコマンドを実行してキーストアを登録します。

configureWSMKeystore(context='/WLS/wc_domain',keystoreType='JKS',location='./bpel.jks',keystorePassword='welcome1',signAlias='producer',signAliasPassword='welcome1',cryptAlias='producer',cryptAliasPassword='welcome1')

ここで:

  • wc_domain — WebCenter Portalドメイン

  • signAliasPassword — 公開キーのパスワード

  • cryptAlias — 公開キー別名

  • cryptAliasPassword — 公開キーのパスワード