RESTリソースの使用の詳細は、次の項を参照してください。
WEMフレームワークでは、CAS (http://www.jasig.org/cas
)上に構築されたSSOメカニズムを認証の際に使用します。このシステムの動作は、REST APIをブラウザから使用するか、プログラムから使用するかによって異なります。
ブラウザからREST APIにアクセスすると、ユーザーはCASログイン・ページにリダイレクトされ、ログインに成功すると、ユーザーのアイデンティティを確立するために検証されるticket
パラメータによって、元の位置に戻されます。プログラムでREST APIにアクセスする場合は、開発者がticket
パラメータまたはmultiticket
パラメータのいずれかを指定する必要があります。
ticket
およびmultiticket
パラメータを取得するにはいずれも、Oracle SSO APIを使用するか(Javaでコールする場合)、単にHTTPプロトコルを使用します(他の言語でコールする場合)。ticket
とmulticket
の違いは、ticketはRESTリソースごとに取得され、1回しか使用できないのに対し(名前からわかるように、列車や劇場のチケットが1回の乗車あるいは1回の鑑賞のみに有効であることを想像してください)、multiticketは任意のリソースに対して複数回使用できます。ticket
およびmultiticket
パラメータはいずれも回数に制限がありますが、一般的な使用パターンが異なります。チケットはコールごとに取得されるので、有効期限はありません。一方、同じmultiticketを再利用すると最終的に期限切れとなり、HTTP 403
エラーが発生します。期限切れになった場合、アプリケーションでこのような動作を認識して、そのmultiticketを再取得できる必要があります。ticket
とmultiticket
のどちらを使用するかは、アプリケーション開発者が決定します。
この項には次のトピックが含まれます:
Oracle SSO APIは、認証プロバイダに依存しない方法で実装されています。ただし、ユーザーは独自のSSO認証プロバイダを登録できません。新しい認証プロバイダのサポートは、Oracleでのみ実装できます。プロバイダの切替えは、SSO構成ファイルを変更するのみで済みます。
すべてのSSOコールは、SSOフロントエンド・クラスSSOで開始します。これは、SSOSession
オブジェクトの取得に使用されます。SSOSession
は、SSO構成ごとに取得されます。Webアプリケーションの場合はSpring Webアプリケーション・ローダーを使用してロードされた単一の構成、またはスタンドアロン・アプリケーションの場合は構成ファイルからロードされた構成となります。
Webアプリケーションでチケットを取得するには:
SSO.getSession().getTicket(String service,String username, String password)
SSO.getSession().getMultiTicket(String username, String password
)
スタンドアロン・アプリケーションでチケットを取得するには:
SSO.getSession(String configName).
getTicket
(String service, String username, String password)
SSO.getSession(String configName).getMultiTicket
(String username, String password)
CAS REST APIは、チケットまたはマルチチケット(あるいはその両方)を配信環境で取得するために使用します。チケットまたはマルチチケットのいずれかを取得するには、2つのHTTP POST
コールを実行する必要があります。チケットとマルチチケットとの違いは、マルチチケットの場合はservice
パラメータが*
(アスタリスク)であるのに対し、ticket
パラメータの場合は、実際にアクセスするRESTリソースである点です。
次の例では、CASサーバーに対して実行されるコールを示します。このコールでは、資格証明fwadmin
/xceladmin
を使用してhttp://localhost:8080/cs/REST/sites
サービスのチケットを取得します。
プロトコルは、非常に単純です。最初に、ユーザー名およびパスワード・パラメータをapplication/x-www-form-urlencoded POST
リクエストで渡すことで、Ticket Granting Ticket (TGT)を取得するためのコールを実行します。レスポンスにはLocation
HTTPヘッダーが含まれます。これを使用して、service
パラメータを指定する2番目のapplication/x-www-form-urlencoded POST
リクエストを発行します。レスポンス本文には実際のチケットが含まれます。
生成されたチケット/マルチチケット(図63-1)を使用するには、ticket/multiticket
URL問合せパラメータを指定します。次に例を示します。
http://localhost:8080/cs/REST/sites?ticket=ST-1-7xsHEMYR9ZmKdyNuBz6W-cas http://localhost:8080/cs/REST/sites?multiticket=ST-2-Bhen7VnZBERxXcepJZaV-cas
デフォルトでは、WebCenter SitesとリモートSatellite Server間の通信チャネルは信頼されていません。リモートSatellite ServerのSSOConfig.xml
ファイルのproxyTickets
パラメータがtrue
に設定されているため、アクセスしているアプリケーションで指定されたチケットが、リモートSatellite Serverによって強制的にプロキシされます。
最適なパフォーマンスを得るために、システムをSatellite Serverのみによって認証するように構成できます。REST APIによって使用されるRESTおよびWebCenter SitesエレメントをSSOフィルタから除外することにより、WebCenter Sites側でセキュリティ・チェックを無効にする必要があります。Satellite Server側で、SSOConfig.xml
ファイルのproxyTickets
パラメータをfalse
に設定する必要があります。このモードではマルチチケットを活用できます。このモードでは、WebCenter Sitesのインストールはプライベート・ネットワーク内でホストする必要があること、およびWebCenter SitesとリモートSatellite Server間の通信チャネルの信頼性を確保する必要があることに注意してください。
シングル・サインオン・モジュールはSpring構成に基づいています。唯一必要なBeanはssoprovider
で、これはssoconfig
Beanを参照しています。
この項には次のトピックが含まれます:
表63-1では、ssolistener
Beanおよびプロパティを説明します。
id="ssolistener", class="com.fatwire.wem.sso.cas.listener.CASListener"
表63-1 id="ssolistener"
プロパティ | 説明 |
---|---|
このBeanにはプロパティはありません。 |
該当なし |
表63-2では、ssofilter
Beanおよびプロパティを説明します。
id="ssofilter", class="com.fatwire.wem.sso.cas.filter.CASFilter"
表63-2 id="ssofilter"
プロパティ | 説明 |
---|---|
|
必須。SSO構成参照です。 サンプル値: |
|
必須。SSOプロバイダ参照です。 サンプル値: |
表63-3では、provider
Beanおよびプロパティを説明します。
id="provider", class="com.fatwire.wem.sso.cas.CASProvider"
表63-3 id="provider"
プロパティ | 説明 |
---|---|
|
SSO構成参照です。 サンプル値: |
表63-4では、config
Beanおよびプロパティを説明します。
id="config", class="com.fatwire.wem.sso.cas.conf.CASConfig"
表63-4 id="config"
プロパティ | 説明 |
---|---|
|
プロキシ・コールバックのパス( サンプル値: |
|
このプロパティは、保護されているページへの未認証アクセスに対するデフォルト動作を指定するために使用します。 サンプル値: |
|
ログイン・ページのパス( 次の追加の問合せパラメータを受け取ることができます。
サンプル値: |
|
CAS RESTサーブレットのパス( サンプル値: |
|
ログアウト・ページのパス( サンプル値: |
|
必須プロパティ。CAS URLの接頭辞です。 URLは内部と外部の両方で解決する必要があります。 例: |
|
|
|
デフォルトでリダイレクトの動作が行われるようにする場合は次の点に注意してください。クライアントがリダイレクトを追従できることを確認してください。そうでない場合は、 デフォルト値: |
|
マルチチケットのタイムアウト(ミリ秒単位)。 デフォルト値: |
|
除外されるマッピングのリスト。正規表現を使用できます。 許可値: |
|
保護されるマッピングのリスト。正規表現を使用できます。 許可値: pathはURLパスの一部です。アスタリスクを含めることができます( 例 /folder1/folder2は/folder1/*と一致しますが、/folder1/folder2/folder3は一致しません。 /folder1/folder2と/folder1/folder2/folder3は、/folder1/**と一致します。
パラメータには、 例
|
|
リモートSatellite Serverを介してアプリケーションのカスタムRESTリソースを使用可能にするには、次の値を指定します。
例 「WebCenter SitesおよびSatellite Server用のRESTリソースの作成: 例」のカスタムRESTリソースに指定する場合は、 |
|
チケットをプロキシするかどうかを指定します。 コール・チェーンの最後のサーバーに対してこのプロパティを 現在のログイン済ユーザーの代理としてこのアプリケーションからCASで保護された別のアプリケーションをコールする必要がある場合は、このプロパティを デフォルト値: |
|
マルチチケットを使用するかどうかを指定します。 デフォルト値: |
表63-5で、SSOフィルタで処理される問合せパラメータについて説明します。
表63-5 SSOフィルタで処理される問合せパラメータ
プロパティ名 | 説明 |
---|---|
|
ユーザーIDを検証するために使用します。あるかぎられた期間内で、1つのリソースに対して1回のみ使用できます。 タイプ: 値: |
|
ユーザーIDを検証するために使用します。あるかぎられた期間内で、任意のリソースに対して複数回使用できます。 タイプ: 値: |
|
このプロパティが タイプ: 値: |
|
保護されているページへの未認証アクセスに対するデフォルトの動作を指定するために使用します。このプロパティが タイプ: 値: |
CASクラスタリングに関する情報は、次のソースを参照してください。
CASアーキテクチャの詳細は、次のリンクを使用してください。
WebCenter Sitesのインストール時にCASクラスタリングを構成する方法の詳細は、『Oracle WebCenter Sitesのインストールと構成』を参照してください。
LDAPプロバイダでCASを構成する方法の詳細は、次のリンクを使用してください。
http://www.jasig.org/cas/server-deployment/authentication-handler
REST認可は、アプリケーションのリソース(WebCenter Sites内のオブジェクトにマップされる)に対してRESTの各操作を実行するための権限を付与するプロセスです。REST認可は、デフォルトではすべてを拒否するモデルを使用します。権限が特定のグループに対して明確に付与されていない場合、その権限は拒否されます。
この項には次のトピックが含まれます:
WEMセキュリティ・モデルはオブジェクト、グループおよびアクションに基づいています。セキュリティは、図63-2に示すように、Adminインタフェースでオブジェクト・タイプごとに構成する必要があります。特定のタイプのオブジェクトにユーザーがアクセスできるのは、特定のタイプのオブジェクトに対して指定されたアクションを実行する権限を持つグループの少なくとも1つにこのユーザーが属する場合のみです。
オブジェクトは、サイト、ユーザー、アセットなど、WEMフレームワーク内のエンティティを示す総称です。保護オブジェクトには次のタイプがあります。
アセット・タイプ
アセット
索引
サイト
ロール
ユーザー
ユーザー・ロケール
ACL
アプリケーション
セキュリティ・グループは、ユーザーを集約して、ユーザーの(オブジェクトへの操作)権限を同時に管理するために使用します。
アクションは、LIST、READ
、UPDATE
、CREATE
、DELETE
の各セキュリティ権限です。LIST
はオブジェクトをリストするサービス(/types
など)に対するGET
権限を提供し、READ
は個々のオブジェクトの詳細を取得するサービス(/types/{assettype}
など)に対するGET
権限を提供します。
権限は、許可されたオブジェクトを操作するためにグループに割り当てられます。ACLなど一部のオブジェクトは読取り専用です(WebCenter Sitesで直接作成できますが、RESTを介して作成できません)。
前述のように、セキュリティ構成とは1つの配列です。セキュリティ構成では次を指定します。
保護されているオブジェクト・タイプおよびオブジェクト
オブジェクトにアクセス可能なグループ
グループ(およびそのメンバー)がオブジェクトに実行できるアクション
可能なセキュリティ構成およびWebエクスペリエンス管理フレームワークの詳細は、『Oracle WebCenter Sitesの管理』を参照してください。
WebCenter Sites内のオブジェクト・タイプとオブジェクトは、WEMフレームワーク内のRESTリソースにマップされます。たとえば、Asset Type
オブジェクトは次のリソースにマップされます。
<BaseURI>/types/
リソース(システム内のすべてのアセット・タイプを一覧表示します)
<BaseURI>/types/<assettype>
リソース(選択されたアセット・タイプに関する情報を表示します)など。
WebCenter Sitesのアクションは、WEMフレームワークのRESTメソッドにマップされます。たとえば、アセット・タイプContent_C
を操作するためのREAD
権限をグループEditor
に付与すると、Editor
グループのユーザーには、RESTリソース/types/Content_C
に対してGET
およびHEAD
メソッドを使用する権限が付与されます。
LIST
アクションでは、グループ・メンバーがRESTリソースに対してGET
メソッドを使用できます。
READ
アクションでは、グループ・メンバーがRESTリソースに対してGET
およびHEAD
メソッドを使用できます。
UPDATE
アクションでは、グループ・メンバーがRESTリソースに対してPOST
メソッドを使用できます。
CREATE
アクションでは、グループ・メンバーがRESTリソースに対してPUT
メソッドを使用できます。
DELETE
アクションでは、グループ・メンバーがRESTリソースに対してDELETE
メソッドを使用できます。
詳細は、『Oracle WebCenter Sites REST APIリソース・リファレンス』を参照してください。
RESTセキュリティの構成およびWebエクスペリエンス管理フレームワークの詳細は、『Oracle WebCenter Sitesの管理』を参照してください。
セキュリティ権限を構成する際に、特定のタイプのすべてのオブジェクトまたは特定のタイプの単一のオブジェクトに権限が適用されるように指定します。たとえば、任意のサイトに対するUPDATE
(POST)
権限を付与すると、グループ内のユーザーはすべてのサイトの詳細をWEMフレームワークで変更できるようになります。
Asset
オブジェクト・タイプでは、セキュリティ設定の適用先サイトを指定する必要があります。アセットは、常に特定のサイトからアクセスされるからです。AssetType
オブジェクトはサブタイプを指定することで拡張でき、セキュリティ構成をより詳細に設定するために使用されます。たとえば、アセット・タイプContent_C
にDELETE
権限を設定すると、RESTリソース/types/Content_C
でのDELETE
リクエストの実行(つまり、システムからContent_C
アセット・タイプを削除するための)が許可されます。
権限はグループにのみ付与できるため、ユーザーの全体的な権限は、そのユーザーの全グループを通じて権限が算出されるまで明確になりません。WEMフレームワークには、権限解決アルゴリズムが用意されています。その基本的な手順を次に示します。
WebCenter Sites REST APIを介したアセットの管理を示すサンプル・コードは、WebCenter Sitesのインストール・ディレクトリの次のパスにあります。
Misc/Samples/WEM Samples/REST API samples/Basic Assets/com/fatwire/rest/samples/basic/ Misc/Samples/WEM Samples/REST API samples/Basic Assets/com/fatwire/rest/samples/flex/
サブフォルダbasic
およびflex
には、それぞれ次のファイルが含まれます。
CreateAsset.java
DeleteAsset.java
ReadAsset.java
UpdateAsset.java
。
コードは、段階を追った説明によって詳細に文書化されています。