Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Portal Server 6.0 管理者ガイド



第 5 章   ディスプレイプロファイルの管理

この章では、Sun™ ONE Portal Server のディスプレイプロファイルコンポーネントとそのコンポーネントの管理方法について説明します。

この章は次の節から構成されます。

ディスプレイプロファイルの概要

この節では Sun ONE Portal Server のディスプレイプロファイルコンポーネントについて説明します。

ディスプレイプロファイルは、次の 3 つの項目を定義してデスクトップの表示設定を作成します。

  • プロバイダ定義プロバイダの名前と Java クラスを指定します。 プロバイダは、コンテンツの生成を担当するプログラムエンティティで、チャネルに表示されます。 詳細については、「プロバイダのタイプ」を参照してください。
  • チャネル定義プロバイダクラスのインスタンスを指定します。 チャネルはコンテンツの単位で、通常は (必ずしもそうではありませんが) 行と列で編成されます。 またチャネル内にチャネルを持つことができます。すなわちそれはコンテナチャネルです。
  • プロバイダとチャネルのプロパティ定義プロバイダとチャネルのプロパティに値を指定します。 プロバイダに定義されたプロパティは、通常はプロバイダから導出されたチャネルにデフォルトの値を指定します。 チャネルの表示設定には、タイトル、説明、チャネル幅などのプロパティが含まれます。 チャネルに定義されるプロパティは、そのチャネルに通常はデフォルトの値と異なる値を指定します。
  • コンテナプロパティは、コンテナ内に含まれるチャネルの表示方法に関する表示定義を定義します。これには、コンテナのレイアウト (狭い-広い、広い-狭い、または狭い-広い-狭い)、コンテナ内のチャネルのリスト、チャネルの位置 (行と列の番号)、およびコンテナ内のチャネルのウィンドウ状態 (最小または切り離し) が含まれます。


    ディスプレイプロファイルは、実際にはユーザーのデスクトップに表示される全体的なレイアウトまたは構造を定義しません。ディスプレイプロファイルはチャネルのプロパティの値を提供するためにのみ存在します。 ただし、ディスプレイプロファイルは、テーブルコンテナの列レイアウトやテーブルコンテナがチャネルをテーブルの中に描く方法のように、いくつかのチャネルプレゼンテーションを間接的に制御します。

    ディスプレイプロファイルは、チャネルのプロパティが配置を決定する場合のレイアウトを決定します。 たとえば、サンプルポータルのテーブルプロバイダ定義のディスプレイプロファイルには、次のステートメントが指定されています。

    <Integer name="layout" value="1"/>

    これは「狭い-広い」列を参照します。 ただし、ディスプレイプロファイルの構造には実際のレイアウトに関する情報はありません。

    ディスプレイプロファイルは、XMLProvider が XML を解析する方法などは制御しません。その中にある規則 (XSL ファイル) の種類の定義があるだけです。



デスクトップは、 iPlanet Directory Server Access Management Edition サービスのトップで表示プロファイルデータ保管メカニズムを実装し、コンテンツプロバイダとチャネルデータを保存します。 さらに、チャネルとプロバイダについてプロパティが設定されます。

ユーザーのディスプレイプロファイルは、コンテナ管理とチャネルのプロパティを記述する一連の XML ドキュメントです (1 つのディスプレイプロファイルドキュメントが 1 つの XML ドキュメントと同等です)。 ディスプレイプロファイル ドキュメントは、iPlanet Directory Server Access Management Edition サービス層の一つの属性としてその全体の中に格納されます。 すなわち、ディスプレイプロファイルドキュメントは Sun ONE Directory Server のインスタンスに常駐する LDAP 属性です。

ディスプレイプロファイルプロパティ値を変更する場合、プロバイダはプロバイダ API (PAPI) を使用して値を取得および設定します。 チャネル値がディスプレイプロファイルに設定されると、PAPI 内部実装は iPlanet Directory Server Access Management Edition SDK を使用して 、iPlanet Directory Server Access Management Edition デスクトップ サービス属性に ディスプレイプロファイル ドキュメントを設定します。



注意

iPlanet Directory Server Access Management Edition SDK を使用したディスプレイプロファイル の編集は、可能ですが行なわないでください。



ディスプレイプロファイルと管理コンソール

ディスプレイプロファイルとその他のデスクトップサービスのデータは、iPlanet Directory Server Access Management Edition 管理コンソールと dpadmin コマンドによって編集できます。 ディスプレイプロファイル を編集する場合、プロバイダ、コンテナ、およびチャネルを追加、修正、削除し、プロパティを編集します。 「XMLのアップロード」 と「XMLのダウンロード」リンクを使用して、ディスプレイプロファイルドキュメントをアップロードおよびダウンロードします。 また、iPlanet Directory Server Access Management Edition 管理コンソールは、チャネルとコンテナを追加し、既存のプロパティを編集するための「チャンネルおよびコンテナの管理」リンクを「Desktop」ページに表示します。 チャネルまたはコンテナが新規作成された場合、「チャンネルおよびコンテナの管理」リンクを使用してプロパティを定義します。 また「チャンネルおよびコンテナの管理」リンクは、チャネルとコンテナの追加、修正、削除にも使用できます。 詳細については、「ディスプレイプロファイルの管理」を参照してください。



「チャンネルおよびコンテナの管理」リンクを使用した場合、ディスプレイプロファイルの一部にだけアクセスできるので、委任された管理者がこのリンクを使用すると想定されます。 委任された管理者を設定する方法については、第 3 章「管理の委任の設定」を参照してください。



ディスプレイプロファイルドキュメントの構造

この節ではディスプレイプロファイルドキュメントの全体的な構造について説明します。 ディスプレイプロファイルドキュメントの基本となるデータ形式は XML です。 表示プロファイル DTD 構文についての詳細は、付録B「XML リファレンス」を参照してください。

ディスプレイプロファイル形式で、プロバイダとチャネルオブジェクト、およびそのプロパティが定義され、デスクトップの表示設定が決定されます。 ディスプレイプロファイルは Sun ONE Directory Server の isp レベル (あるいは最上位ディレクトリノード)、組織レベル、ロールレベル、ユーザーレベルで保存されます。 実行時にユーザーのディスプレイプロファイルは、ディレクトリツリー内のユーザー固有のプロファイルからディスプレイプロファイルドキュメントをすべて「マージ」したものであり、そのユーザーに関する特定のディスプレイプロファイルオブジェクトの値は、ディスプレイプロファイルの「マージ」動作により決定されます。

ディスプレイプロファイルオブジェクトは、オブジェクトを定義する XML タグに直接マッピングされます。 例えば、<Channel name> </Channel> XML タグはチャネルオブジェクトを定義します。

一般にディスプレイプロファイルのドキュメント構造は、次のようになります。


<DisplayProfile>

  <Properties>...global properties...</Properties>

  <Channels>...channel definitions...</Channels>

  <Providers>...provider definitions...</Providers>

</DisplayProfile>


<Properties><Channels>、および<Providers>はグループ化を実行するためのメカニズムです。 これらのメカニズムは XML ディスプレイプロファイルドキュメントを詳細に構造化し、オブジェクトなどは各「バッグ」内に格納されます。 「バッグ」についての詳細は、「ディスプレイプロファイルオブジェクトの集約」を参照してください。

次の節ではディスプレイプロファイルオブジェクトをより詳細に説明します。

DisplayProfile ルートオブジェクト

DisplayProfile root コンテナオブジェクトでは、デスクトップサーブレットはコンテナプロバイダとして機能し、プロバイダのハンドルの取得などを行います。 チャネルと関連付けられる実際のプロバイダクラスは存在しません。 このチャネルは他のディスプレイプロファイルオブジェクトから参照されることはありません。

DisplayProfile root オブジェクト XML 構文


   <Container name="_desktopRoot" provider="none">

<Properties />

<Available />

<Selected />

<Channels/>

   </Container>


プロバイダオブジェクト

プロバイダは、チャネルがレンダリングされたときに実行時に実行されるソフトウェアエンティティです (このようにチャネルは実行時にはプロバイダのインスタンスになります)。provider オブジェクトはディスプレイプロファイルプロバイダ定義のポインタです。 プロバイダは ProviderContext クラスとチャネルインスタンス (provider オブジェクト) との間の取り決めです。

<Provider name> 定義には、ディスプレイプロファイルのクライアントが Java クラス名などの provider オブジェクトを構築するために必要な情報が収められています。

<Provider name> 定義は、このプロバイダを示すすべてのチャネルに対して、デフォルトのプロパティ値を設定します。 チャネル固有のプロパティが必要になるのは、プロバイダのデフォルトを上書きする必要がある場合のみです。 プロバイダディスプレイプロファイルオブジェクトには、プロバイダ Java オブジェクトで使用されるすべてのプロパティに対するデフォルトの値を格納する必要があります。 例えば、プロバイダ Java コードには次の値が格納されます。

getStringProperty("color")

プロバイダディスプレイプロファイルオブジェクトは color のデフォルトの値を持つ必要があります。

プロバイダのタイプ

Sun ONE Portal Serverはビルディングブロックプロバイダコンテンツプロバイダを区別します。 ビルディングブロックプロバイダは、デスクトップに複数のチャネルを作成できます。プロバイダとチャネル間の関係は一対多数です。 コンテンツプロバイダは、プロバイダとチャネルとの間で一対一の関係のみを持ちます。 この種類のプロバイダは、ビルディングブロックプロバイダとは異なります。

ビルディングブロックプロバイダにはリーフビルディングブロックプロバイダ (XMLProviderURLScraperProviderJSPProvider)、およびコンテナビルディングブロックプロバイダ (JSPTableContainerProviderJSPTabContainerProviderJSPSingleContainerProvider) があります。 リーフビルディングブロックプロバイダは、独自のコンテンツを生成します。 コンテナビルディングブロックプロバイダを使用すると、デスクトップ内でチャネルを集約できます。 コンテナビルディングブロックプロバイダはブロックを構築しますが、このレベルのブロックは、コンテナプロパティを変更することでカスタマイズや異なる使用が可能です。



Sun ONE Portal Serverがサンプルポータルで提供するプロバイダはコンテンツプロバイダです。 これには BookmarkProviderUserInfoProviderSimpleWebServiceProvider などがあります。



ビルディングブロックプロバイダを使用すると、次のことができます。

  • プロバイダ Java クラスを拡張することで、より詳細なカスタム機能を構築できます。
  • 同じプロバイダに基づいて複数のチャネルを作成できます。それぞれのチャネルのプロパティを修正することで、異なる動作や表示をとるようにするできます。

プロバイダオブジェクト XML 構文の例


