13 外部セキュリティの設定
セキュリティ標準により、組織は重要情報が危険にさらされることを回避できます。WebCenter Sitesには、セキュリティ・プロトコル、アセットの暗号化、およびRESTセキュリティにより、データおよび属性を保護する堅牢なセキュリティ機能が用意されています。
次の各トピックでは、セキュリティ・プロトコルの実装について説明します。
外部セキュリティの設定
開発者がテンプレートのコーディングやアセット・タイプの設計を始める前に、管理システム上と配信システム上の両方にセキュリティを構成する方法を開発者とともに決定する必要があります。
次の各トピックで、WebCenter Sitesシステム上でのセキュリティの実装とテストについて説明します。
WebCenter Sitesのセキュリティの概要
開発者がオンライン・サイトの設計や管理システムのユーザー・インタフェースの変更を行う前に、管理者はセキュリティ・プロトコルを実装する必要があります。セキュリティ構成に関する決定は、オンライン・サイトの開発方法に影響を与えます。
定期的にシステムを確認し、それらが正しく機能しているかどうかを判断する必要があります。次の図は、セキュアなWebCenter Sitesシステムの例を示しています。
次の各トピックでは、利用できるWebCenter Sitesのセキュリティ対策に関する概要情報を提供します。
ACLとセキュリティの理解
ACL (アクセス制御リスト)は、WebCenter Sitesシステムでセキュリティおよびユーザー管理モデルの基盤として機能します。ACLは、データベース表およびWebCenter Sitesページの両方へのアクセスを制限する権限のセットです。
ACLの制限は、wcs_properties.json
ファイル内のcc.security
プロパティおよびsecurity.checkpagelets
プロパティがtrue
に設定されている場合にのみ実施されます。これらのプロパティは、デフォルトでtrue
に設定されています。なんらかの理由でセキュリティを無効にしなければならない場合は、Adminインタフェースからプロパティ管理ツールを開いて、cc.security
プロパティをfalse
に設定します。ただし、サイトの開発が確実にセキュリティを有効にした状態で行われるようにするため、このプロパティはすべてのシステムでtrue
のままにすることをお薦めします。
システムのセキュリティ対策を計画する際には、デフォルトのACL (システム・デフォルトを参照)のリストを調べ、追加のACLが必要かどうかを判断します。開発者が表の作成またはユーザー・インタフェースへの追加を計画している場合には、システムACLとは異なる権限の組合せでACLを作成する必要が生じる場合があります。
ノート:
どのような状況においても、システムのデフォルトACLを変更したり、WebCenter Sitesのシステム表またはWebCenter Sitesのコンテンツ・アプリケーションの表に割り当てられたACLを変更しないでください。
DefaultReader、secure.CatalogManagerおよびsecure.TreeManagerの理解
WebCenter SitesおよびWebCenter Sitesコンテンツ・アプリケーションには、いくつかのデフォルトのユーザー・アカウントが付属します。DefaultReaderアカウントは権限のないすべてのサイト訪問者に割り当てられます(WebCenter Sitesにホストされるサイトのすべての訪問者にWebCenter SitesのユーザーIDが必要なため)。
DefaultReaderユーザー・アカウントには、デフォルトで、BrowserおよびVisitorのACLがあります。Visitorにより、統計を目的とする訪問者の追跡が有効になります。データベース表の多くにもBrowser ACLが割り当てられており、様々なOracle WebCenter Sites: Engage表にはVisitor ACLが割り当てられているため、セキュリティの問題が生じます。これにより、DefaultReaderアカウントを使用していれば、だれでもその表内の情報を調べることが可能となります,ただし、このユーザーとして表に書き込むことはできません。誰かがDefaultReaderユーザー・アカウントを使用してWebCenter Sitesデータベースの表を表示するのを防ぐには、Adminインタフェースのプロパティ管理ツールを使用して、をwcs_properties.json
ファイルの次のプロパティをtrue
に設定します。
-
secure.CatalogManager
-
secure.TreeManager
これらのプロパティがtrueに設定されている場合、DefaultReaderユーザーは、読取り専用データであっても、CatalogManagerおよびTreeManagerサーブレットにはアクセスできません。
BlobServerとセキュリティの理解
BLOBにセキュリティを実装する場合は、BlobServerサーブレットのセキュリティ機能を有効にする必要があります。それには、Adminインタフェースのプロパティ管理ツールを使用して、wcs_properties.json
ファイルのbs.security
パラメータをtrue
に設定します。
bs.security=true
の場合、リクエストする個人が正当なユーザーとして認証された証拠がblobのURLに含まれていないかぎり、BlobServerはblobを提供することを拒否します。次のような証拠が必要です。値がcsblobid
という名前のセッション変数に一致しているcsblobid
パラメータから取得されたURLの値。このため、BlobServerセキュリティが有効である場合、開発者は通常と異なる方法でblobへのリンクをコーディングする必要があります。
blobヘッダー名が脆弱にならないように、wcs_properties.jsonファイルのbs.validheadernamesパラメータで有効なblobヘッダー名を指定します。このプロパティ値が設定されると、ユーザーやハッカーは、URLパラメータを使用して追加のblobヘッダー名をインジェクトできなくなります。このプロパティ値を空のままにすると、blobヘッダー名のすべての値がURLパラメータで許可されるようになり、HTTPヘッダー・インジェクションの脆弱性につながる可能性があります。
セッションIDのないステートレスなWebページについては、バニティURLを使用してください。バニティURLを使用することで、問合せパラメータのないフレンドリ・リンクをイメージで持つことができます。「バニティURLの構成」を参照してください。
セキュリティの目的の実装
一般的には、WebCenter Sitesシステム(開発システム、管理システムおよび配信システム)ごとに、異なるセキュリティの目的があります。
次の各トピックで、各WebCenter Sitesシステム上でのセキュリティの実装について説明します。
開発システムのセキュリティの目的の実装
開発システムは一般的にはファイアウォールの内側にありますが、開発システムにおいても、開発者が設計対象とするシステム(管理または配信)で実装されるものと同じセキュリティ構成を実装する必要があります。両方のシステムで条件を同じにすることで、コードがターゲット・システムで適切に機能するようにするためです。
-
配信システムでBlobServerセキュリティの使用を計画している場合、BLOBのURLを作成するテンプレートは異なる方法でコード化する必要があります。したがって、開発システムでもBlobServerセキュリティを有効にする必要があります。
-
オンライン・サイトで、訪問者が自分自身を識別することが要求される場合、開発システムには、配信システムで使用するものと同じセキュリティ構成が必要です。
管理システムのセキュリティの目的の実装
管理システムのセキュリティには、次の2つの主な概念が含まれています。
-
有効なWebCenter Sitesユーザーのみがシステムにアクセスできるようにする(この章で説明します)。
-
有効なユーザーが、そのユーザーに適した機能のみにアクセスできるようにする。
セキュリティの実装
次の各トピックでは、プロパティの設定、デフォルト・ユーザー・アカウントのパスワードの変更、企業ネットワーク外でアクセス可能なシステムでのSSLの使用、特定のWebCenter SitesサーブレットのURLのマッピングおよび配信システム上でのアプリケーションの特定の部分の無効化といった、セキュリティ対策の構成について説明します。
各トピックでは、どのシステムでどのステップを実行するのかが示されています。
プロパティを使用したセキュリティ設定の構成
様々なセキュリティを実装するプロパティは、WebCenter Sites wcs_properties.json
ファイルにあります。
プロパティ管理ツールを使用して、次のプロパティがtrue
に設定されていることを確認します。
-
cc.security
-
security.checkpagelets
-
secure.CatalogManager
-
secure.TreeManager
-
contentsecurity.enabled
BlobServerセキュリティを使用する計画の場合、bs.security
をtrue
に設定します。
セッション・タイムアウト値が各システムに適した値になるよう、次のようにcs.timeout
プロパティを設定します。
-
開発システムおよび管理システムでは、支障なく設定できると考えられる場合、長いタイムアウト値を設定します。
-
配信システムでは、訪問者にフラストレーションを感じさせることなく可能なかぎり短いタイムアウト値を設定します。次の点も確認してください。
-
Webサーバーから
futuretense_cs
ディレクトリ全体を削除します。アプリケーション・サーバーからは、これを削除しないでください。その場合、プロパティ管理ツールを使用して、wcs_properties.json
ファイルのcs.wrapper
プロパティをfalse
に設定します(ラッパーはそのフォルダのHTMLファイル)。これを行わない場合、サイトの訪問者には、システム・エラー・メッセージではなく、「404ページが見つかりません」が表示されます。 -
SiteCatalog/OpenMarket/Xcelerate/UIFramework
に移動し、すべてのページの名前を変更します。最低でも、LoginPage
とLoginPost
の名前は変更してください。
-
さらに、配信システムに指定する別のプロパティとして、cs.wrapper
があります。ラッパーとは、Webサーバー上のfuturetense_cs
ディレクトリにあるHTMLファイルです。このディレクトリには、Dev
というサブディレクトリも含まれ、これは配信システムから削除する必要があります。ただし、配信システム上のWebサーバーからfuturetense_cs
ディレクトリ全体を削除する場合は、cs.wrapper
プロパティをfalse
に設定する必要があります。
ユーザーとパスワードの使用
WebCenter Sitesのインストール後にすべてのシステムでデフォルトのユーザー・アカウントがセキュアになったことを確認してください。ユーザー・アカウントとパスワードのポリシーを強化するには、OAMおよびLDAPの使用をお薦めします。
開発、管理および配信の全システムで、次のステップを実行します。
-
fwadmin
ユーザー・アカウントのデフォルト・パスワードを変更します(Adminインタフェースの「一般的な管理」ツリーで、「管理」ノード、「ユーザー・アクセス管理」ノードの順に開き、「ユーザー」をダブルクリックします)。 -
アプリケーション・サーバーのデフォルトの管理者ユーザー名およびパスワードを変更します。
-
Webサーバーのデフォルトの管理者ユーザー名およびパスワードを変更します。
-
サンプル・サイトがインストールされている場合、サーバーへのミラーリングのパブリッシュ方法に対してミラー・ユーザーが作成されています(ユーザー名:
mirroruser
)。このユーザーのパスワードを変更します。 -
SiteGod ACLを持つすべてのユーザー・アカウントで、パスワードを頻繁に変更します(Adminインタフェースの「一般的な管理」ツリーで、「管理」ノード、「ユーザー・アクセス管理」ノードの順に開き、「ユーザー」をダブルクリックします)。
SiteGod
ACLを持つユーザー・アカウントは、UNIXroot
ユーザーのように対処してください。ノート:
DefaultReaderユーザーのデフォルト・パスワードは変更しないでください。
avisportsおよびFirstSiteII以外のサンプル・サイトが管理システムまたは配信システムにインストールされている場合、エディタを含むすべてのサンプル・ユーザーを削除しますが、xceleditor
ACLは削除しないでください。また、fwadmin
ユーザーは削除しないでください。さらに、mirroruser
ユーザーのパスワードを変更します。
配信システムでは、そのシステムのシステム管理者以外のユーザーに、xceleditor
ACLを割り当てないでください。WebCenter Sitesのコンテンツ・アプリケーションがその配信システムにインストールされている場合、このACLにより、このコンテンツ・アプリケーションへのアクセスが可能になります。
SSLとデジタル証明の使用
リモートの従業員でもアクセスできる管理システムなど、企業ネットワーク外からアクセス可能なシステムや専用データを含むシステムでは、SSLを使用して、暗号化されたセキュアな接続を確立することをお薦めします。
自己署名証明書ではなく、信頼できる機関により承認されたデジタル証明書を使用する必要があります。自己署名証明書を使用すると、次のような結果になる場合があります。
-
Javaによるシステムへの内部コールが失敗する可能性がある。
-
左側のナビゲーション・ツリーやパブリッシュなど、ユーザー・インタフェースの一部の機能が正常に動作しない可能性がある。
URLとWebサーバーの使用(配信システムのみ)
配信システムのWebサーバーでは、次のWebCenter Sitesサーブレットのみにアクセス権を与えるようにします。それらのURLのみをアプリケーション・サーバーにマップします。
-
ContentServer
-
BlobServer
-
Satellite
-
CookieServer
その他のWebCenter Sitesサーブレットのアプリケーション・サーバーには、URLをマップしないでください。かわりに、次のサーブレットのURLは、「404 見つかりません」ページなどのエラー・ページにマップします。
-
HelloCS
-
CatalogManager
-
TreeManager
-
DebugServer
-
CacheServer
-
Inventory
WebCenter Sitesフォームとページの使用(配信システムのみ)
配信システムでは、必ずWebCenter Sitesアプリケーションの次の部分を無効にするか、完全に削除してください。
-
Webサーバーから
futuretense_cs
ディレクトリ全体を削除します。アプリケーション・サーバーからは、これを削除しないでください。その場合、プロパティ管理ツールを使用して、wcs_properties.json
ファイルのcs.wrapper
プロパティをfalse
に設定します(ラッパーはそのフォルダのHTMLファイル)。これを行わない場合、サイトの訪問者には、システム・エラー・メッセージではなく、「404ページが見つかりません」が表示されます。 -
SiteCatalog/OpenMarket/Xcelerate/UIFramework
に移動し、すべてのページの名前を変更します。最低でも、LoginPage
とLoginPost
の名前は変更してください。
暗号化および暗号化キー・セキュリティの実装
WebCenter Sitesでは、セキュアなサーバー・アクセスを使用して、セキュリティ攻撃からシステムを保護できます。アセットへのアクセスはすべて、暗号化を介して保護されています。
WebCenter Sitesのセキュリティの概要
WebCenter Sitesでは、システムはデフォルトで保護されており、さらにインストール要件に適合するようにセキュリティを厳しくする様々なオプションが用意されています。
システムには、暗号化手法によってパスワードおよびネットワーク全体でのデータ交換を正しく処理するために必要な、暗号化キーを提供する保護されたキー・ストアがインストールされています。これにより、システムのセキュリティを危険にさらす可能性のある未認可の個人には機密情報が表示されないようになります。
WebCenter Sitesは、セキュリティ向上のために、Oracle Platform Security Services (OPSS)資格証明ストアをサポートします。この資格証明ストア機能は、Oracleの高度な暗号化を使用して対称暗号化キーを作成および維持します。資格証明ストアの場所は、適切に構成されたJPS (Javaプラットフォーム・セキュリティ)プロバイダによって識別されます。資格証明ストアのアクセスや変更は、JPS権限によって保護されています。認可されたプログラムにのみ、資格証明ストアの読込み、修正、またはその両方を実行するためのアクセスが許可されます。
複数のアプリケーション・サーバー・コンテキストやシステム、またはその両方にまたがった暗号化のサポートを必要とするコンポーネントでは、同じ暗号化キーを使用できる必要があります。言い換えれば、ある場所で暗号化されたデータ値を別の場所で複合化する場合は、同じキーを使用する必要があります。暗号化および復号化を必要とする場所ごとに、中央キー・ストアのコピーを使用する必要があります。
WebCenter Sitesのセキュリティ構成について
セキュリティの構成は、SitesSecurityContext.xml
構成ファイルによって制御されます。このファイルは、OPSS資格証明ストアへのアクセスを必要とする外部プログラムのクラスパス上に存在する必要があります(構成の詳細は、OPSSのドキュメントを参照してください)。WebCenter Sitesは、製品内の様々な機能に暗号化キーを関連付けるために、標準のネーミング規則を使用します。あらゆる場合に使用される暗号化キーは1つも存在しません。そのため、機能ごとのキーの変更は、他の機能に影響を与えることなくいつでも実行できます。あらゆるキー・ストア・タイプに、次の4つの関連する名前が使用されます。
-
masterkey – 将来使用するために予約されています
-
tokenskey – Sitesトークン・ジェネレータで使用される暗号化キーです
-
generalkey – 暗号化されたPOSTによるデータ交換および外部ファイルに存在する機密情報のすべてに使用される暗号化キーです
-
passwordkey – データベース内のユーザー・パスワードを対称暗号化でエンコードする際に使用される暗号化キーです
セキュリティを強化するために、4つの暗号化キーのセットは、WebCenter Sitesのすべてのインストールで固有です。
Oracle資格証明ストア機能(CSF)は、Javaプラットフォーム・セキュリティ(JPS)経由でアクセスする非常にセキュアなキー・ストレージ機能です。この機能は、すべての環境にわたり使用できます。Oracleセキュリティの不可欠な部分であり、特定のプロバイダに固有なものではありません。この機能には、Oracle OSDT (Oracle Security Developer Tools)によって作成された対称暗号化キーのみを格納できます。WebLogic環境では、この資格証明ストアはJPSの権限によって保護されます。資格証明ストアにアクセスする、またはそのコンテキストを操作するプログラムは、権限を付与されている必要があります。適切な権限を付与されていないプログラムはアクセスを拒否されます。最高レベルのセキュリティが要求される状況では、このオプションを使用することをお薦めします。
SitesSecurityContext.xml構成ファイルについて
SitesSecurityContext.xml
ファイルは、WebCenter Sitesおよびその関連ユーティリティが動作するセキュリティ環境のすべての面を制御します。それはWebCenter Sitesサーバー内で、暗号化、暗号化キー・ストレージ、CSRFトークン生成および内部セキュリティ・プロセスのための実装クラスをインスタンス化するSpring構成ファイルです。様々なシステム構成要素間のセキュリティの不可欠な部分です。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- Crypto support package -->
<!-- Default Crypto package for WebLogic -->
<bean id="cryptoPackage" class="com.fatwire.security.common.OracleSecurityCrypto" />
<!-- Credential store support package -->
<!-- Default Credential Store for WebLogic -->
<bean id="credentialPackage" class="com.fatwire.security.common.WeblogicCredentialStore" >
<property name="securityMetaInfo" ref="securityMetaInfo" />
</bean>
<!-- CSRF Token generation/validation package -->
<bean id="tokenPackage" class="com.fatwire.auth.SecurityTokenImpl" >
</bean>
<bean id="securityMetaInfo" class="oracle.fatwire.security.common.SecurityMetaInfo" >
<property name="uniquePrefix" value="Sites" />
</bean>
<!-- Security Basis -->
<bean id="securityBasis" class="com.fatwire.security.common.SecurityBasis" >
<property name="securityCrypto" ref="cryptoPackage" />
<property name="securityToken" ref="tokenPackage" />
<property name="credentialStorage" ref="credentialPackage" />
<property name="securityMetaInfo" ref="securityMetaInfo" />
</bean>
<!-- Security Context -->
<bean id="securityContext" class="COM.FutureTense.Security.Context.AdvancedSecurityContextImpl" >
<property name="securityBasis" ref="securityBasis" />
<property name="convertCredentials" value="true" />
</bean>
</beans>
SitesSecurityContext.xml
ファイルは5つのBeanに分割され、そのうち3つ(cryptoPackage、credentialPackageおよびsecurityBasis)は必須で、2つ(tokenPackageおよびsecurityContent)はWebCenter Sitesサーバーのみにより使用されます。変更する場合、修正済ファイルを、それを必要とするすべてのコンポーネントのクラスパスに配置する必要があります。
このファイルに含まれるBeanは次のとおりです。
-
cryptoPackage
– 初期化する暗号化パッケージを指定します。-
com.fatwire.security.common.OracleSecurityCrypto
– OSDTを使用。Oracle資格証明ストア機能を使用する場合は、この暗号化パッケージを指定する必要があります。
-
-
credentialPackage
– 初期化するキー・ストレージを指定します。com.fatwire.security.common.WeblogicCredentialStore
– WebLogic固有のCSF実装
-
tokenPackage
–このBeanを必要とするのはSitesサーバーのみです。クラス・キーワードは適切なクラス実装を選択します(デフォルトはcom.fatwire.auth.SecurityTokenImpl)。securityTokenインタフェースを実装する、独自のセキュリティ・トークン・ジェネレータを実装するオプションがあります。 -
securityMetaInfo
- このBeanは、資格証明ストアを使用するアプリケーションの接頭辞を指定するために必要です。接頭辞は、異なるアプリケーションが同じ資格証明ストアを使用できるように、キーおよびパスワードに追加されます。WebCenter Sitesの接頭辞はSites
です。 -
securityBasis
- このBeanはすべてのセキュリティ・コンポーネントをまとめてバインドします。変更しないでください。プロパティ・エントリは、他のBean定義を参照します。securityTokenプロパティは、WebCenter Sitesサーバーでのみ指定されます。 -
securityContext
– このBeanを必要とするのはWebCenter Sitesサーバーのみです。それは、すべての内部セキュリティ・プロセスを扱うクラスを定義します。このBeanは変更しないでください。
このファイルは、暗号化およびキー・ストア機能へのアクセスを必要とする各アプリケーションのクラスパスに存在する必要があります。OPSS資格証明ストアへのアクセスを必要とするアプリケーションに対して、このファイルのコピーを、同じ暗号化および資格証明ストア・パッケージを使用して構成する必要があります(構成の詳細は、OPSSのドキュメントを参照してください)。
WebCenter Sitesセキュリティ・ユーティリティの使用
WebCenter Sitesシステムには、暗号化キー・ストレージの作成および保守を支援する様々なユーティリティが存在します。これらのユーティリティはsite-security.jar
に存在し、Javaコマンドから特定のクラス名をコールすることによって実行されます。実行時は、ユーティリティに必要なすべての jar
のクラスパスを定義する必要があります。
Weblogic CSFにアクセスしてキーを取得しようと試みるすべてのJava SE環境では、一部の構成が次のとおりに設定されている必要があり、資格証明ストアのコンテキストにアクセスするかそれを操るプログラムには、権限が付与されている必要があります。
config
、fmwconfig
およびlib
という名前のフォルダを作成します。作成したフォルダに次のファイルを配置します。
-
config:
'java.policy'(<weblogic_Home_Path>\oracle_common\modules\oracle.jps\domain_config\jse) 'SitesSecurityContext.xml'
(Sitesのconfigから) -
fmwconfig:
'bootstrap', 'keystores.xml' and 'jps-config-jse.xml' (<weblogic_Home_Path>\user_projects\domains\<domain_name>\config\fmwconfig)
-
lib: 次に示すJARをここに置く必要があります。JARファイルは、デプロイされたサイト・インスタンスの下の
WEB-INF/lib
、または${ORACLE_HOME}/wcsites/webcentersites/sites-home/lib
で取得できます。
最初の引数に指定されたクラス名のユーティリティ・クラスを実行するサンプル・シェル・スクリプトを次に示します。
#!/bin/sh
# Set JAVA_HOME
JAVA_HOME="/fmw/jdk/bin"
# Set CLASS_PATH
weblogicPath=<Path to weblogic>
fmwConfigPath=./fmwconfig
oracleCommonPath=${weblogicPath}/oracle_common
oracleJps=${oracleCommonPath}/modules/oracle.jps
jpsConfigPath=${fmwConfigPath}/jps-config-jse.xml
javaPolicy=./config/java.policy
jpsManifestJar=${oracleJps}/jps-manifest.jar
javaOpts=-cp .:./config
javaOpts=${javaOpts}:./lib/sites-security.jar
javaOpts=${javaOpts}:${jpsManifestJar}
javaOpts=${javaOpts}:./lib/commons-codec-1.7.jar
javaOpts=${javaOpts}:./lib/commons-configuration-1.9.jar
javaOpts=${javaOpts}:./lib/commons-lang-2.5.jar
javaOpts=${javaOpts}:./lib/commons-logging-1.1.3.jar
javaOpts=${javaOpts}:./lib/log4j-1.2.17.jar
javaOpts=${javaOpts}:./lib/quartz-2.2.1.jar
javaOpts=${javaOpts}:./lib/sites-request-authenticator.jar
javaOpts=${javaOpts}:./lib/sites-cs.jar
javaOpts=${javaOpts}:./lib/spring-core-4.3.0.RELEASE.jar
javaOpts=${javaOpts}:./lib/xercesImpl-2.11.0.jar
javaOpts=${javaOpts}:./lib/xml-apis-1.4.01.jar
javaOpts=${javaOpts}:./lib/javaee-api-7.0.jar
$JAVA_HOME/java ${javaOpts} -Doracle.security.jps.config=${jpsConfigPath} -Dcommon.components.home=${oracleCommonPath} -Djava.security.policy=${javaPolicy} com.fatwire.security.util.$1 $2 $3
Javaクラスの説明
com.fatwire.security.util.CreateDefaultCredentialStore
: このユーティリティは、OPSSストアに、Oracle暗号化キーのランダムに生成されたセットを移入します。このユーティリティで既存のWebCenter Sites暗号化キーを置き換える場合は、replace引数をyesに設定します。
引数
product=sites
replace=no | yes
(デフォルトはno
)
com.fatwire.security.util.ExportFromCSF
は、現在のストアの各WebCenter Sitesキーのソルトを抽出して、値を作業ディレクトリのexport.keysファイルに書き込みます。このエクスポート・ファイルは、次に示すインポート・ユーティリティ・プログラムの入力として使用されます。
引数: (オプション)
export.keys
com.fatwire.security.util.ImportToCSF.class
は、抽出されたソルトをexport.keys
ファイルから取り出し、それを使用してWebCenter Sitesの各暗号化キーを作成し、出力資格証明ストアに追加します。出力資格証明ストアは、 jps-config.xml
のlocationプロパティで定義されます。
引数
product=sites
import=export.keys
replace=no | yes
(デフォルトはno
)
ESAPIセキュリティ検証の使用
WebCenter Sitesサーバーは、Enterprise Security APIを使用して、悪意のあるWebデータのインジェクションから発生するセキュリティ脆弱性をチェックし、抑止します。ESAPI.properties
ファイルに含まれる検証式は変更できます。WebCenter Sitesサーバーをインストールする場合、このファイルはWebCenter SitesのWEB-INF/classes
フォルダにあります。
ESAPIの詳細は、https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
を参照してください。
RESTセキュリティの使用
RESTセキュリティにより、アセットにアクセスするユーザーを認証し、アプリケーション・リソースに関する様々なユーザー・ロールを管理できます。
次の各トピックでは、RESTセキュリティに関する情報を提供します。
REST認可
REST認可は、アプリケーションのリソース(WebCenter Sites内のオブジェクトにマップされる)に対してRESTの各操作を実行するための権限を付与します。REST認可は、「デフォルトではすべてを拒否」するモデルを使用します。権限が特定のグループに対して明確に付与されていない場合、その権限は拒否されます。一般管理者は、アプリケーションがデプロイされ、WEMフレームワークに登録された後で、ユーザーを認可します。
次の各トピックでは、REST認可に関する情報を提供します。
セキュリティ・モデル
WEMセキュリティ・モデルはオブジェクト、グループおよびアクションに基づいています。オブジェクトとグループは、WebCenter Sitesであらかじめ定義されています(WebCenter Sites内のオブジェクトはWEMフレームワークのRESTリソースにマップされます)。アクションは、WebCenter Sitesで作成する権限(READ、CREATE)です。セキュリティは、WebCenter Sites Adminインタフェースでオブジェクト・タイプごとに構成する必要があります。
-
オブジェクトとは、サイト、ユーザーまたはアセットのような、あらゆるエンティティです。保護オブジェクトには次のタイプがあります。
-
アセット・タイプ
-
サイト
-
ユーザー・ロケール
-
アプリケーション
-
アセット
-
ロール
-
ACL
-
索引
-
ユーザー
-
グループ
-
-
セキュリティ・グループは、オブジェクトを操作する複数ユーザーの権限を管理するために使用されます。
-
所定のタイプのオブジェクトは、ユーザーが、所定のタイプのオブジェクト上で指定されたアクションを実行する権限を持つ少なくとも1つのグループに属する場合のみ、ユーザーにアクセスできます。
-
アクションとは、
LIST
、HEAD
、READ
、UPDATE
、CREATE
、DELETE
の各セキュリティ権限です。グループには、そのグループに許可されたオブジェクトを操作するための権限が割り当てられます。ACLなど一部のオブジェクトはリスト専用です(WebCenter Sitesで直接作成されますが、RESTを介しての作成はできません)。
セキュリティ構成は、次を指定する配列です。
-
保護されているオブジェクト・タイプおよびオブジェクト
-
オブジェクトにアクセス可能なグループ
-
グループ(およびそのメンバー)がオブジェクトに実行できるアクション
権限解決アルゴリズム
セキュリティ権限を構成する際に、特定のタイプのすべてのオブジェクトまたは特定のタイプの単一のオブジェクトに権限が適用されるように指定できます。たとえば、UPDATE
(POST)
への権限を任意のサイトに付与すると、グループ内のユーザーはすべてのサイトの詳細をWEMフレームワークで変更できます。avisportsサイトのUPDATE
(POST)
権限を付与すると、グループ内のユーザーはavisportsサイトの詳細をWEMで変更できます。
Asset
オブジェクト・タイプでは、セキュリティ設定の適用先サイトを指定する必要があります。アセットは、常に特定のサイトからアクセスされるからです。サブタイプを指定することで、AssetType
オブジェクト・タイプを調整できます。たとえば、アセット・タイプContent_C
に対するDELETE
権限を設定する場合、RESTリソース/types/Content_C
上でDELETE
リクエストを実行します(つまり、Content_C
アセット・タイプをシステムから削除します)。
権限はグループにのみ付与できるため、ユーザーの総合的な権限は、ユーザーが属するすべてのグループにわたり計算されるまで明らかになりません。WEMフレームワークには、権限解決アルゴリズムが用意されています。その基本的なステップを次に示します。
-
RESTによって、ユーザーがメンバーシップを持つグループが検索されます。
-
RESTによって、各グループが実行できるREST操作およびその対象となるRESTリソースが判別されます。サイトまたはサブタイプが指定されている場合は、個々に考慮されます。
-
RESTによって、ステップ1および2の結果が比較されます。ステップ1で得られたグループの少なくとも1つがステップ2で得られたグループのリストに存在する場合、アクセスは許可されます。そうでない場合は、アクセスが拒否されます。
アプリケーション・リソースへのアクセスのユーザーへの認可
ユーザーにアプリケーション・リソースへのアクセスを認可する前に、次のトピックで説明するステップに関する背景情報を、REST認可で参照してください。
-
ノート:
RESTリソースのセキュリティを構成するには、権限をグループに割り当てる必要があります。グループのリストを表示するには、RESTセキュリティ構成の表示に進んでください。グループを作成するには、グループの作成を参照してください。
RESTセキュリティ構成の表示
セキュリティ構成では、どのグループがどのRESTリソースに対するどの権限を持っているかを指定します。WebCenter Sitesでは、2つのデフォルト・グループのセキュリティ構成が定義されています。RestAdmin
とSiteAdmin_AdminSite
です。
RESTセキュリティ構成を表示するには::
グループへのユーザーの追加
グループにユーザーを追加して、アプリケーションに関連付けられたRESTリソースを操作するために持つ必要がある権限を決定します。
-
一般管理者としてAdminインタフェースにログインします。
-
「一般的な管理」ツリーで、「管理」ノードノード、ユーザー・アクセス管理」ノード、「RESTセキュリティ」ノード、「グループへのユーザーの割当て」ノードの順に展開し、「新規追加」をダブルクリックします。
-
「ユーザーへのグループの割当て」フォームで、ユーザーを選択し、リストされているグループの任意の組合せに対して割り当てます。
ノート:
グループに割り当てるユーザーがリストされていない場合、そのユーザーはグループのメンバーになっています。このユーザーを別のグループに割り当てるには、ステップ5を参照してください。
-
「保存」をクリックします。
選択したユーザー名は、「グループへのユーザーの割当て」ノードにリストされます。特定のユーザーを含むグループを表示するには、ユーザー名をダブルクリックします。
-
(オプション)。特定のグループに割り当てるユーザーの名前が「ユーザー名」フィールドに表示されない場合、次を実行します。
-
「一般的な管理」ツリーで、「管理」ノードノード、ユーザー・アクセス管理」ノード、「RESTセキュリティ」ノード、「グループへのユーザーの割当て」ノードの順に展開し、別のグループに割り当てるユーザーの名前をダブルクリックします。
-
ユーザーの「調査」フォームで「編集」をクリックして、「ユーザー・グループの編集」フォームを開きます。
-
「グループ」フィールドで、ユーザーを割り当てるグループを選択して「保存」をクリックします。
-
-
グループにユーザーが追加されたら、次を実行できます。
-
グループを作成します。詳細は、「グループの作成」を参照してください。
-
グループのセキュリティを構成します。詳細は、RESTリソースのセキュリティの構成を参照してください。
-
RESTリソースのセキュリティの構成
セキュリティを構成する際、どのオブジェクト・タイプおよびオブジェクトにグループがアクセスできる必要があるか、およびどのアクションをグループがオブジェクトに対して実行できるかを指定します。
RESTリソースのセキュリティを構成するには::
表13-1 使用できるアクション(セキュリティ権限)
アクション | 説明 |
---|---|
作成 |
グループ・メンバーは、指定されたリソースを作成できます。 |
削除 |
グループ・メンバーは、指定されたリソースを削除できます。 |
リスト |
グループ・メンバーは、指定されたリソースを取得できます。 |
読取り/先頭 |
グループ・メンバーは、指定されたリソースを読むことができます。読取りは、リクエストされたリソースを戻します。先頭は、リクエストされたリソースを記述したメタデータを戻します。 |
更新 |
グループ・メンバーは、指定されたリソースを変更できます。 ノート: 作成と更新はそれぞれが読取り/先頭権限とペアになります。これらの権限のいずれかをグループに割り当てると、自動的に読取り/先頭権限もグループに割り当てられます。 |
表13-2 可能なセキュリティ構成オプションの概要
オブジェクト・タイプ | 名前 | サブタイプ | サイト | 可能なアクション |
---|---|---|---|---|
ACL |
任意 |
該当なし |
該当なし |
リスト |
アプリケーション(ノート1参照) |
任意 |
該当なし |
該当なし |
作成、更新、削除 |
アプリケーション |
AppName |
該当なし |
該当なし |
更新、削除 |
アセット |
任意 |
該当なし |
任意 |
リスト、読取り/先頭、作成、更新、削除 |
アセット |
任意 |
該当なし |
SiteName |
リスト、読取り/先頭、作成、更新、削除 |
アセット |
AssetType |
該当なし |
SiteName |
リスト、読取り/先頭(ノート2参照)、作成、更新、削除 |
アセット |
AssetTypeおよびAssetName |
該当なし |
SiteName |
読取り/先頭、更新、削除 |
AssetType |
任意 |
該当なし |
該当なし |
リスト、読取り/先頭、作成、削除 |
AssetType |
AssetType |
該当なし |
該当なし |
読取り/先頭、削除 |
AssetType |
AssetType |
任意 |
該当なし |
リスト |
AssetType |
AssetType |
サブタイプ |
該当なし |
読取り/先頭 |
グループ |
任意 |
該当なし |
該当なし |
リスト |
グループ |
GroupName |
該当なし |
該当なし |
読取り/先頭 |
索引 |
任意 |
該当なし |
該当なし |
リスト、読取り/先頭、作成、更新、削除 |
索引 |
IndexName |
該当なし |
該当なし |
読取り/先頭、更新、削除 |
ロール |
任意 |
該当なし |
該当なし |
リスト、読取り/先頭、作成、更新、削除 |
ロール |
Role |
該当なし |
該当なし |
読取り/先頭、更新、削除 |
サイト |
任意 |
該当なし |
該当なし |
リスト、読取り/先頭(ノート3参照)、作成、更新、削除 |
サイト |
SiteName |
該当なし |
該当なし |
読取り/先頭、更新、削除 |
ユーザー |
任意 |
該当なし |
該当なし |
リスト、読取り/先頭、作成、更新、削除 |
ユーザー |
UserName |
該当なし |
該当なし |
読取り/先頭、更新、削除 |
UserDef |
任意 |
該当なし |
該当なし |
リスト |
UserLocales |
任意 |
該当なし |
該当なし |
リスト |
異なるオブジェクト・タイプの構成は、RESTセキュリティ構成リファレンスを参照してください。
ノート:
-
アプリケーションの設定セキュリティの例は、ステップ3を参照してください。
-
READの場合、名前が付けられたサイトで関連付けを読み取ることができます。
-
READの場合、名前が付けられたサイトでユーザーおよびアセット・タイプを読み取ることができます。
RESTセキュリティ構成リファレンス
次の参照トピックは、表13-2を補足します。各トピックで、表にあるセキュリティ構成の詳細を説明しています。
ACLリソースのRESTセキュリティの構成
ACLにセキュリティ権限を割り当てる際に、ACLリソース・リストをどのグループが表示できるかを決定します。
ACLのグループ・セキュリティを構成するには::
アプリケーション・リソースのRESTセキュリティの構成
アプリケーションにセキュリティ権限を割り当てる際に、指定したアプリケーションに対してどのグループがどの操作を実行できるかを決定します。
アプリケーションのグループ・セキュリティを構成するには::
表13-3 「新規セキュリティ構成の追加」のフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するアプリケーションの名前を選択するか、「任意」を選択してすべてのアプリケーションに対する権限をグループに付与します。 |
グループ |
アプリケーションを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「作成」を選択した場合、選択したグループのメンバーは、WEMでアプリケーションをアクセス可能にするアセットを作成できます。 |
アセット・リソースのRESTセキュリティの構成
アセットにセキュリティ権限を割り当てる際に、指定したアセットに対してどのグループがどの操作を実行できるかを決定します。
アセットのグループ・セキュリティを構成するには::
表13-4 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
サイト |
グループに権限を付与するアセットに関連付けられているサイトを選択するか、「任意」を選択してシステム全体のすべてのアセットに対する権限をグループに付与します。 |
名前 |
グループに権限を付与するアセットに関連付けられているアセット・タイプを選択するか、「任意」を選択してすべてのアセットに対する権限をグループに付与します。選択したアセット・タイプの、指定したアセットをグループが使用できるようにするには、「参照」ボタンをクリックします。 |
グループ |
アセットを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、特定のサイト、特定のアセット・タイプおよび「リスト」を選択した場合、選択したグループのメンバーは、指定したアセット・タイプのアセットを、指定したサイトで検索できます。 |
アセット・タイプ・リソースのRESTセキュリティの構成
アセット・タイプにセキュリティ権限を割り当てる際に、指定したアセット・タイプに対してどのグループがどの操作を実行できるかを決定します。
アセット・タイプのグループ・セキュリティを構成するには::
表13-5 「新規セキュリティ構成の追加」のフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するアセット・タイプを選択するか、「任意」を選択してすべてのアセット・タイプに対する権限をグループに付与します。 |
サブタイプ |
(オプション)グループに権限を付与するアセット・タイプのサブタイプを選択します。 ノート: 「名前」フィールドで「任意」オプションを選択した場合、「サブタイプ」フィールドは表示されません。 |
グループ |
アセット・タイプを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「作成」を選択した場合、選択したグループのメンバーは、アセット・タイプを作成できます。 |
EngageリソースのRESTセキュリティの構成
Engageリソースにセキュリティ権限を割り当てる際に、Engageに対してどのグループがどの操作を実行できるかを決定します。
グループのグループ・セキュリティを構成するには::
表13-6 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
サイト |
グループに権限を付与するアセットに関連付けられているサイトを選択するか、「任意」を選択してシステム全体のすべてのアセットに対する権限をグループに付与します。 |
名前 |
グループに権限を付与するアセットに関連付けられているアセット・タイプを選択するか、「任意」を選択してすべてのアセットに対する権限をグループに付与します。選択したアセット・タイプの、指定したアセットをグループが使用できるようにするには、「参照」をクリックします。 |
グループ |
アセットを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、特定のサイト、特定のアセット・タイプおよび「リスト」を選択した場合、選択したグループのメンバーは、指定したアセット・タイプのアセットを、指定したサイトで検索できます。 |
グループ・リソースのRESTセキュリティの構成
グループにセキュリティ権限を割り当てる際に、指定したグループに対してどのグループがどの操作を実行できるかを決定します。
グループのグループ・セキュリティを構成するには::
表13-7 「新規セキュリティ構成の追加」のフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するグループを選択するか、「任意」を選択してすべてのグループに対する権限をグループに付与します。 |
グループ |
グループを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「リスト」を選択した場合、選択したグループのメンバーは、システムにあるグループのリストを表示できます。 |
索引付きアセット・タイプ・リソースのRESTセキュリティの構成
索引付きアセット・タイプにセキュリティ権限を割り当てる際に、指定した索引付きアセット・タイプに対してどのグループがどの操作を実行できるかを決定します。
ノート:
索引付きアセット・タイプのセキュリティを構成する前に、WebCenter Sitesのグローバル検索およびアセット・タイプ検索のための索引付けを有効にする必要があります。「検索索引の設定」を参照してください。
グループにグループ・セキュリティ権限を割り当てる際に、指定したグループに対してどのグループがどの操作を実行できるかを決定します。
索引付きアセット・タイプのグループ・セキュリティを構成するには::
表13-8 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与する索引付きアセット・タイプの名前を選択します。「任意」を選択すると、すべての索引付きアセット・タイプに対する権限がグループに付与されます。「グローバル」を選択すると、グローバル検索に関連付けられているすべての索引付きアセット・タイプに対する権限がグループに付与されます。 |
グループ |
索引付けされたアセット・タイプを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「リスト」を選択した場合、選択したグループのメンバーは、システムのすべての索引付きタイプのアセットを検索できます。 |
ロール・リソースのRESTセキュリティの構成
ロールにセキュリティ権限を割り当てる際に、指定したロールに対してどのグループがどの操作を実行できるかを決定します。
ロール・リソースのグループ・セキュリティを構成するには::
表13-9 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するロールの名前を選択するか、「任意」を選択してすべてのロールに対する権限をグループに付与します。 |
グループ |
ロールを操作するための権限を付与するユーザー・グループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「作成」を選択した場合、選択したグループのメンバーは、ロールを作成できます。 |
サイト・リソースのRESTセキュリティの構成
サイトにセキュリティ権限を割り当てる際に、指定したサイトに対してどのグループがどの操作を実行できるかを決定します。
サイトのグループ・セキュリティを構成するには::
表13-10 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するサイトの名前を選択するか、「任意」を選択してすべてのサイトに対する権限をグループに付与します。 |
グループ |
サイトを操作するための権限を付与するユーザー・グループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。メニュー・オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「作成」を選択した場合、選択したグループのメンバーは、サイトを作成できます。 |
ユーザー・リソースのRESTセキュリティの構成
ユーザーにセキュリティ権限を割り当てる際に、指定したユーザーに対してどのグループがどの操作を実行できるかを決定します。
ユーザー・リソースのグループ・セキュリティを構成するには::
表13-11 「新規セキュリティ定義の追加」のフィールド名
フィールド | 説明 |
---|---|
名前 |
グループに権限を付与するユーザーの名前を選択するか、「任意」オプションを選択してすべてのユーザーに対する権限をグループに付与します。 |
グループ |
ユーザーを操作するための権限を付与するグループを選択します。 |
アクション |
セキュリティ権限をグループに割り当てます。メニュー・オプションは、前のフィールドで選択した値によって異なります。たとえば、「任意」および「作成」を選択した場合、選択したグループのメンバーは、ユーザーを作成できます。 |
UserDefリソースのRESTセキュリティの構成
ユーザー定義にセキュリティ権限を割り当てる場合、システムのユーザー定義を表示できるグループを指定します。
UserDefリソースのグループ・セキュリティを構成するには::
表13-12 「新規セキュリティ構成の追加」フォームのフィールド名
フィールド | 説明 |
---|---|
名前 |
すべてのユーザー定義に対する権限をグループに付与するオプションのみ選択できます。 |
グループ |
ユーザー定義を表示するための権限を付与するグループを選択します。 |
アクション |
グループに割り当てることができるセキュリティ権限は、「読取り/先頭」のみです。これを選択すると、選択したグループのメンバーが、システムのユーザー定義を表示できるようになります。 |
UserLocaleリソースのRESTセキュリティの構成
ユーザー・ロケールにセキュリティ権限を割り当てる際に、UserLocaleリソース・リストをどのグループが表示できるかを決定します。
UserLocaleリソースのグループ・セキュリティを構成するには::
表13-13 「新規セキュリティ構成の追加」のフィールド名
フィールド | 説明 |
---|---|
名前 |
すべてのユーザー・ロケールに対する権限をグループに付与するオプションのみ選択できます。 |
グループ |
ユーザー・ロケールを表示するための権限を付与するグループを選択します。 |
アクション |
グループに割り当てることができるセキュリティ権限は、システム上のユーザー・ロケールのリストを表示する権限のみです。 |