LDAP スクリプティング
データをインポートするときの要件を指定するカスタム変換マップ、スクリプト、およびビジネスルールを作成します。
カスタム変換マップには、onStart および onAfter 変換スクリプトを含める必要があります。
onStart スクリプトは LDAPUtils スクリプトインクルードを呼び出してログ記録を開始する必要があります。たとえば、[LDAP ユーザーインポート] 変換マップには、次のコードを使用する onStart スクリプトがあります。gs.include ( "LDAPUtils" ) ; var ldapUtils = new LDAPUtils ( ) ;
ldapUtils. setLog (log ) ;onAfter スクリプトは addMembers 関数を呼び出します。例:ldapUtils.addMembers (source , target ) ;無効な Active Directory ユーザーを非アクティブに設定する
関連付けられた AD ユーザーが無効になっている場合は、次のスクリプトを使用してユーザーを自動的に非アクティブ化します。
始める前に
このタスクについて
無効な Active Directory ユーザーは、userAccountControl 属性の値を確認することで識別できます。このルールは、userAccountControl の値が変更されるたびに実行され、[ユーザーアカウント制御] が無効な AD アカウントを示している場合はユーザーアカウントを非アクティブ化します。
関連付けられた AD ユーザーが無効になっている場合は、次のスクリプトを使用してユーザーを自動的に非アクティブ化します。
手順
LDAP フィールド値の割り当て
スクリプトを使用して、フィールドマッピングがあるフィールドに値を割り当てることができます。
たとえば、[sys_user.company] フィールドに値を割り当てるには、[会社] フィールドのフィールドマップを作成し、次の変換スクリプトを追加します。
company = "Don's Sporting Goods";特定の LDAP ユーザーを除外する
LDAP フィルタープロパティを使用して LDAP ユーザーリストを完全にフィルタリングできない場合は、マップスクリプトを使用してユーザーを除外できます。
インポートしないユーザーを識別するロジックを実行した後、user_name フィールドを空の文字列に設定すると、このユーザーはインポートされません。
user_name='';除外するユーザーを識別する方法の 1 つは、DistinguusedName 属性で文字列を検索することです。たとえば、このスクリプトは、ユーザー OU にないアカウントを除外します。ユーザー OU が多すぎてターゲット OU LDAP オプションに含めることができない場合は、このスクリプトを使用できます。
//vdn is a variable mapped to distinguishedName
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
if (vdn.indexOf('OU=Users')<0) {
user_name='';
gs.log('LDAP Import Skipping User: ' + vdn);
}フィルタリングのより複雑な方法は、正規表現を使用することです。
//vcn is a variable mapped to cn
//vdn is a variable mapped to distinguishedName
//c is the regular expression string
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
var vcn = source.getElement(this.cn);
var c = /^[a-z][a-z][a-z][0-9][0-9][0-9]$/;
var nvcn = vcn.toLowerCase();
//test to see if the cn is in the form of 3 letters followed by 3 numbers, only import these
if (c.test(nvcn)) {
user_name = nvcn;
} else {
gs.log("LDAP import rejected username: " + vcn + " for DN: " + vdn);
user_name = "";
}