<Provider name="XMLProvider" class="com.sun.portal.providers.xml.XMLProvider">

    <Properties>
      <String name="title" value="*** XML Provider ***"/>
      <String name="description" value="*** DESCRIPTION ***"/>
      <String name="width" value="thick"/>
      <String name="refreshTime" value="0" advanced="true"/>
      <Boolean name="isEditable" value="false" advanced="true"/>
      <String name="helpURL" value="desktop/xmlchann.htm" advanced="true"/>
      <String name="fontFace1" value="Sans-serif"/>
      <String name="productName" value="Sun ONE Portal Server"/>
      <String name="url" value="file:///etc/opt/SUNWps/desktop/default/xml/getQuotes.xml"/>
      <String name="xslFileName" value="html_stockquote.xsl"/>
      <Integer name="timeout" value="100"/>
      <String name="inputEncoding" value="iso-8859-1"/>
      <String name="urlScraperRulesetID" value="default_ruleset"/>
      <Boolean name="cookiesToForwardAll" value="true"/>
      <Collection name="cookiesToForwardList">
      </Collection>
    </Properties>
</Provider>

チャネルオブジェクト

channel オブジェクトは単一の表示要素を表します。 channel オブジェクトに含まれるオブジェクトは、チャネルのプロパティと考えることができます。 <Channel name> 定義には、プロバイダへのシンボル参照が含まれます。 また、チャネル固有のプロパティを定義して、プロバイダ定義で定義されるデフォルトの値を上書きすることができます。 チャネル名はディスプレイプロファイルドキュメント内で固有にする必要があります。

チャネルオブジェクト XML 構文の例


<Channel name="SampleXML" provider="XMLProvider">

    <Properties >
        <String name="refreshTime" value="600" advanced="true"/>
        <String name="title" value="XML Test Channel"/>
        <String name="description" value="This is a test of the XML Provider system"/>
        <String name="url" value="file:///etc/opt/SUNWps/desktop/default/SampleXML/getQuotes.xml"/>
        <String name="xslFileName" value="/etc/opt/SUNWps/desktop/default/SampleXML/html_stockquote.xsl"/>
    </Properties>

</Channel>


コンテナオブジェクト

container オブジェクトは、その内容を主に他の (子) チャネルの内容を集約して生成する点を除き、channel オブジェクトと同一です。 すなわち、コンテナは他のチャネルから内容を取得するチャネルです。 container オブジェクトを使用すると、チャネルリストの使用と選択が可能になり、リーフチャネル定義を格納することができます。 リーフチャネルは、一般にページ上で他のチャネルと集約されて、独自の内容を生成します。 コンテナチャネルは、主に、1 つまたは複数のリーフチャネルの内容を集約してその内容を生成します。



コンテナ内で定義されるリーフチャネルは、そのコンテナのローカルになります。 他のコンテナは、このリーフチャネルにアクセスできません。



コンテナオブジェクト XML 構文の例


<Container name="TemplateTableContainer"provider="TemplateTableContainerProvider">
  <Properties>
<String name="title" value="Template Based Table Container"/>
<String name="description"
value="This is the channel for the front provider"/>
<Collection name="channelsColumn" advanced="true">
<String name="SampleJSP" value="2"/>
<String name="SampleXML" value="2"/>
<String name="Notes" value="2"/>
</Collection>
<Collection name="channelsRow" advanced="true">
<String name="MailCheck" value="3"/>
<String name="SampleRSS" value="2"/>
<String name="SampleXML" value="2"/>
<String name="App" value="5"/>
<String name="SampleSimpleWebService" value="6"/>
<String name="Bookmark" value="4"/>
<String name="Notes" value="3"/>
</Collection>
<Collection name="channelsIsRemovable">
<Boolean name="UserInfo" value="false"/>
</Collection>
  </Properties>

  <Available>
<Reference value="UserInfo"/>
<Reference value="MailCheck"/>
<Reference value="SampleRSS"/>
<Reference value="SampleJSP"/>
<Reference value="SampleXML"/>
<Reference value="App"/>
<Reference value="SampleSimpleWebService"/>
<Reference value="Bookmark"/>
<Reference value="Notes"/>
  </Available>


  <Selected>
<Reference value="UserInfo"/>
<Reference value="MailCheck"/>
<Reference value="SampleRSS"/>
<Reference value="SampleJSP"/>
<Reference value="SampleXML"/>
<Reference value="App"/>
<Reference value="SampleSimpleWebService"/>
<Reference value="Bookmark"/>
<Reference value="Notes"/>
  </Selected>

  <Channels>
  </Channels>

</Container>

ディスプレイプロファイルオブジェクトの集約

rootproviderchannel の各オブジェクトは、プロパティを関連付けることができます。 ディスプレイプロファイルは、プロパティ「バッグ」の内部にプロパティをグループ化します。 「バッグ」という用語は、その唯一の目的がプロパティの保持場所であることを示すために使用されます。 プロパティは関連付けられたプロパティバッグを持ちません。 プロパティ定義については、『Sun ONE Portal Server 6.0 Desktop Customization Guide』を参照してください。

チャネル、プロバイダ、およびルートレベルのプロパティバッグは、異なるセマンティクスを持ちます。 グローバルプロパティは、すべてのチャネルで共有されます。 グローバルプロパティとして定義されるプロパティは、ここではどのチャネルからでもアクセスできます。 テーマはグローバルプロパティの一例です。 テーマデータはグローバルに定義されるため、すべてのチャネル間で共有されます。

プロバイダで定義されるプロパティは、そのプロパイダに基づくチャネルのデフォルトです。 プロパティがチャネルで定義されていない場合、デフォルトが使用されます。 これはプロバイダがプロバイダ Java オブジェクトで使用されるプロパティをすべて定義する必要があることを示しています。 この場合、Java コードの内容は次のようになります。

String f = getStringProperty("color");

ディスプレイプロファイル内の対応する<Provider name> 定義では、次のように定義する必要があります。

<String name="color" ... />



グローバルプロパティを、すべてのチャネルのデフォルトとして使用しないでください。 ディスプレイプロファイルプロバイダ定義は、プロバイダ定義を使用するprovider オブジェクトが使用するプロパティインターフェイスを定義します。



チャネルプロパティは、プロバイダ定義のデフォルトを上書きしてチャネルをカスタマイズします。 例えば、URLScaperProviderurl プロパティを定義します。 デフォルトは、通常はチャネルによって値が上書きされるため意味を持ちません。

ディスプレイプロファイルオブジェクトの検索

実行時に、システムは直接プロバイダにプロパティを照会しません。 この要求は常にチャネルに対して行われます。 Java provider オブジェクトがプロパティを要求する場合、プロパティが見つかるか格納階層の最上位に到達するまで次の順序で、ディスプレイプロファイルを検索します。

  1. チャネルのプロパティ
  2. チャネルのプロバイダのプロパティ
  3. チャネルの親のプロパティ
  4. チャネルの親のプロバイダのプロパティ
  5. チャネルの親の親の (くり返し) プロパティ
  6. ディスプレイプロファイル root 定義で定義されるグローバルプロパティバッグ

このようにチャネルがプロパティの名前を照会すると、上記のすべてに該当するプロパティが取得されます。

provider オブジェクトに存在するプロパティは、チャネルに対してデフォルト値の動作を持つように意図されています。 例えば、プロパティ title を定義するプロバイダ xml について、プロバイダ xml から導出されるすべてのチャネルは title プロパティを継承します。 チャネルがこのプロパティを上書きする場合、その独自のプロパティ内で値を設定できます。

ディスプレイプロファイルのプロパティ

この節では、ディスプレイプロファイルプロパティとそれらを指定する方法について説明します。

ディスプレイプロファイルのプロパティのタイプ

ディスプレイプロファイルプロパティのタイプは次のとおりです。

  • ブール型ブール型の値を表す不可分なオブジェクト。
    例:<Boolean name="isEditable" value="false"/>
  • 集合リストかハッシュテーブルのいずれかを表すオブジェクト。 集合は他のプロパティを配置する一種のプロパティ、または名前付きのバッグです。例:<Collection name="channelsRow">
  •     <String name="MailCheck" value="4"/>

        <String name="App" value="5"/>

    </Collection>

  • 整数整数値を表す不可分なオブジェクト。
    例:<Integer name="numberOfHeadlines" value="7"/>
  • 文字列文字列の値を表すオブジェクト。
    例:<String name="title" value="Table Container Channel 1"/>
  • 参照チャネル定義 (すなわち、コンテナの選択された使用可能なチャネルリスト内のチャネル名) を示すポインタを表すオブジェクト。 参照は設計ツールに便利な名前のない文字列で、文字列を他のものと区別することができます。
    例:<Reference value="UserInfo"/>

ドキュメントタイプの定義要素の属性

デスクトップ DTD は、ディスプレイプロファイルとそのプロパティの使用を制御できる要素属性を定義します。表 5-1にドキュメントタイプの定義要素の属性を示します。 この表には、最初の列に属性が、2 番目の列に簡単な説明が、3 番目の列に例が示されています。

.

表 5-1    表示プロファイルの属性 

属性

定義

advanced

true に設定した場合、iPlanet Directory Server Access Management Edition 管理コンソールの「チャンネルおよびコンテナの管理」リンクでディスプレイプロファイルプロパティを「非表示」にします。 ただし、「XML の編集」リンクまたは「XML のダウンロード」リンクを使用する場合、プロパティは非表示になりません。

advanced 属性は、値に true または false をとることができるブール型の属性です。 デフォルト値は false です。

<String name="refreshTime" value="0" advanced="true"/>

lock

優先順位の高いドキュメントを有効にし、優先順位の低いドキュメントによるマージ操作でディスプレイプロファイルの特定の機能を変更できないようにします。 表示プロファイルオブジェクトがロックされると、優先順位の低いドキュメントによるマージ操作で影響を受けることがなくなります。

lock 属性は、値に true または false をとることができるブール型の属性です。 デフォルト値は false です。

<Selected merge="fuse">

...

<Reference value="EmployeeNews" lock="true"/>

...

</Selected>

merge

異なる LDAP ノード (基本 DN、DN、ロール DN) のディスプレイプロファイルドキュメントをマージして単一の表現 (すなわちデスクトップ) を形成する場合に、プロパティの結合方法を制御します。

許可される値は replaceremove、および false です。 デフォルト値は false です。

replace、remove、fuse の例については、「ディスプレイプロファイルのマージタイプ」を参照してください。

priority

表示プロファイルドキュメントの優先順位を設定します。 低い数値は低い優先順位を表します。 例えば、1 は 2 よりも優先順位が低くなります。

許可される値は整数と、現在の表示プロファイルがユーザーレベルの表示プロファイルであることを示すキーワード user です。

<DisplayProfile version="1.0" priority="10">

propagate

プロパティが非ローカルに読み出され、ローカルに設定される場合の、プロパティの処理方法を制御します。 ブール型、集合、整数、文字列、および参照を含むすべてのディスプレイプロファイルプロパティは、propagate 属性に設定できます。

