インストールおよびアップグレード > Installation and Configuration Guide > 高度な設定 > 追加のエンタープライズディレクトリの設定 > JNDI アダプタの作成と設定
  
JNDI アダプタの作成と設定
別のネーミングサービスまたはディレクトリサービス (LDAP サービスなど) に接続する際には、Java Naming and Directory Interface (JNDI) アダプタを作成し、設定する必要があります。JNDI アダプタにより、エンタープライズディレクトリサーバーなどの JNDI システムを使用してアクセスできる、各種のネーミングインタフェースおよびディレクトリインタフェースに接続できます。JNDI サービスプロバイダインタフェース (SPI) は、ネーミングサービスおよびディレクトリサービスを JNDI フレームワークに統合する手段を提供します。ディレクトリに接続するには、適切な JNDI サービスプロバイダが必要です。
次のセクションでは、JNDI アダプタエントリを作成し、ユーザーおよびグループのプロパティのデフォルトマッピングを設定する方法を説明します。JNDI アダプタエントリの設定の詳細、およびアダプタプロパティの詳細については、JNDI Adapter Guideのセクションを参照してください。LDAP エントリの作成については、LDAP の設定の入力を参照してください。
次のセクションでは、JNDI アダプタエントリを作成し、ユーザーおよびグループのプロパティのデフォルトマッピングを設定する方法を説明します。JNDI アダプタエントリの設定の詳細、およびアダプタプロパティの詳細については、「JNDI Adapter Guide」のセクションを参照してください。LDAP エントリの作成については、Windchill ヘルプセンターの「LDAP の設定の入力」のセクションを参照してください。
JNDI コンフィギュレーション処理の基本的なステップは、主に次の 2 つです。
1. JNDI アダプタエントリの作成
2. 追加プロパティの設定
JNDI アダプタエントリの作成
アダプタのプロパティは、Info*Engine アダプタ LDAP エントリの属性として保持されます。Info*Engine アダプタ LDAP エントリを追加または修正するには、Info*Engine プロパティ管理ユーティリティを使用してください。プロパティ管理ユーティリティにアクセスするには、「サイト」 > 「ユーティリティ」の順に移動して、「Info*Engine 管理」をクリックします。
新しいアダプタサービスの LDAP エントリを作成するには、Info*Engine プロパティ管理メインページの「エントリを作成」ドロップダウンメニューから「JNDI Adapter」を選択します。フォームに値を入力します。フォームの必須フィールドはアスタリスク (*) を付けて示されます。
Info*Engine プロパティ管理ユーティリティの使用の詳細については、プロパティ管理のメインページを参照してください。
すべてのアダプタ LDAP エントリフォームには、次のフィールドが含まれています。
サービス名
識別名
ランタイムサービス名
プロパティ管理ユーティリティは、「サービス名」「識別名」、および「ランタイムサービス名」の各フィールドに、提示される名前を自動的に適用します。これらの名前は、管理ユーティリティにログオンする際に提供される情報、およびフォームに格納されている情報に基づいています。
「サービス名」- この名前が一意であることを確認してください。新規の名前を指定する場合は、ピリオド文字 (".") を使用する際の特別な考慮事項に注意してください。これについては後述します。
「識別名」- プロパティ管理ユーティリティによって提示された名前を使用します。新しいサービス名を入力すると、それに対応して識別名のフィールドが更新されます。
「ランタイムサービス名」- この名前はサービス名と同一であることが必要です。
これらの名前を変更して、サイトの LDAP エントリに設定された基準に一致させることができます。ただし、新しい JNDI アダプタの名前を付ける際には、ピリオド文字 (".") に特有の意味があることに注意してください。ピリオド文字 (".") を使用すると、対応するリポジトリ定義に使用する必要がある名前のフォーマットに影響します。
多くのリポジトリ名とリポジトリタイプは階層構造を指定するので、インターネットドメインのフォーマットで値を設定する必要があります。このため、Info*Engine アダプタに付けられる名前は一般に、デプロイ先のネットワークとの関係を反映しています。以下に例を示します。
com.company.host.Ldap
サービス名にはピリオド文字 (".") が含まれるので、新しいリポジトリ定義を作成して名前を付ける際には、名前の各部分を反転する必要があります。このため、JNDI アダプタに com.company.host.Ldap という名前を付ける場合、対応する Info*Engine リポジトリには次のような名前を付ける必要があります。
Ldap.host.company.com
ピリオド文字 (".") を含まないアダプタ名を指定することで、これを回避できます。たとえば、JNDI アダプタに EnterpriseDirectory1 という名前を付ける場合、対応するリポジトリ定義の名前も EnterpriseDirectory1 になります。新規リポジトリ定義を作成する手順については、リポジトリ定義の作成を参照してください。
* 
このような命名規則要件は、ユーザーおよびグループの情報を維持する LDAP ディレクトリサービスに Windchill を接続する際にのみ必要です。ほかの Info*Engine 統合コンフィギュレーションには、このような要件は不要です。
サービスクラス
「サービスクラス」プロパティは、次のようにアダプタの Java クラスを特定します。プロパティ管理ユーティリティによって提供されるデフォルトを使用します。
シリアル化タイプ
ホスト
ポート
プロバイダの URL
エンタープライズディレクトリサーバーへのアクセスに使用する URL を指定します。
サーチベース
すべてのユーザー情報を配置する LDAP ノードの識別名を指定します。すべてのユーザーサーチが、これをベースとして使用します。
ディレクトリシステムエージェントユーザー
ディレクトリシステムエージェント資格証明
これらは、エンタープライズディレクトリにアクセスする Windchill ユーザーの識別名とパスワードの定義に使用できます。ただし、これらのフィールドはブランクのままにして、MapCredentials ファイルを代わりに使用することを PTC はお勧めします。詳細については、MapCredentials.xml ファイルでの認証の設定を参照してください。
シリアル化タイプ
ホスト
ポート
特別な理由がない限り、ほかのフィールドをすべてブランクにする必要があります。
次のオプションを使用して、その他のアダプタプロパティの詳細を確認できます。
カーソルをプロパティ名の上に移動すると、プロパティの簡単な説明が表示されます。
プロパティ名をクリックすると、それぞれのプロパティを説明するページが開きます。
フォームから選択可能なヘルプリンクをクリックします。
Windchill ヘルプセンター の「JNDI アダプタのプロパティ」のセクションを参照してください。
追加プロパティの設定
エンタープライズディレクトリの属性と Windchill の属性を比較し、差異がある場所を調べます。Windchill ユーザーおよびグループ属性については、ユーザーおよびグループの LDAP 属性値のマッピングで説明されています。属性の定義を比較するときは、この情報を使用します。
フォームでプロパティが定義されていない場合は、「その他のプロパティ」フィールドでプロパティを追加できます。プロパティを追加する際、プロパティ名はアダプタエントリの名前 (LDAP エントリフォームの「サービス名」フィールドの値) とそれに続くプロパティ名から構成されます。以下に例を示します。
<サービス名>.pageSize
必要な場合は、次に示す追加プロパティを設定します。これらのプロパティは、LDAP エントリフォームの「その他のプロパティ」フィールドを使用して追加できます。
windchill.config.readOnly
ディレクトリに対する変更を Windchill 経由で実行できないようにするには、このプロパティを TRUE に設定します。それ以外の場合、このプロパティは不要で、FALSE に設定することもできます。
windchill.config.doesNotContainGroups
ディレクトリがグループを含んでおらず、このディレクトリをグループの検索対象にしないように指示するには、このプロパティを TRUE に設定します。それ以外の場合、このプロパティは不要で、FALSE に設定することもできます。
windchill.config.directoryType
このプロパティは、Microsoft Active Directory を使用する場合にのみ必要です。それ以外の場合、このプロパティは無視してください。
このプロパティを設定すると、アダプタは Microsoft Active Directory 固有の機能と互換性のある処理方法で一部の要求を処理するようになります。
<サービス名>.windchill.config.directoryType=ADS
このプロパティを設定すると、ページサーチが自動的に有効になります。ページサーチを設定するには、pageSize プロパティと pagedSizeLimit プロパティを使用します。詳細については、JNDI アダプタのプロパティを参照してください。
* 
ページサーチはどのディレクトリタイプに対しても設定できますが、Microsoft Active Directory を使用する場合のみデフォルトで有効になります。ほかのディレクトリタイプに対してページサーチを有効にするには、pageSize プロパティを設定します。
windchill.mapping.user.attributes
Windchill および参加者のキャッシュで利用できる LDAP 属性を指定します。たとえば、Windchill でアクセスする典型的な属性は次の属性です。
user.getAttributes().get(“<LDAP-属性名>”);
コンマで区切られたリストとして属性を入力します。
windchill.mapping.usersOrganizationName
ユーザーに組織名を割り当てる方法は 2 つあります。ユーザーに組織が割り当てられていなければ、ユーザーは子コンテキスト内のデータにアクセスできません (製品、プロジェクト、ライブラリなど)。使用する方法は、複数の組織を識別する必要があるかどうかによって異なります。
システムに複数の組織が存在し、それぞれのユーザーのセットを異なる組織に関連付ける必要がある場合は、ディレクトリサーバー内の各ユーザーエントリに組織属性を割り当てることができます。組織属性に割り当てられる値は、Windchill 内でユーザーが割り当てられる組織です。
デフォルトでは、Windchill はユーザーの組織名を検索する際に、ディレクトリサーバー内で o 属性を指定します。ディレクトリサーバーが o 属性を使用していない場合は、プロパティ
<サービス名>.windchill.mapping.user.o=<組織属性名>
を使用して、組織名に関連付ける属性を定義する必要があります。
<サービス名> はアダプタのサービス名、<組織属性名> はユーザーを組織名に関連付けるために使用されるディレクトリサーバー内の属性です。
JNDI アダプタ経由でアクセスされるユーザーがすべて同じ組織に属している場合は、usersOrganizationName プロパティを追加することによって、ユーザーの組織名を次のように割り当てることができます。
<サービス名>.windchill.mapping.usersOrganizationName=<組織名>
このプロパティに対して設定する値は、このアダプタ経由でアクセスされるすべてのユーザーに割り当てられる組織名を表します。
このプロパティを使用すると、ディレクトリサーバー内のユーザーエントリに対して定義されている組織属性がすべてオーバーライドされます。usersOrganizationName プロパティの値のみが Windchill によって使用されます。詳細については、データへのユーザーアクセスの管理を参照してください。
属性値のマッピングの詳細については、ユーザーおよびグループの LDAP 属性値のマッピングを参照してください。