20 RESTサービスの管理
権限:
この章のタスクを実行するには、Oracle WebLogic Server管理コンソールでWebLogic ServerのAdmin
ロール、WebCenter Portal管理でAdministrator
ロールが付与されている必要があります。
ロールと権限の詳細は、「管理操作、ロールおよびツールの理解」を参照してください。
RESTサービスについて
REST (REpresentational State Transfer)は、分散されたリソースを共通のインタフェースを介して利用できるようにするためのアーキテクチャ・スタイルです。この共通のインタフェースには、Uniform Resource Identifier (URI)、明確に定義された操作、ハイパーメディア・リンクおよび一連の制約付きメディア・タイプなどがあります。通常、これらの操作には、読取り、書込み、編集、削除が含まれます。メディア・タイプには、JSONおよびXML/ATOMなどがあります。
REST APIは一般的に、クライアント側のスクリプト言語で記述されたリッチ・インターネット・アプリケーションで使用されます。たとえば、JavaScriptで記述されたブラウザ・ベースのアプリケーションでは、サーバーとのアプリケーション・データの送受信にAjaxの手法とREST APIを併用することにより、クライアント・ビューを更新できます。
WebCenter Portalには、リスト、ピープル・コネクション、検索など、WebCenter Portalの様々なツールとサービスに対するRESTインタフェースが用意されています。RESTをサポートするサービスの全リストと、RESTおよびOracle WebCenter Portal REST APIの詳細は、Oracle WebCenter Portalの開発の「WebCenter Portal REST APIの使用」を参照してください。
RESTの有効化に必要な手動構成の実行
Oracle WebCenter Portal REST APIはデフォルトでは有効化されていません。REST APIの動作を有効化するには、2つの異なる構成をサーバー側で行う必要があります。アイデンティティ・アサータを構成し、必要なエントリを資格証明ストアにシードする必要があります。これにより、RESTセキュリティ・トークンが適切に機能するようになります。セキュリティ・トークンの詳細は、Oracle WebCenter Portalの開発のWebCenter Portal REST APIのセキュリティに関する考慮事項に関する項を参照してください。
Oracle WebCenter Portalの初回インストール後に、次の構成作業を行います。構成作業が実行済でないことに気づいた場合も実行してください。
アイデンティティ・アサータの構成
REST APIを使用する前に、アイデンティティ・アサータを構成する必要があります。手順の詳細は、「RESTサービス・アイデンティティ・アサータの構成」を参照してください。
WebLogic Server資格証明ストアの構成
アイデンティティ・アサータを構成したら、次の手順はWLS資格証明ストアの構成です。資格証明ストアを構成するには、サーバーの実行中に次のWLSTコマンドを実行します。再起動は不要です。
createCred(map="o.webcenter.jf.csf.map", key="keygen.algorithm", user="keygen.algorithm", password="AES") createCred(map="o.webcenter.jf.csf.map", key="cipher.transformation", user="cipher.transformation", password="AES/CBC/PKCS5Padding")
セキュリティ・トークンの理解
ユーザーが範囲指定したセキュリティ・トークンは、各RESTサービスURIのhref
属性とtemplate
属性に埋め込まれます。トークンの生成および検証はいずれもサーバーで行われ、「WebLogic Server資格証明ストアの構成」で説明されている、keygen.algorithm
とcipher.transformation
の構成手順によって有効化されます。セキュリティ・トークンの目的は、クロスサイト・リクエスト・フォージェリ(CSRF)攻撃を防止することです。
例:
<link template="opaque-template-uri/@me?startIndex={startIndex} &itemsPerPage={itemsPerPage}&utoken=generated-token" resourceType="urn:oracle:webcenter:messageBoard" href="opaque-uri/@me?token=generated-token" capabilities="urn:oracle:webcenter:read"/>
注意:
セキュリティ・トークンは認証にもアイデンティティ伝播にも使用されません。
セキュリティ・トークンは認証済ユーザーの名前に基づきます。セキュリティ・トークンは期限切れにならないため、URIのキャッシュやブックマークが可能になります。
セキュリティ・トークンにはソルト処理も行われます。ソルト処理は、文字列を暗号化する前にその文字列に文字を追加する暗号化手法です。セキュリティ・トークンが漏えいした場合でも、ソルト処理がされているので、問題を解決するためにそのユーザーのユーザー名をシステム全体で変更する必要はありません。
この手法を使用すると、ユーザー名が漏えいした際に、問題解決のためにシステム規模でユーザー名を変更する必要がなくなります。ソルトの再生成が必要な場合は、次のWLSTコマンドを使用してソルトを削除するだけで再生成できます。
deleteCred(map="o.webcenter.jf.csf.map", key="user.token.salt", user=" user.token.salt", password="AES")
セキュリティ・トークンの詳細は、Oracle WebCenter Portalの開発のWebCenter Portal REST APIのセキュリティに関する考慮事項に関する項を参照してください。
RESTのルート名の変更
REST APIのルート名の変更は必須ではありませんが、場合によっては必要になることがあります。RESTのルート名を変更するための推奨される方法は、URLの書換えによってそれを行うことです。詳細は、『Oracle HTTP Serverの管理』のURLリライティングとプロキシ・サーバーの機能に関する項を参照してください。たとえば、URLの書換え後、次のREST API URLは同じサーバーを参照します。
-
http://
myhost:8888
/rest/api/resourceIndex
-
http://
myhost:8888
/
pathname
/rest/api/resourceIndex
圧縮の使用
この項では、Oracle WebCenter Portal REST APIによってクライアントに戻されるXMLレスポンスまたはJSONレスポンスで圧縮を有効化する手法について説明します。
Apacheを使用している場合は、mod_deflate
またはmod_gzip
サーバー・モジュールをサーバー構成に追加できます。詳細は、Apacheのドキュメントを参照してください。
Oracle HTTP Server (OHS)を使用している場合は、Oracle Web Cacheを使用してこれを行うことをお薦めします。詳細は、『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』を参照してください。
Oracle HTTP Server (OHS)を使用しているか、Apacheを実行している場合は、Rest APIレスポンスで圧縮を使用するために、HTTPリクエスト・ヘッダーAccept-Encoding: gzip, deflate
を追加することができます。
OHSを使用している場合は、mod_deflate
またはmod_gzip
サーバー・モジュールを追加して圧縮を有効化することもできます。この手法の詳細は、『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』のOracle HTTP Serverモジュールの理解に関する項を参照してください。
Oracle Web Cacheの詳細は、『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』の圧縮に関する項とコンテンツのキャッシュおよび圧縮に関する項を参照してください。
認証の処理
デフォルトでは、RESTサービスは、アイデンティティ・アサーション・プロバイダからの認証を受け入れるように構成されています。アイデンティティ・アサーション・プロバイダが構成されていない場合は、基本認証が使用されます。
アイデンティティ・アサーション・プロバイダの構成の詳細は、「RESTサービス・アイデンティティ・アサータの構成」を参照してください。
詳細は、『Oracle WebLogic Serverセキュリティの管理』の「認証プロバイダの構成」を参照してください。