propagate 属性は、値に true または false をとることができるブール型の属性です。 デフォルト値は true です。

<String name="color" value="blue" propagate="false"/>

ディスプレイプロファイルのプロパティの指定

ディスプレイプロファイルプロパティを指定する場合は、プロパティを「ネスト」する方法、集合に名前のないプロパティを使用する方法、およびプロパティを伝搬する方法を考慮する必要があります。

プロパティのネスト

ディスプレイプロファイルには、任意の深さにネストされたプロパティ (プロパティ内のプロパティ) を格納することができます。 これによって、文字列の集合の集合の集合や、文字列と集合の集合などを作成することができます。 例えば、次に示すのは集合の集合です。


<Collection name="people">
    <Collection name="john">
        <Integer name="age" value="31"/>
        <String name="eyes" value="hazel"/>
    </Collection>
    <Collection name="bob">
        <Integer name="age" value="35"/>
        <String name="eyes" value="blue"/>
    </Collection>
    ... etc ...
</Collection>

名前を付けられていないプロパティ

次のような不可分のプロパティのタイプ (ブール型、整数、文字列) は名前が付けられていない場合があります。

<String value="apple"/>

これは次の値に等しくなります。

<String name=モappleモ value=モappleモ/>

すなわち不可分のプロパティに名前が付けられていない場合、これはそのプロパティの文字列の値と同等になります。

これは実用するときには、集合の内部でのみ役立ちます。名前が付けられないことで、集合を使用してテーブルではなく順序設定されたセット (ほぼリストに近い) を表すことができるためで、 例えば、次に示すのは ZIP コードのリストを表す集合があります。


<Collection name="zipcodes">
    <Integer value="95112"/>
    <Integer value="95054"/>
    <Integer value="98036"/>
</Collection>

名前の付けられていないプロパティを使用する場合、テーブル (name=value) またはリストを集合で表すことができる点が重要です。



名前の付けられていないプロパティを、同じ集合内の別の名前のないプロパティと同じ値で作成しないでください。 プロパティは作成されますが、名前が重複しているため、プロバイダは値にアクセスすることができません。

また、Sun ONE Portal Server は、名前のない論理値プロパティも同等に同じ名前を持つプロパティとして処理するため、同じ集合内で名前が重複するプロパティを間違って作成してしまう場合があります。 この場合も、最終的に他の同じ名前を持つプロパティにアクセスできなくなります。



ディスプレイプロファイルのプロパティの伝搬

論理値、集合、整数、文字列、および参照を含むすべてのディスプレイプロファイルプロパティは、propagate 属性と表示できます。 propagate 属性は、値に true または false をとることができるブール型の属性です (デフォルトは true)。 propagate 属性は、プロパティが非ローカルに読み出され、ローカルに設定される場合の、プロパティの処理方法を制御します。

例えば、チャネルのプロパティセットは、次のすべてに該当するプロパティから構成されます。

  • チャネルのプロパティ (<Properties>) バッグにローカルに存在するプロパティのセット
  • チャネルの各子孫チャネル (チャネルの親、チャネルの親の親、など) にローカルに存在するプロパティのセット
  • チャネルのプロパイダ (チャネルで provider 属性が指定) にローカルに存在するプロパティのセット
  • ディスプレイプロファイル root オブジェクトの下に存在するグローバルプロパティのセット

チャネルがプロパティ値を要求すると、値はこれらの「リモート」の場所のいずれかから読み出されます。 プロパティ値が設定されている場合、プロパティ値を格納する場所は 2 つのオプションから選択できます。

  1. チャネルのプロパティバッグ
  2. リモートロケーション

propagate 属性は場所を制御します。 propagate 属性を true に設定すると、プロパティはプロパティを設定するオブジェクトのローカルに保存されます (ほとんどの場合はチャネル)。 propagate 属性を false に設定すると、プロパティは所定の位置 (読み出された場所) に設定されます。 すなわち、false に設定された場合、既存の値は変更されますが、true に設定された場合、新規プロパティがローカルに作成されて、保存されます (すでにローカルになっている場合を除く)。

次の ディスプレイプロファイル XML フラグメントを考えてみます。


<DisplayProfile>
  <Properties>
    <String name="color" value="blue"/>
  </Properties>
...
<Channel name="testchannel" provider="..."/>
  <Properties/>
</Channel>
...
</DisplayProfile>

プロパティ color はグローバルプロパティバッグに存在します。 propagate は設定されていないため (またデフォルトは true であるため)、チャネル testchannel でプロパティ color が設定されると、次のような結果になります。


<DisplayProfile>
  <Properties>
    <String name="color" value="blue"/>
  </Properties>
...
<Channel name="testchannel" provider="..."/>
  <Properties/>
    <String name="color" value="new value"/>
</Channel>
...
</DisplayProfile>

プロパティは、これを設定したローカルオブジェクト (チャネル) に伝搬されます。 一方、グローバルプロパティバッグなどで propagatefalse に設定されていると、次のようになります。

<String name="colorモ value="blue" propagate="false"/>

チャネル testchannel 設定のプロパティ color の結果は次のようになります。


<DisplayProfile>
  <Properties>
    <String name="color" value="new value"/>
  </Properties>
...
<Channel name="testchannel" provider="..."/>
  <Properties/>
</Channel>
...
</DisplayProfile>

個々のプロパティの他に、プロパティバッグにも次のように propagate 属性を指定できます。


<Properties propagate="false">
...
</Properties>

プロパティが propagate=false と見なされる場合、以下は真である必要があります。

  • プロパティの propagate 属性が false であるかまたは、プロパティのプロパティバッグの propagate 属性が false である。
  • プロパティをすべてマージしたものについて、上記の文は真である。

その他の場合は、propagate は真と見なされます。

最上位のプロパティにのみ propagate 属性を表記することができます。 ディスプレイプロファイル DTD ではこのような表記が可能ですが、ディスプレイプロファイルコードはこれを無視します。

ディスプレイプロファイルのマージ

ディスプレイプロファイルは、XML ドキュメント階層から構成されます。Sun ONE Portal Server はユーザー用のディスプレイプロファイルドキュメント、ユーザーが所属する各ロール、およびユーザーの組織やサブ組織を格納できます。 実行時に、システムはこれらの複数の表示プロファイルドキュメントをマージして、特定のデスクトップをユーザーに配信します。 この表示プロファイルドキュメントのマージプロセスは、チャネル、プロバイダ、プロパティ定義を変更する可能性があるため、最終的なディスプレイプロファイルに影響します。

ディスプレイプロファイルデータ形式には、これらのドキュメントの結合方法を定義する構文が収められています。 この定義は、一般にマージ動作として知られています。

マージ動作は、異なる LDAP ノード (基本 DN、DN、ロール DN) のディスプレイプロファイルドキュメントをマージして単一の表現 (すなわちデスクトップ) を形成する場合に、属性の結合方法を制御します。 マージ動作はディスプレイプロファイルドキュメントへのオーダーを想定しています。iPlanet Directory Server Access Management Edition はロールを階層構造化しません。 その代わり、ユーザーのロール構造は平坦です。 すべてのロールは同位です。 このため、Sun ONE Portal Server は iPlanet Directory Server Access Management Edition のロールに対して、階層構造をシミュレートするように補足オーダーを付加します。

ユーザーのディスプレイプロファイルドキュメントセットは、 ユーザーの LDAP 組織またはサブ組織ノードに存在するドキュメント、各ユーザーのロールノードに存在するドキュメント、およびユーザーのエントリノードに存在するドキュメントから構成されます。 ドキュメントはこれらの各ノードで定義する必要はありませんが、各ノードに 1 つ以上のドキュメントが定義されている必要があります。 ドキュメントセットは、ディスプレイプロファイルドキュメントが定義する優先順位の値に従って格納されます。 詳細については、「表示プロファイルドキュメントの優先順位」を参照してください。

ディスプレイプロファイルドキュメントが積み重なるドキュメントのマージプロセスは、視覚化することができます。 マージは名前の付いたチャネル、プロバイダ、プロパティなどが重なり合う場所で起こります。 マージはディスプレイプロファイルドキュメントで定義される XML 構造ではなく、ディスプレイプロファイルオブジェクトの名前に基づきます。 名前の付いたチャネルなどは、マージされるディスプレイプロファイルの格納階層内の異なるコンテナに存在できます。



あるコンテナのチャネル定義は、別のコンテナから見ることはできません。 チャネル定義がコンテナの内部にある場合、そのコンテナのみがそのチャネルを格納できます。 複数のコンテナに同じチャネルを参照させる場合は、グローバルエリアまたは親コンテナにチャネル定義を配置し、内包されたコンテナがグローバルエリアまたは親コンテナを参照できるようにします。



マージプロセスの仕組み

ユーザーがSun ONE Portal Serverにログオンし、認証が行われた後、システムは次の方法でユーザーのディスプレイプロファイルを判断します。

  1. グローバルディスプレイプロファイル、LDAP の組織、サブ組織、ロール、およびユーザーが所属するユーザーノードを検索して、そのユーザーのすべてのディスプレイプロファイルドキュメントを探します。
  2. 検索したディスプレイプロファイルドキュメントを一時領域に配置し、それをバッグとして視覚的に表示します。
  3. 優先順位に基づいてバッグのディスプレイプロファイルドキュメントを最下位から順番にソートします。 (ドキュメントを検索するノードは優先順のソートに影響しません。 また、ユーザーのディスプレイプロファイルドキュメントは常に最上位の順序になります。)
  4. 最下位から順番にバッグからドキュメントを取り出し、このドキュメントの上に 1 つ上の順位のドキュメントを置き、マージとロック動作を適用します。
  5. すべてのドキュメントがバッグから取り出されるまでStep 4を繰り返し、ドキュメント内で見つかったすべてのオブジェクトのマージに等しい値が、システムからユーザーに返されるようにします。

ディスプレイプロファイルのマージタイプ

ディスプレイプロファイルは次の 3 種類のマージを使用して、ディスプレイプロファイルドキュメントの結合方式を決定します。

  • replace優先順位の低いドキュメントで定義されたすべてのディスプレイプロファイルオブジェクトが高い順序のドキュメントで定義されたオブジェクトを完全に上書きします。 高い順序のドキュメントにオブジェクトが存在しない場合、そのオブジェクトはマージ結果に追加されます。
  • remove名前の付いたオブジェクトはこのポイントまでマージから除外されます。 オブジェクトはディスプレイプロファイルに存在しません。 優先順位の高いドキュメントで再定義できます。
  • fuse順序の低いドキュメントのオブジェクトは、優先順位の高いドキュメントのオブジェクトと結合されます。


  • 各マージタイプの正確な意味は、適用されるディスプレイプロファイルオブジェクトにより異なります。



