2.2.6 ディレクトリ情報の操作
組み込み関数$LDAPACSを使用すると、ディレクトリサービスへの接続認証、検索、エントリの取得、属性の取得などができます。
ここでは、組み込み関数$LDAPACSで使用できる関数およびオブジェクト操作規則について説明します。
(1) 組み込み関数$LDAPACSで使用できる関数
組み込み関数$LDAPACSで使用できる関数と機能を次の表に示します。
関数名 |
機能 |
---|---|
CONNECT |
ディレクトリサービスへの接続認証 |
CONVERT |
ディレクトリ情報の検索用文字列への変換 |
DISCONNECT |
ディレクトリサービスとの接続解除 |
FIRSTENTRY |
最初に検索されたエントリの取得 |
FREEENTRY |
エントリの解放 |
FREERESULT |
検索結果の解放 |
GETDN |
エントリのDNの取得 |
NEXTENTRY |
2番目以降に検索されたエントリの取得 |
SEARCH |
ディレクトリサービスの検索 |
SELECTVALUE |
属性値の取得 |
各関数の機能、記述形式、パラメーター、および戻り値については、「5. アクセス定義ファイルに記述する組み込み関数」の$LDAPACS(ディレクトリ情報へのアクセス関数)を参照してください。
(3) オブジェクトのメモリ管理構造
|
LDAPOBJ、LDAPRST、LDAPENT、およびLDAPATRは、その下位すべてのオブジェクトを管理します。そのため、LDAPOBJ、LDAPRST、LDAPENT、およびLDAPATRを解放すると、その下位のすべてのオブジェクトも解放されます。なお、KEYNAME、LDAPVAL、DN、SELVALなどの最下位文字列は、オブジェクト自身の解放はできません。
(4) 記述例
組み込み関数$LDAPACSの記述例を次に示します。
[VAR] STATUS MSG HOST PORT FILTER BASE SCOPE FIRST LDOBJ LDRST LDENT DN NAME [SET_VALUE] HOST = 'localhost' PORT = '389' BASE = 'ou=people,o=xxxxxxx.co.jp' SCOPE= 'LDAP_SCOPE_ONELEVEL' [SET_VALUE] $LDAPACS('CONNECT',LDOBJ,HOST,PORT,'','') # CONNECT STATUS = $GETSTATUS() [SET_VALUE] FILTER = '(&(objectclass=*)(title;lang-ja=' FILTER = FILTER+$LDAPACS('CONVERT','主任') # CONVERT FILTER = FILTER+'))' # FILETER=(&(objectclass=*)(title;lang-ja=\E4\B8\BB\E4\BB\BB)) $LDAPACS('SEARCH',LDRST,LDOBJ,BASE,FILTER,SCOPE) # SEARCH FIRST = 1 [DO] [IF] FIRST = 1 [THEN] [SET_VALUE] $LDAPACS('FIRSTENTRY',LDENT,LDRST) # GET FIRST ENTRY STATUS = $GETSTATUS() FIRST = 0 [ELSE] [SET_VALUE] $LDAPACS('NEXTENTRY',LDENT,LDRST) # GET NEXT ENTRY STATUS = $GETSTATUS() [IF_END] [IF] STATUS = NORMAL [THEN] [SET_VALUE] $LDAPACS('GETDN',DN,LDENT) # GET DN $LDAPACS('SELECTVALUE',NAME,LDENT,'cn') # GET VALUE OF CN MSG='DN ['+DN+'] is '+NAME $ECHO(MSG) $LDAPACS('FREEENTRY',LDENT) # FREE ENTRY OBJECT [ELSE] [SET_VALUE] $BREAK() [IF_END] [DO_END] [SET_VALUE] $LDAPACS('FREERESULT',LDRST) # FREE SEARCH OBJECT [SET_VALUE] $LDAPACS('DISCONNECT',LDOBJ) # FREE LDAP OBJECT