CFLDAP  
説明

Netscape Directory Server などの LDAP (Lightweight Directory Access Protocol) ディレクトリサーバーへのインターフェイスを提供します。

 
カテゴリ

インターネットプロトコルタグ

 
シンタックス
<cfldap
   server = "server_name"
   port = "port_number"
   username = "name"
   password = "password"
   action = "action"
   name = "name"
   timeout = "seconds"
   maxRows = "number"
   start = "distinguished_name"
   scope = "scope"
   attributes = "attribute, attribute"
returnAsBinary = "column_name, column_name"
   filter = "filter"
   sort = "attribute[, attribute]..."
   sortControl = "nocase" および "desc"、"asc"
   dn = "distinguished_name"
   startRow = "row_number"
   modifyType = "replace"、"add"、"delete"
   rebind = "yes"、"no"
   referral = "number_of_allowed_hops"
   secure = "multi_field_security_string"
   separator = "separator_character"
   delimiter = "delimiter_character">
 
関連項目

cfftp、cfhttp、cfmail、cfmailparam、cfpop、『ColdFusion MX 開発ガイド』の第23章の「LDAP ディレクトリの管理」

 
ヒストリ

ColdFusion MX 7: returnAsBinary 属性が追加されました。

ColdFusion MX:

  • name 属性の動作が変更されました。このタグでは、name 属性のクエリー名が検証されます。
  • ソートの動作が変更されました。このタグでは、クライアントサイドでのクエリー結果のソートがサポートされません。サーバーサイドでのソートはサポートされています (sort および sortcontrol 属性を使用します)。
  • 結果のソート方法が変更されました。サーバーサイドのソート結果は、ColdFusion 5 の場合と少し異なります。ソートがサポートされてないサーバーに対してソートを実行しようとすると、ColdFusion MX でエラーが発生します。
  • filterfile 属性は使用禁止になりました。今後のリリースではこのタグは機能せずエラーを引き起こす可能性があります。

 
使用方法

query アクションを使用すると、cfldap ではクエリーオブジェクトが作成されるため、次の表に示すようにクエリー変数の情報にアクセスできます。

変数名 説明

queryname.recordCount

クエリーによって返されるレコードの数です。

queryname.currentRow

cfoutput が処理しているクエリーの現在行です。

queryname.columnList

クエリーの列名です。

security="CFSSL_BASIC" オプションを使用した場合、ColdFusion は、サーバーの資格情報と ColdFusion MX で使用される JRE の jre/lib/security/cacerts キーストア内の情報とを比較することで、サーバーを信頼するかどうかを判断します。ColdFusion MX のデフォルトの cacerts ファイルには、数多くの認証機関についての情報が含まれています。このファイルを追加情報で更新しなければならない場合は、ColdFusion の jre/bin ディレクトリにあるキーツールユーティリティを使用して、X.509 形式の資格情報をインポートします。たとえば、以下を入力してください。

keytool -import -keystore cacerts -alias ldap -file ldap.crt -keypass bl19mq

その後、ColdFusion MX を再起動します。キーツールユーティリティの初期 keypass パスワードは "change it" です。キーツールユーティリティの使い方については、Sun JDK ドキュメントを参照してください。

ColdFusion では無効な文字が、LDAP の属性名に使用されていることがあります。結果として、cfldap タグが作成するクエリー結果セットの中に、CFML でアクセスできない無効な文字を含む名前の列が含まれる可能性があります。ColdFusion では、無効な文字は自動的にアンダースコア文字にマッピングされます。したがって、クエリー結果セットの列名は LDAP 属性の名前とは正確には一致しない場合があります。