チャネルとプロバイダについては、fuseは特別な意味があります。 チャネルそのものは、実際には融合されません。 ただしfuse はチャネルまたはプロバイダのプロパティを結合する必要があることを指示します。 replace 動作は、すべてのプロパティすべてを含むチャネルまたはプロバイダ全体を置換します。 remove 動作は、そのポイントまでチャネルまたはプロバイダ全体をマージから削除します。

ディスプレイプロファイル <DisplayProfile> ルートノードは、マージ動作を持つことができます。 replace 動作は、優先順位の低いドキュメントで定義されたすべての DP オブジェクトにより優先順位の高いドキュメントで定義されたオブジェクトを完全に上書きすることを意味します。 そのポイントまでのすべてのマージは無効になり、順序の低いドキュメントはマージの新しい基準として使用されます。 remove 動作は、そのドキュメントのポイントまでのすべてのマージ結果が破棄されることを示します。 マージはソートされたディスプレイプロファイルドキュメントセットの次のドキュメントから開始します。 チャネルおよびプロバイダと同様に、fuse 動作はセット内のオブジェクト (チャネルとプロバイダ) を結合する必要があることを意味します。

不可分のディスプレイプロファイルプロパティ (他のプロパティを格納できないプロパティ) は、fuse 動作を使用できません。 これには文字列、整数、論理値、参照の各プロパティが含まれます。

チャネルのプロパティセットは、チャネルのプロパティとチャネルのプロバイダのプロパティ、およびチャネルの親のプロパティなどから構成されます。 プロパティ全体は、チャネルの単一のドキュメントプロパティと考えることができます。 ドキュメントのマージとは、あるドキュメントの全プロパティセットが、チャネルの各ドキュメントのプロパティを結合したものから構成され、それらのプロパティがユーザーのマージセットのすべてのドキュメントで使用されることを意味します。

remove の例: remove マージによるコンテナの選択したチャネルリストの修正

次の例はすべてのユーザーのマージセットが、次のディスプレイプロファイルフラグメントを持つ組織レベルのドキュメントからどのように構成されるかを示します。


<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="UnixTipoftheDay"/>
    </Selected>
</Container>

「unix tip of the day」は、UNIX の使い方を説明しています。 管理ロールに所属するユーザーは、このチャネルがあまり有効ではないことに気が付いているようです。 管理ロールを持つすべてのユーザーからこのチャネルを削除するために、次のように管理ロールドキュメントで TemplateTableContainer チャネルを定義します。


admin role
<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="Outages"/>
        <Reference value="SolarisAdmin"/>
        <Reference value="AdminTipoftheDay"/>
        <Reference value="UnixTipoftheDay" merge="remove"/>
    </Selected>
</Container>

上記のサンプルでは、 Reference value="UnixTipoftheDay" は管理ロール表示プロファイルから削除されます。

replace の例: replace マージによるすべてのユーザーの表示からのチャネルの削除

次の例では、特定のコンテナについて、ロール管理が組織レベルで定義されたすべてのチャネルを無効にする方法を示します。 組織定義は次のようになります。


organization display profile
<Container name=...>
    ...
    ...
    <Selected>
        <Reference name="X"/>
        <Reference name="Y"/>
        <Reference name="Z"/>
    </Selected>
</Container>

ロール管理は、そのロールが割り当てられたどのユーザーも X、Y、Z チャネルを使用しないようにするために、コンテナは次のように定義されます。


admin role
<Container name=...>
    ...
    ...
    <Selected merge="replace">
        <Reference name="A"/>
        <Reference name="B"/>
        <Reference name="C"/>
    </Selected>
</Container>

ロールドキュメントのコンテナで選択されたリストは、組織のドキュメントのコンテナで選択されたリストと置換されます。

fuse の例: fuse マージによるロールベースのチャネルリストの作成

通常は fuse マージ動作を使用して、不可分でないディスプレイプロファイルオブジェクトを結合します。 これらのオブジェクトには collection と使用可能なチャネルリストまたは選択されたチャネルリストが含まれます。 ここでは、fuse は不可分でないプロパティに格納されたすべてのプロパティもマージする必要があることを示しています。このように fuse を使用することで、ユーザーに最終的に表示される不可分でないプロパティを、さまざまなドキュメントから構築することができます。

次の例の表示プロファイルドキュメントは、管理、従業員、および movieFreak ロールに所属するユーザーに使用されます。 最後に、ユーザーに選択されたチャネルが表示されます。


admin role
<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="Outages"/>
        <Reference value="SolarisAdmin"/>
        <Reference value="AdminTipoftheDay"/>
    </Selected>
</Container>


employee role
<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="Benefits"/>
        <Reference value="EmployeeNews"/>
    </Selected>
</Container>


movieFreak role
<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="NewMoviesReleases"/>
        <Reference value="MovieShowTimes"/>
    </Selected>
</Container>

ユーザーに選択されたチャネルの最終的なリストは次に示すとおりです。使用可能なチャネルリストは、マージが適用される順序で降順に並べられます。


<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
    <Properties> ... </Properties>

    <Available> ... </Available>
    <Selected merge="fuse">
        <Reference value="Outages"/>
        <Reference value="SolarisAdmin"/>
        <Reference value="AdminTipoftheDay"/>
        <Reference value="Benefits"/>
        <Reference value="EmployeeNews"/>
        <Reference value="NewMoviesReleases"/>
        <Reference value="MovieShowTimes"/>
    </Selected>
</Container>

マージロック

マージ可能なすべてのディスプレイプロファイルオブジェクトは、ロックすることもできます。 オブジェクトがロックされると、優先順位の低いドキュメントでは、オブジェクトがマージ動作による影響を受けることがなくなります。 これによって優先順位の高いドキュメントを有効にし、マージ動作を使用して優先順位の低いドキュメントでディスプレイプロファイルの特定の機能が変更されないようにします。

マージロックの例: lock マージによるすべてのユーザーに対するプロパティ値の強制

次の例では、特定の組織に対してすべてのユーザーに「employee news」チャネルを表示する方法を示します。 ユーザーはこのチャネルを表示から削除できません。 組織レベルのドキュメントで、コンテナのチャネルで選択されるリストは次のように定義されます。


<Selected merge="fuse">
    ...
    <Reference value="EmployeeNews" lock="true"/>
    ...
</Selected>

マージロックの例: lock マージによるすべてのユーザーの表示からのチャネルの強制削除

次の例に「online games」チャネルを強制的に削除する方法を示します。 このシナリオでは、ユーザーが各ユーザードキュメントの選択したチャネルリストにこのチャネルを追加していた場合、組織レベルのドキュメントの選択したチャネルリストからチャネルを削除するだけでは機能しません。 従業員と組織のリストを統合すると、「online games」チャネルが表示されます。 組織内のすべてのユーザーからチャネルを強制的に削除するには、選択したチャネルリストを次のように定義します。


<Selected merge="fuse">
    ...
    <Reference value="OnlineGames" merge="remove" lock="true"/>
    ...
</Selected>

remove 動作はマージされた結果からチャネルを削除し、lock は優先順位の低いドキュメントの値がマージされるのを防ぎます。

表示プロファイルドキュメントの優先順位

実行時に、ユーザーがログインすると、システムはユーザーの表示プロファイルドキュメントセットを構成するドキュメントセットを決定します。 デスクトップにおけるディスプレイプロファイルの内部実装 (ディスプレイプロファイルを解釈する部分) では、ユーザーが所属する LDAP ノードすべてを検索して、このドキュメントセットを決定します。 これは組織 DN (o=sesta.com)、サブ組織、ロール DN (cn=Role1,o=sesta.com)、
uid (uid=jtb,ou=People,cn=Role1,0=sesta.com)、およびグローバル表示プロファイルのいずれかになります。 この場合、これらの LDAP ノードとグローバル表示プロファイルのそれぞれのディスプレイプロファイルドキュメントが読み込まれ (ドキュメントが存在する場合)、すべてのドキュメントが 1 つにまとめられます。 システムはドキュメントの優先順位に従ってセットをソートします。 低い数値は低い優先順位を表します。 例えば、1 は 2 よりも優先順位が低くなります。ドキュメントは低い数値から高い数値にソートされます。 このプロセスについての詳細は、「マージプロセスの仕組み」を参照してください。

ユーザーレベルドキュメント (uid=jtb,ou=People,...) はベースドキュメントと呼ばれる特殊な例です。 ベースドキュメントは優先順位が無限に等しいものと考えてください。 したがって常に最高位の数値 (および最高の優先順位) になります。 マージャーのすべては、ソート順でベースドキュメントと関連付けられ、ユーザードキュメントの優先順位の設定は常に最高位になります。 <DisplayProfile> タグで使用される priority 属性は特殊なキーワード user を使用して、現在のディスプレイプロファイルがユーザーレベルのディスプレイプロファイルであることを示します。

マージが発生した場合は、もっとも優先順位の低いドキュメント (もっとも低い数値) から開始され、ユーザー (基本) ドキュメントに達するまで、優先順位の数値を増加させながら処理されます。

この場合、ディスプレイプロファイルドキュメントの優先順位が意味するのは、実際に重要なのは優先順位の数値であることです。 例えば、組織レベルのドキュメントの優先順位をロールレベルのドキュメントよりも高くできますが、必ずしもそのようにする必要はありません。 優先順位の設定は、自分のサイトでこのようなドキュメントをどのような優先順位に設定する必要があるかによります。

ディスプレイプロファイルドキュメントの優先順位は、XML ファイルに <DisplayProfile priority= syntax> タグを使用して指定します。優先順位は、 iPlanet Directory Server Access Management Edition 管理コンソールまたは dpadmin コマンドを使用して直接表示プロファイル XML を編集し、ディスプレイプロファイルをロードして変更します。 dpadmin コマンドの詳細については、第 12 章「コマンド行ユーティリティ」を参照してください。



2 つのディスプレイプロファイルドキュメントに同じ優先順位を設定しないでください。 同じ優先順位を割り当てると、デスクトップが正しく表示されなくなります。製品は重複したドキュメントの優先順位を確認しません。



ドキュメントの優先順位の例 1

次の例では 2 つのディスプレイプロファイルを使用しています。1 つは組織の acme に、もう1 つは uid の bill に使用します。 Bill (uid=bill) がデスクトップにログインすると、ブックマークチャネル「Billユs Bookmarks」が次の 3 つのブックマーク (次の順序で) と共に表示されます。

  • ACME
  • Amazon
  • EBay

  • <DisplayProfile version="1.0" priority="10">
    ...
      <Channel name="Bookmark" provider="BookmarkProvider" merge="fuse">
        <Properties>


    <DisplayProfile version="1.0" priority="1">

ドキュメントの優先順位の例 2

