フラットファイル Active Sync アダプタは、com.waveset.adapter.FlatFileActiveSyncAdapter クラスで定義されます。
フラットファイル Active Sync アダプタでは、次のタイプのファイルを読み取ることができます。
パーサークラスが com.waveset.util.FlatFileIterator インタフェースを実装する場合は、カスタムパーサーも使用できます。
このアダプタはソース専用アダプタです。ファイルへの書き戻しは行いません。
次に、フラットファイル Active Sync アダプタを使用するのが適していると思われる事例をいくつか挙げます。
直接的な API やその他のプログラムによるインタフェースが存在しない。
そのリソース用のリソースアダプタが存在しない。
1 つ以上のリソースに格納されているデータを、Identity Manager に読み取る前に事前処理する必要がある。
リソースの所有者が、リソースへの直接的な接続を許可していない。
リソースに対して直接接続する方法が提供されていない。
アダプタによって読み取られるフラットファイルは、プラットフォームに応じて、ローカルハードドライブ、ネットワーク共有、またはマウント済みドライブのいずれかにあるアプリケーションサーバー (クラスタが実行されている場合は、すべてのアプリケーションサーバー) で利用できるようにしてください。同期ロギングが設定されている場合は、ログディレクトリも、アプリケーションサーバーから見えるようにし、アプリケーションサーバーの処理を実行するアカウントによって書き込めるようにしてください。
もっとも信頼できる設定 (推奨される方法) は、アプリケーションサーバーに対してローカルなドライブにフラットファイルを格納することです。ログファイルも、ローカルディレクトリに書き込まれるようにしてください。異なるサーバー上で複数の Identity Manager インスタンスを使用している場合は、1 つのサーバーをフラットファイル Active Sync アダプタの実行用に選択し、管理インタフェースの「同期ポリシーの編集」ページでそのサーバーを指定します。これにより、アダプタ上のポーリング操作が sources.hosts プロパティーで指定したサーバー (複数可) 上で常に実行されることが保証されます。
このリソースでは、追加のインストール手順は必要ありません。
ここでは、フラットファイル Active Sync リソースアダプタの使用に関連する設定の注意点について説明します。 次のトピックで構成されています。
LDIF ファイルをポーリングしている場合は、LDAP API によって属性名が小文字に変換されます。したがって、大文字を含む属性名 (accountId など) がある場合、LDAP API によって accountid のように変換されます。Active Sync の起動時に、次のエラーのログがとられます。
com.waveset.util.WavesetException: No name attribute found for user based on Resolve Identity Rule or schema map.
この状況を解決するには、スキーママップで、リソースユーザー属性を accountid に設定します。
ファイル内の列を使用して accountId を直接設定していないファイルをインポートしたときに、同じエラーが再度発生する可能性があります。このエラーメッセージを回避するには、Active Sync フォームに global.accountId のフィールドを追加し、そのフィールドに accountId を構築するロジックを追加して、ユーザーフォームを変更します。次に示すフィールド例では、accountId を firstname.lastname に設定しています。 ただし、create 操作に対してのみです。
<Field name=’waveset.accountId’> <Expansion> <concat> <ref>activeSync.firstname</ref> <s>.</s> <ref>activeSync.lastname</ref> </concat> </Expansion> <Disable> <neq> <ref>feedOp</ref> <s>create</s> </neq> </Disable> </Field>
フラットファイル Active Sync アダプタは、フラットファイルのタイムスタンプを追跡できます。また、アダプタは最後に処理されたファイルをアーカイブして、これを最新のバージョンと比較します。Identity Manager は、2 つのファイルが異なっているアカウントで処理を実行します。
これらの機能が有効になっている場合、Identity Manager がソースのフラットファイルを最初にポーリングするときに、そのファイルがコピーされ、同じディレクトリ内に配置されます。コピーされた (保存された) ファイルには、FFAS_ timestamp.FFAS という名前が付けられます。timestamp は、元のファイルが最後に変更された時刻を示します。タイムスタンプの形式は、ソースファイルのあるオペレーティングシステムによって決まります。
その後のポーリングごとに、Identity Manager は元のファイルのタイムスタンプと最新のタイムスタンプを比較します。新しいタイムスタンプの値が直前の値と同じ場合、ファイルは変更されていないので、次のポーリングが行われるまでそれ以上の処理は実行されません。タイムスタンプの値が異なる場合、Identity Manager は FFAS ファイルの存在をチェックします。このファイルが存在していなければ、Identity Manager は更新されたソースファイルを新しいファイルとして処理します。
タイムスタンプが異なっており、保存されている FFAS ファイルが存在する場合、Identity Manager はソースファイルと保存されているファイルを比較します。この比較によって、変更されていないユーザーを処理の対象から除外します。変更されたユーザーは、アダプタを通して通常の方法で送信され、設定された処理、相関規則および削除規則によって、このユーザーに対する処理が決まります。
これらの規則を利用しやすくするために、差分メカニズムで検出された状況を示すための属性がアダプタによって追加されます。新しく更新されたソースファイルのみに存在しているユーザーに対して、ユーザーレコードに値が create の diffAction という属性が追加されます。ソースファイル内のいずれかのエントリが更新された場合、そのエントリに対して属性 diffAction が追加され、値には update が設定されます。いずれかのユーザーが削除された場合、そのユーザーレコードに対して、diffAction 属性の値は delete になります。
2 つのファイルの比較が完了し、すべてのアカウント処理が行われたあと、Identity Manager によって元の FFAS ファイルが削除され、現在のソースファイルが新しい FFAS ファイルにコピーされます。このファイルのタイムスタンプは、直前の FFAS ファイルとは異なるものになります。
次に、このアダプタによってサポートされているファイルの例を示します。
区切り文字およびテキスト修飾子は、任意の 1 文字に設定できます。どちらかで Unicode 文字を使用する場合は、/u#### という形式で入力できます。区切り文字およびテキスト修飾子は、LDAP データ交換形式には適用されません。
次の例では、引用符 (" ") がテキスト修飾子として使用されます。文字列 1234 Pecan Ave., Ste 30 にはコンマが含まれています。そのためシステムがこの文字列内の Ste 30 を一つの属性として解釈しないように、引用符で修飾させる必要があります。
accountId,firstname,lastname,email,street address kb323441,Kevin,Brown,Kevin.Brown@example.com,”1234 Pecan Ave., Ste 30” pc432343,Penelope,Carter,Penelope.Carter@example.com,4234 Main St.
accountId|firstname|lastname|email|street address kb323441|Kevin|Brown|Kevin.Brown@example.com|1234 Pecan Ave., Ste 30 pc432343|Penelope|Carter|Penelope.Carter@example.com|4234 Main St.
dn: cn=Kevin Brown,ou=People,dc=example,dc=com changetype: add objectClass: top objectClass: person objectClass: organizationalperson objectClass: inetorgperson employeeNumber: kb323441 cn: Kevin Brown sn: Brown departmentNumber: 7013 description: Production displayName: Kevin givenName: Kevin mail: Kevin.Brown@example.com o: Acme ou: Production postalAddress: 1234 Pecan Ave., Ste 30 postalCode: 43231 st: CA street: 1234 Pecan Ave, Ste 30 title: Production Assistant jpegphoto: file:///c:/photos/Kevin.Brown.jpg
ここでは、サポートされる接続と特権の要件について説明します。
「リソースを設定する際の注意事項」を参照してください。
管理ユーザーに、フラットファイルを含むディレクトリに対する読み取りと書き込みのアクセス権を与えてください。「違いのみを処理」の Active Sync パラメータが有効になっている場合は、管理ユーザーに削除のアクセス権も与える必要があります。
さらに、管理者アカウントには、Active Sync の「ログファイルパス」フィールドに指定したディレクトリに対する読み取り、書き込み、および削除の権限が必要です。
次の表に、このアダプタのプロビジョニング機能の概要を示します。
機能 |
サポート状況 |
---|---|
アカウントの有効化/無効化 |
なし |
アカウントの名前の変更 |
なし |
パススルー認証 |
なし |
前アクションと後アクション |
なし |
データ読み込みメソッド |
Active Sync 調整はサポートされません。 |
リソースアダプタのスキーマ定義は、フラットファイルの内容に依存します。属性が何も指定されていない場合、アダプタはフラットファイルから取得した属性名を使用します。区切りファイルの場合、これらの値は列見出しに対応しています。1 つ以上の Identity Manager の属性名をフラットファイルで定義している列の名前にマップするには、スキーママップのページで、各々のマッピングを設定します。
フラットファイルの形式が LDIF である場合は、バイナリ属性 (グラフィックスファイル、オーディオファイル、証明書など) を指定できます。バイナリ属性は、区切りファイルに対してはサポートされていません。
適用不可
このアダプタでは、アイデンティティーテンプレートは無視されます。
なし
Identity Manager のデバッグページを使用して、次のクラスでトレースオプションを設定します。
com.waveset.adapter.FlatFileActiveSyncAdapter