使用例については、『ColdFusion MX 開発ガイド』を参照してください。

 
<h3>cfldap の例</h3>
<p>LDAP ディレクトリサーバーへのインターフェイスを提供します。この例では
コネチカット大学のパブリック LDAP サーバーを使用します。パブリック LDAP サーバーの詳細については、
<a href="http://www.emailman.com">http://www.emailman.com</a> を参照してください。</p>
<p>名前を入力し、パブリック LDAP リソースを検索してください。 
名前の前後のアスタリスクはワイルドカードとして機能します。</p>
<!--- form.name が存在する場合は、フォームが送信されているのでクエリーを実行します。 --->
<cfif IsDefined("form.name")>
   <!--- 名前がリストされていることをチェックします。 --->
   <cfif form.name is not "">
      <!--- LDAP クエリーを作成します。 --->
      <cfldap
          server = "ldap.uconn.edu"
          action = "query"
          name = "results"
          start = "dc=uconn,dc=edu"
          filter = "cn=#name#"
          attributes = "cn,o,title,mail,telephonenumber"
          sort = "cn ASC">
      <!--- 結果を表示します。 --->
      <center>
      <table border = 0 cellspacing = 2 cellpadding = 2>
         <tr>
            <th colspan = 5>
               <cfoutput>#results.recordCount# matches found
               </cfoutput></TH>
         </tr>
         <tr>
            <th><font size = "-2">名前</font></TH>
            <th><font size = "-2">組織</font></TH>
            <th><font size = "-2">役職</font></TH>
            <th><font size = "-2">電子メール</font></TH>
            <th><font size = "-2">電話</font></TH>
         </tr>
         <cfoutput query = "results">
            <tr>
               <td><font size = "-2">#cn#</font></td>
               <td><font size = "-2">#o#</font></td>
               <td><font size = "-2">#title#</font></td>
               <td><font size = "-2">
                  <A href = "mailto:#mail#">#mail#</A></font></td>
               <td><font size = "-2">#telephonenumber#</font></td>
            </tr>
         </cfoutput>
         </table>
         </center>
      </cfif>
</cfif>

<form action="#cgi.script_name#" method="POST">
<p>データベース内で検索する名前を入力します。
<p>
<input type="Text" name="name">
<input type="Submit" value="検索" name="">
</form>
SERVER  
  必須
 

LDAP サーバーのホスト名または IP アドレスです。

PORT  
  オプション
 
Default value: "389"

ポートです。

USERNAME  
  secure = "CFSSL_BASIC" の場合は必須
 
Default value: "(匿名)"

ユーザー ID です。

PASSWORD  
  secure = "CFSSL_BASIC" の場合は必須
 

ユーザー名に対応するパスワードです。

secure = "CFSSL_BASIC" の場合、V2 によりパスワードが送信前に暗号化されます。

ACTION  
  必須
 
Default value: "query"
  • query: LDAP エントリ情報のみを返します。name、start、および attributes 属性が必要です。
  • add: LDAP エントリを LDAP サーバーに追加します。attributes 属性が必要です。
  • modify: LDAP サーバー上で LDAP エントリを修正します (識別名 dn 属性は除く)。dn 属性が必要です。modifyType 属性を参照してください。
  • modifyDN: LDAP サーバー上で LDAP エントリの識別名属性を修正します。dn 属性が必要です。
  • delete: LDAP サーバー上の LDAP エントリを削除します。dn 属性が必要です。
NAME  
  action = "Query" の場合は必須
 

LDAP クエリーの名前です。このタグは、この値を検証します。

TIMEOUT  
  オプション
 
Default value: "60000"

LDAP 処理の最大待機時間をミリ秒単位で指定します。

MAXROWS  
  オプション
 

LDAP クエリーに含まれるエントリの最大数です。

START  
  action = "Query" の場合は必須
 

検索を開始するために使用するエントリの識別名です。

SCOPE  
  オプション
 
Default value: "oneLevel"

action = "Query" の場合に、start 属性に指定したエントリからどこまでを検索スコープにするかを指定します。

  • oneLevel: 1 つ下のレベルにあるエントリ
  • base: そのエントリのみ
  • subtree: エントリとその下の全レベル