次の例では 、グローバルディスプレイプロファイル、組織 acme のディスプレイプロファイル、およびロール hradmin のディスプレイプロファイルを使用します。 hradmin ロールに割り当てられたユーザーがデスクトップにログインすると、TemplateTableContainer が次のチャネルとともに表示されます。

  • UserInfo
  • MailCheck
  • SampleSimpleWebService

  • <DisplayProfile version="1.0" priority="0">
    ...
      <Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
        <Properties>


    <DisplayProfile version="1.0" priority="10">
    ...
      <Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
        <Properties>


    <DisplayProfile version="1.0" priority="5">
    ...
      <Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">
        <Properties>

ディスプレイプロファイルドキュメントの優先順位設定の要約

ディスプレイプロファイルドキュメントの優先順位は、定義要因にマージオーダーを考慮するか、ロック機能を考慮するかによって低くなったり高くなったりりします。

ロックを考慮しない場合、低い数値のディスプレイプロファイルドキュメントは優先順位が低くなります。 低い数値のディスプレイプロファイルドキュメントは最初にマージされるため、高い数値のドキュメントでそのエントリが上書きされます。低い数値のドキュメントは優先順位が低くなります。

ただし、低い数値のディスプレイプロファイルドキュメントはオブジェクトをロックできるため、高い数値のドキュメントによる影響を受けずに済みます。 このため、低い数値のドキュメントは優先順位が高くなります。

ディスプレイプロファイルと iPlanet Directory Server Access Management Edition

ユーザーのディスプレイプロファイルドキュメントセットは、以下のドキュメントから構成されます。

  • ユーザーの LDAP 組織 (またはサブ組織) ノードに存在するドキュメント
  • 各ユーザーのロールノードに存在するドキュメント
  • ユーザーのエントリノードに存在するドキュメント
  • グローバル表示プロファイルに存在するドキュメント

ドキュメントはこれらの各ノードで定義する必要はありませんが、各ノードに 1 つ以上のドキュメントが定義されている必要があります。 ドキュメントセットは、ディスプレイプロファイルドキュメントが定義する優先順位の値に従って格納されます。 詳細については、「表示プロファイルドキュメントの優先順位」を参照してください。 マージ動作は、異なるノードのディスプレイプロファイルドキュメントをマージして単一の表示またはデスクトップを形成する場合に、属性を結合する方式を制御します。 詳細については、「ディスプレイプロファイルのマージ」を参照してください。

管理者は iPlanet Directory Server Access Management Edition 管理コンソールを使用してディスプレイプロファイルを編集できます。 委任された管理者を設定する場合には、iPlanet Directory Server Access Management Edition 管理コンソールでディスプレイプロファイルが表示されないようにできます。 この設定はデスクトップサービステンプレートを作成する場合に行います。 デスクトップサービスのテンプレートを作成する場合、「Show デスクトップ Service Attributes」ボックスを選択しなければ、ディスプレイプロファイルテキストが委任された管理者に表示されません。



ヒント

組織の管理者は、デスクトップサービスを通じて特定のロールと関連付けられたコンテナ (またはコンテナ階層) を定義できます。 この場合、委任された管理者 (ロール管理者) は、「Desktop」属性ページの「チャンネルおよびコンテナの管理」リンクを通じて、このコンテナ内に必要なチャネルとコンテナを定義できます。 詳細については、「管理チャネルへのチャネルとコンテナ管理リンクの使用方法」を参照してください。



ディスプレイプロファイルの管理

ディスプレイプロファイルとその他のデスクトップサービスのデータは、iPlanet Directory Server Access Management Edition 管理コンソールと dpadmin コマンドを通じて編集します。 ディスプレイプロファイル を編集する場合、ディスプレイプロファイルのプロバイダ、コンテナ、およびチャネルを追加、修正、削除し、プロパティを編集します。

また、iPlanet Directory Server Access Management Edition 管理コンソールは、チャネルを追加し、既存のプロパティを編集するための「チャンネルおよびコンテナの管理」リンクをデスクトップ属性ページに表示します。 このリンクを使用すると、チャネルを新規に作成したときに、プロパティを修正することもできます。



「チャンネルおよびコンテナの管理」リンクは委任された管理者に合わせて調整され、管理者がコンテナおよびチャネルの属性をこのリンクで追加および修正できます。 システム全体の管理者は、委任された管理者が使用できるコンテナおよびプロパイダを追加することに対して責任を持つ必要があります。



表 5-2に異なるタイプのディスプレイプロファイルを示し、iPlanet Directory Server Access Management Edition 管理コンソールを使用してそれらの表示プロファイルを管理する方法について説明します。この表では、最初の列にディスプレイプロファイルのタイプを、2 列目に iPlanet Directory Server Access Management Edition 管理コンソールを使用してそのディスプレイプロファイルにアクセスする方法を、3 列目に簡単な説明を示しています。

表 5-2    表示プロファイルドキュメントのタイプ 

表示プロファイルドキュメントのタイプ

iPlanet Directory Server Access Management Edition 管理コンソールを使用して表示する方法

説明

グローバル表示プロファイルドキュメント

「サービス管理」を選択します。 Desktop の隣のプロパティ矢印をクリックします。 「Desktop」の「グローバル」セクションで、「XML の編集」をクリックします。

システムのすべてのユーザーに継承される表示プロファイル要素を、所属する組織やロールとは関係なく定義します (現在は実施していなくとも、全員が使用する共通プロバイダを定義するために、表示プロファイルの XML ドキュメントを表示する必要が発生することもあります)。

ダイナミック表示プロファイルドキュメント

「サービス管理」を選択します。 Desktop の隣のプロパティ矢印をクリックします。 「Desktop 」の「ダイナミック」セクションで、「XML の編集」をクリックします。

コンテナ管理とチャネルのプロパティを説明します。 この表示プロファイルは、実行時にユーザーのデスクトップの生成に使用されませんが、新規に作成された各組織およびロールのデフォルトになります。 デフォルトでは、ダイナミック表示プロファイルドキュメントは空白です。 ダイナミックディスプレイプロファイルを使用するために、まずそれを実装する必要があります。

組織、サブ組織、またはロール表示プロファイル

「ユーザー管理」を選択します。 適切な組織、サブ組織を選択し、必要に応じて「表示」メニューから「ロール」を選択します。 「表示」メニューから「サービス」を選択します。 「Desktop」 の隣のプロパティ矢印をクリックします。 デスクトップページで、「XML の編集」をクリックします。

選択した組織、サブ組織、またはロールのディスプレイプロファイルを表示します。 組織、サブ組織、ロールを新規に作成した場合、このエンティティのテンプレートを作成します。 デスクトップサービスにテンプレートを作成する場合、初期の表示プロファイルは上記に述べたダイナミック表示プロファイルドキュメントに設定されます。 このように、ダイナミックディスプレイプロファイルが空白の場合、何も指定されていません。

ほとんどの場合、このディスプレイプロファイルドキュメントを使用して、コンテナ管理とチャネルのプロパティを異なる組織およびロールのニーズに合わせてカスタマイズします。

Sun ONE Portal Serverをインストールするときに、最初の組織を作成します。 次にインストーラがディスプレイプロファイルグローバルレベルのドキュメントをインポートし、指定した内容に基づいてデフォルトのディスプレイプロファイルをインポートします。

その後、組織、サブ組織、またはロールを新規に作成しても、ディスプレイプロファイルは毎回自動的にロードされません。 新規に作成された組織、サブ組織、またはロールについて表示プロファイルを手動でロードする必要があります。 詳細については、「ディスプレイプロファイルをロードする (管理コンソール)」を参照してください。

ディスプレイプロファイルを管理するための高度な手順は、次のとおりです。

  1. 新規に作成された組織、サブ組織、ロールのディスプレイプロファイルをロードします。 (インストールプロセスの間に作成される組織については、この手順を実行する必要はありません。)
  2. dpadmin コマンドや「XML の編集」リンクを使用するか、または「XML のダウンロード」と「XML のアップロード」リンクを使用して保存およびロードされたファイルとしてディスプレイプロファイルを修正します。
  3. チャネルとコンテナを追加して、「チャンネルおよびコンテナの管理」リンクを使用してそれらのプロパティを追加、削除、修正します。

デフォルトの表示プロファイルドキュメント

表 5-3に、Sun ONE Portal Server デスクトップが/opt/SUNWps/samples/desktop ディレクトリにサンプルポータルとして提供しているディスプレイプロファイルドキュメントを示します。 次の 2 列構成の表では、最初の列にディスプレイプロファイルドキュメント、2 列目にその説明を一覧表示します。

表 5-3    サンプルポータルで提供される表示プロファイルドキュメント 

表示プロファイルドキュメント

説明

dp-anon.xml

認証なし匿名ユーザーによって使用されます。

dp-org.xml

デフォルトの組織レベルでロードされるサンプル表示プロファイル。 組織で使用される組織とチャネルの定義のためのグローバルプロパティをすべて定義します。

dp-org-final.xml

dp-org.xml のコピーと、ブックマークとアプリケーションのチャネルで定義される NetMail リンク。 このディスプレイプロファイルドキュメントは、NetMailサービスが作成されるときに使用されます。

dp-providers.xml

グローバルディスプレイプロファイルレベルでロードされるサンプルディスプレイプロファイル。 このドキュメントは、すべてのプロバイダ定義を定義します。 これらのプロバイダはすべての組織で使用されるため、システムは最上位でこのディスプレイプロファイルをロードし、すべての組織がそれらのプロバイダを使用できます。 プロバイダ定義が 1 つの組織でのみ使用される場合、その組織レベルのディスプレイプロファイルでプロバイダを定義します。

これらのサンプルディスプレイプロファイルのカスタマイズについての詳細は、Sun ONE Portal Server 6.0 Desktop Customization Guideを参照してください。

ディスプレイプロファイルのロード

Sun ONE Portal Serverを最初にインストールする場合、最初の組織を作成します。 またインストーラがディスプレイプロファイルグローバルレベルのドキュメントをインポートし、指定した内容に基づいてデフォルトのディスプレイプロファイルをインポートします。 サンプルポータルをインストールしない場合、サンプルディスプレイプロファイルドキュメントはインストールされません。

その後、組織、サブ組織、またはロールを新規に作成すると、ディスプレイプロファイルは自動的にロードされません。 新規に作成された組織、サブ組織、またはロールについてディスプレイプロファイルを手動でロードする必要があります。

ディスプレイプロファイルのロードには、基本的に 3 つの方法があります。

  • iPlanet Directory Server Access Management Edition 管理コンソールの「XML の編集」リンクを使用します。 この方法では、「XML の編集」リンクと組織の既存のディスプレイプロファイルを使用します。この表示プロファイルは、新規に作成した組織、サブ組織、またはロールの空の表示プロファイルにコピーアンドペーストします。 「ディスプレイプロファイルをロードする (管理コンソール)」 を参照してください。
  • コマンド行を使用します。 この方式では、dpadmin コマンドを使用してディスプレイプロファイルをロードします。 「ディスプレイプロファイルをロードする (コマンド行)」 を参照してください。 dpadmin コマンドを使用する前に、「dpadmin コマンドの使用方法のガイドライン」を参照してください。
  • iPlanet Directory Server Access Management Edition 管理コンソールの「XML のダウンロード」リンクと「XML のアップロード」リンクを使用します。 この方法では、ディスプレイプロファイルをファイルにダウンロードし、ファイルから表示プロファイルをアップロードします。 「ディスプレイプロファイルをダウンロードおよびアップロードする」 を参照してください。

    Netscape 4.x のブラウザを使用している場合は、管理コンソールから直接ディスプレイプロファイルの XML を編集できません。



ディスプレイプロファイルをロードする (管理コンソール)

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. 「表示」メニューから「組織」を選択します。
  4. ディスプレイプロファイルをコピーする組織またはサブ組織を選択します。
  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  7. データ区画にデスクトップの属性が表示されます。



    ヒント

    「デスクトップ」が表示されない箇所は、スクロールして表示します。



  8. 表示プロファイルをコピーします。
  9. 「XML の編集」をクリックして、ディスプレイプロファイルのテキスト全体を選択してコピーします。

  10. ディスプレイプロファイルをロードする組織、サブ組織、またはロールを選択します。
  11. 「ユーザー管理」を選択して「ユーザー管理」に移動し、適切な組織またはサブ組織を選択します。 ロールを表示するには、「表示」メニューから「ロール」を選択し、リストから適切なロールを選択します。

  12. 「表示」メニューから「サービス」を選択します。
  13. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  14. ディスプレイプロファイル XML があるデスクトップサービス属性の一覧が、データ区画に表示されます。

  15. 「XML の編集」をクリックします。
  16. ディスプレイプロファイルの XML ドキュメントがテキストウィンドウに表示されます。

  17. コピーしたディスプレイプロファイルをディスプレイプロファイルウィンドウにペーストします。
  18. 完了したら、「保存」を選択します。
  19. この変更は、特定の組織内のユーザーだけに反映されます。

ディスプレイプロファイルをロードする (コマンド行)

ディスプレイプロファイルをロードする場合は、dpadmin コマンドの add サブコマンドを使用します。

例えば、次のコマンドはディスプレイプロファイル (dp-org.xml) をロードします。


dpadmin add -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d
"o=sesta.com,o=isp" dp-org.xml



-r または --dryrun オプションをファイル名の前のコマンドの最後に追加すると、実際に変更内容を LDAP に書き込む前に、コマンドが成功するかどうかが確認できます。



ディスプレイプロファイルをダウンロードおよびアップロードする

  1. iPlanet Directory Server Access Management Edition 管理コンソールに管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. 「表示」メニューから「組織」を選択します。
  4. ディスプレイプロファイルをコピーする組織またはサブ組織を選択します。
  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「デスクトップ」の横にあるプロパティの矢印を選択します。
  7. データ区画にデスクトップの属性が表示されます。



    ヒント

    デスクトップが表示されない箇所は、スクロールして表示します。



  8. 「グローバル」セクションの「XML のダウンロード」をクリックして、ファイルに表示プロファイルを保存します。
  9. ディスプレイプロファイルをアップロードする組織、サブ組織、またはロールを選択します。
  10. 「ユーザー管理」を選択して「ユーザー管理」に移動し、適切な組織またはサブ組織を選択します。 ロールを表示するには、「表示」メニューから「ロール」を選択し、リストから適切なロールを選択します。

  11. 「表示」メニューから「サービス」を選択します。
  12. ナビゲーション区画の「デスクトップ」の横にあるプロパティの矢印を選択します。
  13. 「XML のアップロード」をクリックして、ロードするファイルを指定します。
  14. 「アップロード」をクリックします。
  15. 表示プロファイルのアップロードの完了を示すメッセージが表示されます。

  16. 「閉じる」をクリックします。
  17. この変更は、特定の組織内のユーザーだけに反映されます。

ディスプレイプロファイル全体を表示する

  • dpadmin コマンドと list サブコマンドを実行して、次のようにディスプレイプロファイル全体を表示します。

  • dpadmin list -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp"

ディスプレイプロファイルを削除する

破壊など、何らかの理由でディスプレイプロファイルを削除する必要がある場合、dpadmin コマンドと remove サブコマンドを使用します。

例えば、ルートからディスプレイプロファイル (dp-org.xml) 全体を削除する場合、次のように指定します。


dpadmin remove -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -t root

ルートから、またはディスプレイプロファイルが必要なノードからディスプレイプロファイルを削除する場合、新しいディスプレイプロファイルをロードする必要があります。 例えば、上記のように dp-org.xml ディスプレイプロファイルを削除した場合、dp-org-final.xml ディスプレイプロファイルのように類似した別のディスプレイプロファイルをロードする必要があります。 ディスプレイプロファイルのロードについては、「ディスプレイプロファイルをロードする (コマンド行)」を参照してください。

管理チャネルへのチャネルとコンテナ管理リンクの使用方法

管理は「チャンネルおよびコンテナの管理」リンクを使用して行います。

  • プロパティ − グローバル表示プロファイルのプロパティを定義および追加できます。
  • コンテナ − コンテナのコンテンツコンテナを追加または削除できます。 またコンテンツコンテナのプロパティを修正することもできます。
  • チャネル − コンテナのチャネルを追加または削除できます。
  • またチャネルのプロパティを修正することもできます。


  • 現在、「チャンネルおよびコンテナの管理」リンクを使用して、チャネルとコンテナ、およびそれらのプロパティを操作することができます。 このリンクでプロパイダの操作は実行できません。



「デスクトップ」の属性ページを使用する場合、委任された管理者には「チャンネルおよびコンテナの管理」リンクのみが表示されます。 他のすべてのディスプレイプロファイルの属性は非表示になっているので安全です。



ディスプレイプロファイルドキュメントでは、<channels/> タグはチャネルが指定されていないことを意味します。



チャネルとコンテナ管理のデフォルトプロバイダ

「Desktop」の「 チャンネルおよびコンテナの管理」リンクには、コンテナチャネルまたはコンテンツチャネルの追加または削除ができる管理画面が表示されます。

チャネルの追加

「チャネル」リストの「追加」リンクを使用すると、デフォルトのコンテンツプロバイダのリストから、追加するコンテンツプロバイダを選択できます。表 5-4に追加できるプロバイダチャネルを示します。この表には、プロバイダとその簡単な説明が示されます。

表 5-4    デフォルトのプロバイダチャネル 

プロバイダ

説明

AppProvider

ユーザーはアプリケーションのリストからアプリケーションを追加または削除できます。

BookmarkProvider

ユーザーはブックマークのリストから URL を追加または削除できます。

JSPProvider

1 つまたは複数の JSP™ ファイルからコンテンツを取得します。

LoginProvider

ユーザーがログインできるように、匿名ユーザーのデスクトップに「ログイン」チャネルが表示されます。

MailCheckProvider

ユーザーのメールステータスに関する情報を表示します。

NotesProvider

管理者が許可したユーザーが、Notes チャネルのすべてのユーザーのデスクトップにメッセージを投稿できます。

SearchProvider

Sun ONE Portal Server Search Engine を使用した検索機能を提供します。

SimpleWebServiceConfigurableProvider

エンドユーザーチャネルで、エンドユーザーが設定できる簡単な Web サービスが利用できるようにします。

SimpleWebServiceProvider

エンドユーザーチャネルで、簡単な Web サービスを使用できるようにします。

URLScraperProvider

リライタを使用して、URL 情報とその表示方式を説明する XML ファイルを構築します。

UserInfoProvider

ディスプレイプロファイルと iPlanet Portal Server Access Management Edition から情報を収集します。 あいさつ文、ユーザー名、タイムゾーン、ロケールが表示され、ユーザーの IMAP データと SMTP データにアクセスできます。

XMLProvider

表示用に別の形式に変換される XML ファイル形式のコンテンツを表示します。

コンテナチャネルの追加

「コンテナチャネル」リストの「追加」リンクを使用すると、デフォルトのコンテナプロバイダのリストから、追加するコンテナプロバイダを選択できます。表 5-5に使用可能なデフォルトのコンテナチャネルプロバイダを示します。 この表では、最初の列にプロバイダ名、2 列目にその簡単な説明を一覧表示します。

表 5-5    デフォルトのプロバイダコンテナチャネル 

プロバイダ

説明

JSPFrameCustomTableContainerProvider

JSPTabContainer がユーザーの JSP フレームセットベースのデスクトップでフレームを新規作成するために内部で使用するプロバイダ。

JSPSingleContainerProvider

コンテナビルディングブロックプロバイダと JSP コンテナプロバイダの拡張機能。このプロバイダは内部の単一のチャネルを表示します。

JSPTabContainerProvider

コンテナビルディングブロックプロバイダと JSP プロバイダの拡張機能。このプロバイダは複数のタブで構成されるチャネルとタブのタイトルを表示します。

JSPTabCustomTableContainerProvider

JSPTabContainer が、ユーザーの JSP タブベースのデスクトップでタブを新規作成するために内部で使用するプロバイダ。

JSPTableContainerProvider

コンテナビルディングブロックプロバイダと JSP プロバイダの拡張機能。このプロバイダはテーブル内のコンテンツチャネルを表示します。

TemplateEditContainerProvider

テンプレートベースのコンテナ (TemplateTabContainerTemplateTableContainer) が編集プロバイダとして内部で使用するプロバイダ。 チャネルの editType が edit_subset の場合、このプロバイダは「編集」ページのフレーム描画に使用されます。

TemplateTabContainerProvider

コンテナビルディングブロックプロバイダとテンプレートベースのタブコンテナ。このプロバイダはいくつかのタブのサポートを格納します。

TemplateTabCustomTableContainerProvider

テンプレートベースのコンテナ (TemplateTabContainerTemplateTableContainer) がタブを新規作成するために内部で使用するプロバイダ。

TemplateTableContainerProvider

コンテナビルディングブロックプロバイダとテンプレートベースのテーブルコンテナ。このプロバイダはテーブル内のコンテンツチャネルを表示します。

ノートチャネルについて

ノートチャネル (ノートプロバイダを使用) は、共有ファイルから一連のメッセージを読み出し、そのメッセージをフォーマットし、ユーザーのデスクトップに表示します。 オプションで、ノートチャネルを使用してユーザーは共有ファイルにメッセージを投稿できます。 これらのメッセージは、このチャネルを選択したすべてのユーザーに表示されます。 ノードデータファイルは、(テキストエディタで) 手動で編集して、メッセージを追加または削除することができます。