ATTRIBUTES  
  action = "Query"、"Add"、"ModifyDN"、または "Modify" の場合は必須
 

クエリーの場合は、取得したい属性のカンマ区切りリストを指定します。クエリーの場合、すべての属性を取得するには "*" を指定します。

action = "add" または "modify" の場合は、更新する列のリストを指定できます。属性をセミコロンで区切って指定します。

action = "ModifyDN" の場合は、シンタックスチェックを行わずに属性がそのまま LDAP サーバーに渡されます。

RETURNASBINARY  
  オプション
 

バイナリ値として返される列のカンマ区切りリストです。

FILTER  
  オプション
 
Default value: ""objectclass = *""

action = "query" の場合の検索条件です。

属性を
"(attribute operator value)" という形式でリストします。
例 : "(sn = Smith)"

SORT  
  オプション
 

クエリー結果のソートに使用する属性です (複数可)。カンマ区切りで指定します。

SORTCONTROL  
  オプション
 
Default value: "asc"
  • nocase: 大文字と小文字を区別しないでソートします。
  • asc: 大文字と小文字を区別し、昇順 (a から z へ) でソートします。
  • desc: 大文字と小文字を区別し、降順 (z から a へ) でソートします。

sortControl = "nocase, asc" のように、ソートタイプを組み合わせて入力することもできます。

DN  
  action = "Add"、"Modify"、"ModifyDN"、または "delete" の場合は必須
 

update アクションの識別名です。例 : "cn = Bob Jensen, o = Ace Industry,
c = US"

STARTROW  
  オプション
 
Default value: "1 "

action = "query" と共に使用します。ColdFusion クエリーに挿入する LDAP クエリーの最初の行です。

MODIFYTYPE  
  オプション
 
Default value: "replace"

複数値リスト内で属性を処理する方法を示します。

  • add: 指定された属性を既存の属性に追加します。
  • delete: 属性のセットから属性を削除します。
  • replace: 属性を、指定された属性に置き換えます。

既に存在する属性や空の属性を追加することはできません。

REBIND  
  オプション
 
Default value: "no"
  • yes: 委託コールバックの再バインドを試み、元の証明情報を使用して、参照アドレスでクエリーを再発行します。
  • no: 参照接続は匿名です。
REFERRAL  
  オプション
 

整数です。委託で許可されるホップの数です。値 を 0 に設定すると、LDAP 用の参照アドレスが無効になります。したがって、データは返されません。

SECURE  
  オプション
 

使用するセキュリティと、必要な情報です。オプションは 1 つです。

  • CFSSL_BASIC

"CFSSL_BASIC" を指定すると、V2 SSL の暗号化とサーバー認証が可能になります。

SEPARATOR  
  オプション
 
Default value: ", [カンマ]"

複数の値を持つ属性の、属性値の区切り文字です。query、add、modify アクションにより、また、cfldap により、複数の値を持つ属性を出力するために使用されます。

たとえば、$ (ドル記号) に設定すると、attributes 属性に "objectclass = top$person" という値を指定できます。この場合、objectclass の最初の値は top に、2 番めの値は person になります。これにより、値にカンマが含まれる場合の混乱を回避します。

DELIMITER  
  オプション
 
Default value: "; [セミコロン]"

属性の名前と値のペアの区切り文字です。この属性は次の場合に使用します。

  • attributes 属性で複数の項目を指定する場合。
  • 属性にデフォルトの区切り文字 (セミコロン) が含まれる場合。例 : mgrpmsgrejecttext;lang-en

query、add、modify の各アクションにより、また、cfldap により、複数の値を持つ属性を出力するために使用されます。

たとえば、この属性に $ (ドル記号) を指定した場合は、"cn = Double Tree Inn$street = 1111 Elm; Suite 100 と指定できます。ここでは、セミコロンは番地名の一部です。