ノートチャネルを配置する場合、次の点を考慮してください。

  • ノートチャネルはノートテキストのエラーチェックを実行しないため、ユーザーが HTML タグなどのテキストを不注意または意図的に入力した場合、このチャネルを使用するすべてのデスクトップが表示されなくなる場合があります。 この問題が起こる場合は、ノートデータファイルを手動で編集するために、編集権限を特定のユーザーに制限するか、完全に無効にする必要があります。
  • ノートデータはファイルシステム上にあるため、マルチノード環境が想定されています。 ノートデータファイルがSun ONE Portal Serverが稼動しているサーバー間で共有されない場合、ノートチャネルは各ノード上で同じように表示されません。 マルチノード環境で使用され、ノードデータのサーバー間共有が必要な場合、共有されるノートデータファイルは NFS マウントファイルシステムを通じてアクセスできるようになります。 NFS 共有によりデスクトップのパフォーマンスと NFS サーバーのパフォーマンスが連携します。 ほとんどの場合、これは問題になりません。
  • ノードデータはファイルシステム上にあるため、その使用がパフォーマンスに影響を及ぼす場合があります。 ノートデータファイルの読み出しは I/O 操作です。 ノートデータファイルへの排他的アクセスは、ファイルのロックを通じて可能になります。 Sun ONE Portal Server の設定により結果的にノートチャネルへのアクセスが重くなる場合には、この処理は効果を示さない場合があります。 複数のノード間でノートデータファイルを NFS 共有すると、この状況がさらに悪化することがあります。 ただし、ノートチャネルを更新時間がゼロ以外になるように設定すると、ノートチャネルはあまり頻繁にファイルシステムにアクセスしなくなり、このようなパフォーマンス上の問題が軽減されます。

    ノートチャネルを使用する場合、チャネルは権限を持つユーザーグループのみが編集できるものと想定され、したがって権限を持つユーザーは特定のロールに所属します。 ロールのディスプレイプロファイルドキュメントでは、ノートチャネルの isEditable プロパティは true に設定する必要があります。



URLスクレイパーチャネルでの cookie の使用方法

URL スクレイパーチャネルで cookie を管理する場合、2 つのチャネルプロパティを使用します。 cookiesToForwardAll プロパティは、true に設定された場合、すべての cookie がターゲットサイトに転送されます。 それ以外の場合、cookiesToForwardList プロパティを使用して選択した cookie を転送することができます。

この設定はチャネル単位で行います。 詳細については、『Sun ONE Portal Server 6.0 Developerユs Guide』と『Sun ONE Portal Server 6.0 Desktop Customization Guide』を参照してください。

チャネルまたはコンテナチャネルを追加する

  1. iPlanet Directory Server Access Management Editionの管理コンソールに管理者または委任された管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. チャネルを追加する組織、サブ組織、またはロールを選択します。
  4. 委任された管理者としてログインした場合、管理者としてアクセスできる組織、サブ組織、またはロールに自動的に移動します。

  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  7. 「Desktop」ページがデータ区画に表示されます。

  8. 「Desktop」ページの「チャネルおよびコンテナの管理」リンクを選択します。
  9. 「チャネル」ページが表示され、コンテナパスが root で設定されています。

  10. チャネルまたはコンテナを追加するコンテナをクリックします。
  11. ページの上部に、チャネルが追加されるコンテナパスが表示されます。 チャネルとコンテナが定義されている場合は、リストに表示されます。

  12. 「追加」をクリックして、コンテナチャネルまたはチャネルを追加します。
  13. コンテナチャネルを追加するには、「コンテナチャネル」で「追加」をクリックします。 チャネルを追加するには、「チャネル」で「追加」をクリックします。

    「チャネルの追加」ページが表示されます。

  14. チャネル名を入力し、メニューからプロバイダのタイプを選択します。
  15. 使用可能なプロバイダについては、表 5-4を参照してください。

  16. 「作成」をクリックします。

チャネルまたはコンテナチャネルのプロパティを変更する

  1. iPlanet Directory Server Access Management Editionの管理コンソールに管理者または委任された管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. チャネルを修正する組織、サブ組織、またはロールを選択します。
  4. 委任された管理者としてログインした場合、管理者としてアクセスできる組織、サブ組織、またはロールに自動的に移動します。

  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  7. 「Desktop」属性ページがデータ区画に表示されます。

  8. 「Desktop」ページの「チャネルおよびコンテナの管理」リンクを選択します。
  9. 「チャンネル」ページが表示されます。 ページの上部にコンテナのパスが表示されます。 定義済みのチャンネルがリストに表示されます。

  10. 変更するチャネルまたはコンテナチャネルの横の「編集」リンクを選択します。
  11. プロパティページが表示されます。

  12. 必要に応じてプロパティを修正します。
  13. チャネルのプロパティの詳細については、『Sun ONE Portal Server 6.0 Desktop Customization Guide』を参照してください。

  14. 完了したら、「保存」を選択します。

チャネルまたはコンテナチャネルを削除する

  1. iPlanet Directory Server Access Management Editionの管理コンソールに管理者または委任された管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. チャネルを修正する組織、サブ組織、またはロールを選択します。
  4. 委任された管理者としてログインした場合、管理者としてアクセスできる組織、サブ組織、またはロールに自動的に移動します。

  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  7. 「Desktop」属性ページがデータ区画に表示されます。

  8. 「Desktop」ページの「チャネルおよびコンテナの管理」リンクを選択します。
  9. 「チャンネル」ページが表示されます。 ページの上部にコンテナのパスが表示されます。 定義済みのチャンネルがリストに表示されます。

  10. 削除するチャネルまたはコンテナチャネルの横のチェックボックスをクリックします。 「削除」をクリックします。
  11. チャネルが削除され、「チャネル」リストが更新され、削除が確認できます。

コンテナの管理

コンテナを管理する場合、iPlanet Directory Server Access Management Edition管理コンソールを使用して表示プロファイルの XML を直接編集することができます。 また dpadmin コマンドを使用することもできます。このコマンドはこのセクションのほとんどの箇所で、さまざまな例を使用して説明しています。

これらの例には次のものがあります。

iPlanet Directory Server Access Management Edition 管理コンソールによるディスプレイプロファイルの編集についての詳細は、「ディスプレイプロファイルテキストウィンドウの使用方法」を参照してください。

dpadmin コマンドの使用方法

dpadmin コマンドの構文は次のとおりです。


$ dpadmin list|modify|add|remove [command-specific options] -u uid -w password {-g|-d dn} [-l locale] [-r] [-b] [-h] [file]

dpadmin コマンドの完全な構文については、第 12 章「コマンド行ユーティリティ」を参照してください。 dpadmin コマンドを実行する場合は、次の点に注意してください。

  • file 引数 使用する場合、file 引数はコマンド行の最後の引数として指定する必要があります。 この引数は、ディスプレイプロファイル DTD に適合する XML フラグメントを含む XML ファイルへのパスを指定します。 XML の入力が必要なサブコマンドには、modify および add が含まれます。
  • ディスプレイプロファイル全体を追加または修正する場合、常に適切な XML ヘッダーを追加します。


    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

  • list サブコマンド ディスプレイプロファイルノードオブジェクトを取り出て、表示します。 オブジェクトはネイティブ XML 形式で表示されます。 表示されるオブジェクトは、標準出力に送信されます。 -n または --name オプションを使用しない場合、ディスプレイプロファイルドキュメント全体が表示されます。
  • modify サブコマンド 既存のディスプレイプロファイルオブジェクトの値を変更します。このコマンドは、オブジェクトがすでにディスプレイプロファイルに存在することを想定しています。 modify サブコマンドは、標準入力または引数として指定されたファイルのいずれかから新規オブジェクトのデータを読み出します。 新しいオブジェクト用のデータは、XML であり、ディスプレイプロファイル DTD に適合する必要があります。 特にオブジェクトデータは、正しく、フォーマットされた XML フラグメントになる必要があります。
  • add サブコマンド 新規オブジェクトをディスプレイプロファイルに追加します。 このサブコマンドは、追加されるオブジェクトがディスプレイプロファイルに存在しないと想定しています。 add サブコマンドは、標準入力または引数として指定されたファイルのいずれかから新規オブジェクトのデータを読み出します。 新しいオブジェクト用のデータは、XML であり、ディスプレイプロファイル DTD に適合する必要があります。 特に、オブジェクトデータは、正しくフォーマットされた XML フラグメントにする必要があります。
  • remove サブコマンド ディスプレイプロファイルから既存のオブジェクトを削除します。
  • -g オプション グローバルレベルのディスプレイプロファイルドキュメントを指定します。
  • -r または --dryrun オプション 現在のコマンドの成否、および LDAP に変更が書き込まれていないかどうかを報告します。このオプションは、特定の dpadmin コマンドが正しくフォーマットされます。
  • -n または --name および -p または --parent オプション ディスプレイプロファイルコンテナ、チャネルまたはプロバイダオブジェクト、またはディスプレイプロファイルオブジェクトの親の完全修飾名を要求します。

dpadmin コマンドの使用方法のガイドライン

dpadmin コマンドを使用してディスプレイプロファイルを更新する場合は、次のガイドラインに従います。

  • 他の管理者が同時に iPlanet Directory Server Access Management Edition 管理コンソールまたは dpadmin コマンドを使用して表示プロファイルの修正を行っていないことを確認します。 このような状況では、dpadmin コマンドと管理コンソールが同時にディスプレイプロファイルにアクセスするのを防ぐロックメカニズムが機能しないため、変更内容が損なわれてしまいます。
  • dpadmin を使用する場合、ファイルの XML「フラグメント」して修正内容を保存し、dpadmin コマンドと add サブコマンドを実行する方法をお勧めします。 たとえば、次のようになります。
  • /opt/SUNWps/bin/dpadmin add -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "uid=anonymous,ou=people,o=sesta.com,o=isp" newtheme.xml

    この例では、newtheme.xml はディスプレイプロファイルに追加される XML「フラグメント」を含むファイルです。

  • ディスプレイプロファイルドキュメントを直接編集する場合、まず dpadmin コマンドと list サブコマンドを使用してディスプレイプロファイルの最新の内容を取得し、編集を行って、dpadmin コマンドと modify サブコマンドを実行します。 たとえば、次のようになります。
  • /opt/SUNWps/bin/dpadmin list -u"uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" > dp-org.xml

    (dp-org.xml ファイルを編集します)

    /opt/SUNWps/bin/dpadmin modify -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" dp-org.xml



注意

dpadmin listdpadmin modify コマンドを実行する間に、 (管理コンソール、dpadmin、または ldapmodify コマンドを使用した) どのような方法でも LDAP サーバーで表示プロファイルドキュメントを変更しないでください。 変更した場合、その変更内容は最新の dpadmin modify によって上書きされます。



ディスプレイプロファイルの修正

ディスプレイプロファイルオブジェクトは、次のいずれかを実行して修正できます。

  • 既存のディスプレイプロファイルドキュメントを手動で編集し、dpadmin modify コマンドを使用して、適切な LDAP ノードまたはグローバルレベルでロードします。
  • 標準出力で XML テキストで変更を指定して、dpadmin コマンドを実行します。 新規オブジェクトを追加する場合、add サブコマンドを使用します。 既存のオブジェクトを修正する場合、modify サブコマンドを使用します。
  • 新規のディスプレイプロファイルドキュメントを最初から作成し、dpadmin modify コマンドを使用して適切な LDAP ノードまたはグローバルレベルでロードします。

ディスプレイプロファイルのエラーメッセージの概要

無効な XML を含むディスプレイプロファイルドキュメントを作成し、保存しようとすると、システムがエラーを報告します。 このエラーメッセージは、タイトル、メッセージ、およびサブメッセージとして表示されます。 メッセージボックスのタイトルは、「無効な XML ドキュメント」です。 メッセージは、次のいずれかの形式で表示されます。

  • XML ヘッダーがありません
  • パーサにより報告されているエラーは ... でした
  • パーサにより報告されている nnn 行および nnn 列のエラーは ... でした

「無効な XML ドキュメント」エラーが表示された場合、エラーを修正して、作業中の XML ドキュメントを保存する必要があります。

ディスプレイプロファイル オブジェクトを表示する

  • list サブコマンドを使用してディスプレイプロファイルオブジェクトを表示します。
  • 例えば、次のコマンドは TemplateTableContainer という名前のチャネル、コンテナ、またはプロバイダを取得し、標準出力に出力します。


    dpadmin list -n "TemplateTableContainer" -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp"



    -n オプションを省略すると、ディスプレイプロファイルドキュメント全体を表示できます。



コンテナのチャネルを置換する

  1. modify サブコマンドを使用して、コンテナ内のチャネルを標準入力で指定した値と置換します。
  2. 例えば、このコマンドはコンテナ TemplateTableContainer のチャネル Test を標準入力で指定された値と置換します。


    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Channel name="Test" provider="testprovider">
        <Properties>
            <String name="title" value="Test Channel"/>
            <String name="description" value="This channel is a test."/>
        </Properties>
    </Channel>
    EOF

  3. list サブコマンドを使用して、チャネルが置換されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

チャネルのプロパティを置換する

  1. modify サブコマンドを使用して、チャネル内のプロパティを標準入力で指定した値と置換します。
  2. 例えば、次のコマンドはチャネル NewChannel で動作し、プロパティ new.xml を前述のファイルの新規オブジェクトと置換します。この場合 new.xml は次のようになります。


    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <String name="welcome" value="Hi, welcome to your desktop!"/>


    dpadmin modify -p TemplateTableContainer/NewChannel -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" new.xml

  3. list サブコマンドを使用して、プロパティが置換されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

コンテナにチャネルを追加する

  1. ディスプレイプロファイル入力 XML ファイルを修正して、新規の <Channel> 定義のみを追加し、次のようにファイル testadd.xml を作成します。

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Channel name="TestChannel" provider="testprovider">
        <Properties>
          <String name="teststring" value="sfds"/>
        </Properties>
    </Channel>

  2. add サブコマンドを使用して、コンテナにチャネルを追加します。
  3. 例えば、次のコマンドは testadd.xml で定義された新規チャネルをディスプレイプロファイル に追加します。 次の例では、新規チャネルを TemplateTableContainer レベルで追加する必要があります。 親オブジェクトを -p オプションで指定しない場合、チャネルはルートレベルで追加されます。


    dpadmin add -p "TemplateTableContainer" -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" testadd.xml



    新規チャネルを JSPTabContainer に追加する場合、実際には新規タブを追加しています。 JSPTabContainer では、すべての使用可能で選択されたタブで定義された TabProperties が必要です。 この場合、JSTTabContainer に追加された新規コンテナまたはチャネルについて、新規チャネルまたはコンテナが追加された JSPTabContainerTabProperties Collection に内部で次の XML フラグメントを追加します。



    :

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Collection name="<New Channel Name>">
                <String name="title" value="<New Channel Title>"/>
                <String name="desc" value="<New Channel Description>"/>
                <Boolean name="removable" value="false"/>
                <Boolean name="renamable" value="true"/>
                <Boolean name="predefined" value="true"/>
    </Collection>

  4. list サブコマンドを使用して、チャネルが追加されたことを確認します。
  5. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

コレクションにプロパティを追加する

  1. combine (-m) オプションを使用して、コレクションに新規プロパティを追加します。
  2. 例えば、次のコマンドは新規プロパティ msg2 をコレクション bar に追加します。 既存のプロパティ msg は、まだ残っています。 list サブコマンドは、プロパティ値を表示する前後に使用されます。


    dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp
    ...
    <Collection name="foo">
        <Collection name="bar">
            <String name="msg" value="hi"/>
        </Collection>
    </Collection>
    ...


    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Collection name="foo">
        <Collection name="bar">
            <String name="msg2" value="woo hoo"/>
        </Collection>
    </Collection>
    EOF


    dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=ispモ
    ...
    <Collection name="foo">
        <Collection name="bar">
            <String name="msg" value="hi"/>
            <String name="msg2" value="woo hoo"/>
        </Collection>
    </Collection>
    ...

コレクションプロパティを追加する

  1. add サブコマンドを使用して、標準入力で指定した値でコレクションを追加します。
  2. 例えば、次のコマンドは標準入力で指定された集合プロパティ zipCodesPostal という名前のチャネル、コンテナ、またはプロバイダに追加します。


    dpadmin add -p SamplesTabPanelContainer/Postal -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Collection name="zipCodes">
        <Integer value="98012"/>
        <Integer value="98036"/>
        <Integer value="94025"/>
        <Integer value="95112"/>
    </Collection>
    EOF

  3. list サブコマンドを使用して、コレクションプロパティが追加されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

チャネルまたはコンテナからプロパティを削除する

  1. remove サブコマンドを使用して、チャネルまたはコンテナからプロパティを削除します。
  2. 例えば、次のコマンドはプロパティ locations をグローバルレベルで Bookmarks チャネル (またはコンテナ) から削除します。


    dpadmin remove -t property -p Bookmarks -n locations -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -g

  3. list サブコマンドを使用して、プロパティが削除されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

プロバイダを削除する

  1. remove サブコマンドを使用して、プロバイダを削除します。
  2. 例えば、次のコマンドはプロバイダ NotesProvider を削除します。


    dpadmin remove -t provider -n "NotesProvider" -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp"

  3. list サブコマンドを使用して、プロバイダが削除されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

コンテナからチャネルを削除する

  1. remove サブコマンドを使用して、コンテナからチャネルを削除します。
  2. 例えば、次のコマンドは、TemplateTableContainer という親コンテナ内に存在する Test というチャンネルを削除します。


    dpadmin remove --type channel --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. list サブコマンドを使用して、チャネルが削除されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

ディスプレイプロファイルドキュメントの優先順位を変更する

  1. modify サブコマンドを使用して、ディスプレイプロファイルドキュメントの優先順序を変更します。
  2. 例えば、次のコマンドはドキュメントの優先順位を、元の順序から組織の 10 に変更します。


    dpadmin modify -m -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Properties/>
    <Channels/>
    <Providers/>
    EOF

  3. list サブコマンドを使用して、優先順序が変更されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

チャネルをコンテナで使用できるようにする

  1. modify サブコマンドと combine (-m) オプションを使用して、標準入力で指定されたチャネルをコンテナの既存の使用可能リストに追加します。
  2. 例えば、次のコマンドは BookMark チャネルを TemplateTableContainerAvailable リストに追加します。


    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Available>
        <Reference value="BookMark">
    </Available>
    EOF

  3. list サブコマンドを使用して、優先順序が変更されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

チャネルをコンテナで使用不可にする

  1. remove サブコマンドを使用して、コンテナの Available リストからチャネルを削除します。
  2. 例えば、次のコマンドは、TemplateTableContainer という親コンテナの Available リストから Test というチャンネルを削除します。


    dpadmin remove --type available --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. list サブコマンドを使用して、チャネルが削除されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

コンテナの使用可能なチャネルリストからチャネルを選択する

  1. modify サブコマンドと combine (-m) オプションを使用して、標準入力で指定されたチャネルをコンテナの既存の Selected リストに追加します。
  2. 例えば、次のコマンドは BookMark チャネルを TemplateTableContainerSelected リストに追加します。


    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">
    <Selected>
        <Reference value="BookMark">
    </Selected>
    EOF

  3. list サブコマンドを使用して、優先順序が変更されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

コンテナの使用可能なチャネルリストからチャネルを選択解除する

  1. remove サブコマンドを使用して、コンテナの Selected リストからチャネルを削除します。
  2. 例えば、次のコマンドは、TemplateTableContainer という親コンテナの Selected リストから Test というチャンネルを削除します。


    dpadmin remove --type selected --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. list サブコマンドを使用して、チャネルが削除されたことを確認します。
  4. 「ディスプレイプロファイル オブジェクトを表示する」 を参照してください。

ディスプレイプロファイルテキストウィンドウの使用方法

iPlanet Directory Server Access Management Edition はディスプレイプロファイルテキストを表示し、直接編集するためのテキストウィンドウを提供します。 組織、サブ組織、またはロールに管理者としてアクセスできる間は、iPlanet Directory Server Access Management Edition 管理コンソールを使用して、このテキストウィンドウに移動し、ディスプレイプロファイルを表示または編集できます。



Netscape 4.x のブラウザを使用している場合は、管理コンソールから直接ディスプレイプロファイルの XML を編集できません。



ディスプレイプロファイルテキストウィンドウにアクセスする

  1. iPlanet Directory Server Access Management Edition の管理コンソールに管理者または委任された管理者としてログインします。
  2. 「ユーザー管理」を選択して、「ユーザー管理」に移動します。
  3. ディスプレイプロファイルドキュメントを修正する組織、サブ組織、またはロールを選択します。
  4. 委任された管理者としてログインした場合、管理者としてアクセスできる組織、サブ組織、またはロールに自動的に移動します。

  5. 「表示」メニューから「サービス」を選択します。
  6. ナビゲーション区画の「Desktop」の横にあるプロパティの矢印を選択します。
  7. 「Desktop」ページがデータ区画に表示されます。

  8. 「Desktop」ページで、「XML の編集」リンクをクリックします。
  9. ディスプレイプロファイルがテキストウィンドウに表示されます。



    デフォルトでは、表示プロファイルの優先レベルはキーワード user に設定され、現在の表示プロファイルがユーザーレベルの表示プロファイルであることを示します。 その他の許容される値は、低い優先順位を表す小さい整数です。 例えば、1 は 2 よりも優先順位が低くなります。



  10. 変更したら、「保存」を選択します。


  11. グローバル、組織、サブ組織、またはロールレベルのドキュメントへの変更は、即時有効になります。 ユーザーレベルのドキュメントへの変更は、ユーザーがログアウトおよびログインした後で有効になります。




前へ      目次      索引      次へ     
Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved.