Author: buildbot
Date: Mon Mar  3 20:10:38 2014
New Revision: 899900

Log:
Staging update by buildbot for vcl

Modified:
    websites/staging/vcl/trunk/content/   (props changed)
    websites/staging/vcl/trunk/content/docs/ldapauth.html

Propchange: websites/staging/vcl/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar  3 20:10:38 2014
@@ -1 +1 @@
-1573719
+1573726

Modified: websites/staging/vcl/trunk/content/docs/ldapauth.html
==============================================================================
--- websites/staging/vcl/trunk/content/docs/ldapauth.html (original)
+++ websites/staging/vcl/trunk/content/docs/ldapauth.html Mon Mar  3 20:10:38 
2014
@@ -81,6 +81,7 @@
 <li><a href="#adding-ldap-authentication-to-the-web-code">Adding LDAP 
Authentication to the Web Code</a></li>
 <li><a href="#mirroring-ldap-user-groups">Mirroring LDAP User Groups</a><ul>
 <li><a href="#some-things-to-be-aware-of-with-mirrored-groups">Some things to 
be aware of with mirrored groups</a></li>
+<li><a href="#debugging-ldap-configuration">Debugging LDAP 
Configuration</a></li>
 </ul>
 </li>
 </ul>
@@ -235,9 +236,9 @@ expressions in the <strong>for</strong> 
 example names of user groups. You'll need to modify these to match the OU 
structure
 of your LDAP system.</p>
 <p>These are the three example rules in VCL 2.3:</p>
-<div class="codehilite"><pre><span class="o">^</span><span 
class="n">CN</span><span class="o">=</span><span class="p">(</span><span 
class="o">.+</span><span class="p">),</span><span class="n">OU</span><span 
class="o">=</span><span class="n">CourseRolls</span><span 
class="p">,</span><span class="n">DC</span><span class="o">=</span><span 
class="n">example1</span><span class="p">,</span><span class="n">DC</span><span 
class="o">=</span><span class="n">com</span>
-<span class="o">^</span><span class="n">CN</span><span class="o">=</span><span 
class="p">(</span><span class="n">Students_Enrolled</span><span 
class="p">),</span><span class="n">OU</span><span class="o">=</span><span 
class="n">Students</span><span class="p">,</span><span class="n">DC</span><span 
class="o">=</span><span class="n">example1</span><span class="p">,</span><span 
class="n">DC</span><span class="o">=</span><span class="n">com</span><span 
class="nv">$</span>
-<span class="err">^</span><span class="nv">CN</span><span 
class="o">=</span><span class="p">(</span><span class="n">Staff</span><span 
class="p">),</span><span class="n">OU</span><span class="o">=</span><span 
class="n">IT</span><span class="p">,</span><span class="n">DC</span><span 
class="o">=</span><span class="n">example1</span><span class="p">,</span><span 
class="n">DC</span><span class="o">=</span><span class="n">com</span><span 
class="nv">$</span>
+<div class="codehilite"><pre>^<span class="n">CN</span><span 
class="p">=(.</span><span class="o">+</span><span class="p">),</span><span 
class="n">OU</span><span class="p">=</span><span 
class="n">CourseRolls</span><span class="p">,</span><span 
class="n">DC</span><span class="p">=</span><span class="n">example1</span><span 
class="p">,</span><span class="n">DC</span><span class="p">=</span><span 
class="n">com</span>
+^<span class="n">CN</span><span class="p">=(</span><span 
class="n">Students_Enrolled</span><span class="p">),</span><span 
class="n">OU</span><span class="p">=</span><span class="n">Students</span><span 
class="p">,</span><span class="n">DC</span><span class="p">=</span><span 
class="n">example1</span><span class="p">,</span><span class="n">DC</span><span 
class="p">=</span><span class="n">com</span>$
+^<span class="n">CN</span><span class="p">=(</span><span 
class="n">Staff</span><span class="p">),</span><span class="n">OU</span><span 
class="p">=</span><span class="n">IT</span><span class="p">,</span><span 
class="n">DC</span><span class="p">=</span><span class="n">example1</span><span 
class="p">,</span><span class="n">DC</span><span class="p">=</span><span 
class="n">com</span>$
 </pre></div>
 
 
@@ -250,49 +251,49 @@ Toward the end of the function is a <str
 Change the <strong>EXAMPLE1</strong> entry to the affiliation you created for 
your site. Then, 
 change the name of the function called for that affiliation to your new name 
for the
 <strong>updateEXAMPLE1Groups</strong> function. Here is an example of that 
part of the function:</p>
-<div class="codehilite"><pre><span class="n">switch</span><span 
class="p">(</span><span class="n">getAffiliationName</span><span 
class="p">(</span><span class="nv">$affilid</span><span class="p">))</span> 
<span class="p">{</span>
+<div class="codehilite"><pre><span class="k">switch</span><span 
class="p">(</span><span class="n">getAffiliationName</span><span 
class="p">(</span>$<span class="n">affilid</span><span class="p">))</span> 
<span class="p">{</span>
    <span class="k">case</span> <span class="s">&#39;NCSU&#39;</span><span 
class="p">:</span>
-      <span class="n">updateNCSUGroups</span><span class="p">(</span><span 
class="nv">$user</span><span class="p">);</span>
-      <span class="n">break</span><span class="p">;</span>
-   <span class="n">default:</span>
-      <span class="sr">//</span><span class="n">TODO</span> <span 
class="n">possibly</span> <span class="n">add</span> <span class="n">to</span> 
<span class="n">a</span> <span class="n">default</span> <span 
class="n">group</span>
+      <span class="n">updateNCSUGroups</span><span class="p">(</span>$<span 
class="n">user</span><span class="p">);</span>
+      <span class="k">break</span><span class="p">;</span>
+   <span class="n">default</span><span class="p">:</span>
+      <span class="o">//</span><span class="n">TODO</span> <span 
class="n">possibly</span> <span class="n">add</span> <span class="n">to</span> 
<span class="n">a</span> <span class="n">default</span> <span 
class="n">group</span>
 <span class="p">}</span>
 </pre></div>
 
 
 <p>Here is an example function using NCSU instead of EXAMPLE1, and using an 
Active 
 Directory LDAP system:</p>
-<div class="codehilite"><pre><span class="n">function</span> <span 
class="n">updateNCSUGroups</span><span class="p">(</span><span 
class="nv">$user</span><span class="p">)</span> <span class="p">{</span>
-   <span class="n">global</span> <span class="nv">$authMechs</span><span 
class="p">;</span>
-   <span class="nv">$auth</span> <span class="o">=</span> <span 
class="nv">$authMechs</span><span class="p">[</span><span class="s">&#39;NCSU 
LDAP&#39;</span><span class="p">];</span>
-   <span class="nv">$ds</span> <span class="o">=</span> <span 
class="n">ldap_connect</span><span class="p">(</span><span 
class="s">&quot;ldaps://{$auth[&#39;server&#39;]}/&quot;</span><span 
class="p">);</span>
-   <span class="k">if</span><span class="p">(</span><span class="o">!</span> 
<span class="nv">$ds</span><span class="p">)</span>
-      <span class="k">return</span> <span class="mi">0</span><span 
class="p">;</span>
-   <span class="n">ldap_set_option</span><span class="p">(</span><span 
class="nv">$ds</span><span class="p">,</span> <span 
class="n">LDAP_OPT_PROTOCOL_VERSION</span><span class="p">,</span> <span 
class="mi">3</span><span class="p">);</span>
-   <span class="n">ldap_set_option</span><span class="p">(</span><span 
class="nv">$ds</span><span class="p">,</span> <span 
class="n">LDAP_OPT_REFERRALS</span><span class="p">,</span> <span 
class="mi">0</span><span class="p">);</span>
-
-   <span class="nv">$res</span> <span class="o">=</span> <span 
class="n">ldap_bind</span><span class="p">(</span><span 
class="nv">$ds</span><span class="p">,</span> <span 
class="nv">$auth</span><span class="p">[</span><span 
class="s">&#39;masterlogin&#39;</span><span class="p">],</span>
-                     <span class="nv">$auth</span><span 
class="p">[</span><span class="s">&#39;masterpwd&#39;</span><span 
class="p">]);</span>
-   <span class="k">if</span><span class="p">(</span><span class="o">!</span> 
<span class="nv">$res</span><span class="p">)</span>
-      <span class="k">return</span> <span class="mi">0</span><span 
class="p">;</span>
-
-   <span class="nv">$search</span> <span class="o">=</span> <span 
class="n">ldap_search</span><span class="p">(</span><span 
class="nv">$ds</span><span class="p">,</span>
-                         <span class="nv">$auth</span><span 
class="p">[</span><span class="s">&#39;binddn&#39;</span><span 
class="p">],</span>
-                         <span 
class="s">&quot;{$auth[&#39;unityid&#39;]}={$user[&#39;unityid&#39;]}&quot;</span><span
 class="p">,</span>
-                         <span class="n">array</span><span 
class="p">(</span><span class="s">&#39;memberof&#39;</span><span 
class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span 
class="mi">10</span><span class="p">,</span> <span class="mi">15</span><span 
class="p">);</span>
-   <span class="k">if</span><span class="p">(</span><span class="o">!</span> 
<span class="nv">$search</span><span class="p">)</span>
-      <span class="k">return</span> <span class="mi">0</span><span 
class="p">;</span>
-
-   <span class="nv">$data</span> <span class="o">=</span> <span 
class="n">ldap_get_entries</span><span class="p">(</span><span 
class="nv">$ds</span><span class="p">,</span> <span 
class="nv">$search</span><span class="p">);</span>
-   <span class="nv">$newusergroups</span> <span class="o">=</span> <span 
class="n">array</span><span class="p">();</span>
-   <span class="k">if</span><span class="p">(</span><span class="o">!</span> 
<span class="n">array_key_exists</span><span class="p">(</span><span 
class="s">&#39;memberof&#39;</span><span class="p">,</span> <span 
class="nv">$data</span><span class="p">[</span><span class="mi">0</span><span 
class="p">]))</span>
+<div class="codehilite"><pre><span class="k">function</span><span class="w"> 
</span><span class="nf">updateNCSUGroups</span><span 
class="p">(</span>$user<span class="p">)</span><span class="w"> </span><span 
class="p">{</span>
+   <span class="k">global</span> $<span class="n">authMechs</span><span 
class="p">;</span>
+   $<span class="n">auth</span> <span class="p">=</span> $<span 
class="n">authMechs</span><span class="p">[</span><span class="s">&#39;NCSU 
LDAP&#39;</span><span class="p">];</span>
+   $<span class="n">ds</span> <span class="p">=</span> <span 
class="n">ldap_connect</span><span class="p">(</span>&quot;<span 
class="n">ldaps</span><span class="p">:</span><span class="o">//</span><span 
class="p">{</span>$<span class="n">auth</span><span class="p">[</span><span 
class="s">&#39;server&#39;</span><span class="p">]}</span><span 
class="o">/</span>&quot;<span class="p">);</span>
+   <span class="k">if</span><span class="p">(</span>! $<span 
class="n">ds</span><span class="p">)</span>
+      <span class="k">return</span> 0<span class="p">;</span>
+   <span class="n">ldap_set_option</span><span class="p">(</span>$<span 
class="n">ds</span><span class="p">,</span> <span 
class="n">LDAP_OPT_PROTOCOL_VERSION</span><span class="p">,</span> 3<span 
class="p">);</span>
+   <span class="n">ldap_set_option</span><span class="p">(</span>$<span 
class="n">ds</span><span class="p">,</span> <span 
class="n">LDAP_OPT_REFERRALS</span><span class="p">,</span> 0<span 
class="p">);</span>
+
+   $<span class="n">res</span> <span class="p">=</span> <span 
class="n">ldap_bind</span><span class="p">(</span>$<span 
class="n">ds</span><span class="p">,</span> $<span class="n">auth</span><span 
class="p">[</span><span class="s">&#39;masterlogin&#39;</span><span 
class="p">],</span>
+                     $<span class="n">auth</span><span class="p">[</span><span 
class="s">&#39;masterpwd&#39;</span><span class="p">]);</span>
+   <span class="k">if</span><span class="p">(</span>! $<span 
class="n">res</span><span class="p">)</span>
+      <span class="k">return</span> 0<span class="p">;</span>
+
+   $<span class="n">search</span> <span class="p">=</span> <span 
class="n">ldap_search</span><span class="p">(</span>$<span 
class="n">ds</span><span class="p">,</span>
+                         $<span class="n">auth</span><span 
class="p">[</span><span class="s">&#39;binddn&#39;</span><span 
class="p">],</span>
+                         &quot;<span class="p">{</span>$<span 
class="n">auth</span><span class="p">[</span><span 
class="s">&#39;unityid&#39;</span><span class="p">]}={</span>$<span 
class="n">user</span><span class="p">[</span><span 
class="s">&#39;unityid&#39;</span><span class="p">]}</span>&quot;<span 
class="p">,</span>
+                         <span class="n">array</span><span 
class="p">(</span><span class="s">&#39;memberof&#39;</span><span 
class="p">),</span> 0<span class="p">,</span> 10<span class="p">,</span> 
15<span class="p">);</span>
+   <span class="k">if</span><span class="p">(</span>! $<span 
class="n">search</span><span class="p">)</span>
+      <span class="k">return</span> 0<span class="p">;</span>
+
+   $<span class="n">data</span> <span class="p">=</span> <span 
class="n">ldap_get_entries</span><span class="p">(</span>$<span 
class="n">ds</span><span class="p">,</span> $<span class="n">search</span><span 
class="p">);</span>
+   $<span class="n">newusergroups</span> <span class="p">=</span> <span 
class="n">array</span><span class="p">();</span>
+   <span class="k">if</span><span class="p">(</span>! <span 
class="n">array_key_exists</span><span class="p">(</span><span 
class="s">&#39;memberof&#39;</span><span class="p">,</span> $<span 
class="n">data</span><span class="p">[</span>0<span class="p">]))</span>
       <span class="k">return</span><span class="p">;</span>
-   <span class="k">for</span><span class="p">(</span><span 
class="nv">$i</span> <span class="o">=</span> <span class="mi">0</span><span 
class="p">;</span> <span class="nv">$i</span> <span class="o">&lt;</span> <span 
class="nv">$data</span><span class="p">[</span><span class="mi">0</span><span 
class="p">][</span><span class="s">&#39;memberof&#39;</span><span 
class="p">][</span><span class="s">&#39;count&#39;</span><span 
class="p">];</span> <span class="nv">$i</span><span class="o">++</span><span 
class="p">)</span> <span class="p">{</span>
-      <span class="k">if</span><span class="p">(</span><span 
class="n">preg_match</span><span class="p">(</span><span 
class="s">&#39;/^CN=(.+),OU=VCLGroups,DC=ad,DC=ncsu,DC=edu/&#39;</span><span 
class="p">,</span> <span class="nv">$data</span><span class="p">[</span><span 
class="mi">0</span><span class="p">][</span><span 
class="s">&#39;memberof&#39;</span><span class="p">][</span><span 
class="nv">$i</span><span class="p">],</span> <span 
class="nv">$match</span><span class="p">))</span>
-         <span class="n">array_push</span><span class="p">(</span><span 
class="nv">$newusergroups</span><span class="p">,</span> <span 
class="n">getUserGroupID</span><span class="p">(</span><span 
class="nv">$match</span><span class="p">[</span><span class="mi">1</span><span 
class="p">],</span> <span class="nv">$user</span><span class="p">[</span><span 
class="s">&#39;affiliationid&#39;</span><span class="p">]));</span>
+   <span class="k">for</span><span class="p">(</span>$<span 
class="nb">i</span> <span class="p">=</span> 0<span class="p">;</span> $<span 
class="nb">i</span> <span class="o">&lt;</span> $<span 
class="n">data</span><span class="p">[</span>0<span class="p">][</span><span 
class="s">&#39;memberof&#39;</span><span class="p">][</span><span 
class="s">&#39;count&#39;</span><span class="p">];</span> $<span 
class="nb">i</span><span class="o">++</span><span class="p">)</span> <span 
class="p">{</span>
+      <span class="k">if</span><span class="p">(</span><span 
class="n">preg_match</span><span class="p">(</span><span 
class="s">&#39;/^CN=(.+),OU=VCLGroups,DC=ad,DC=ncsu,DC=edu/&#39;</span><span 
class="p">,</span> $<span class="n">data</span><span class="p">[</span>0<span 
class="p">][</span><span class="s">&#39;memberof&#39;</span><span 
class="p">][</span>$<span class="nb">i</span><span class="p">],</span> $<span 
class="n">match</span><span class="p">))</span>
+         <span class="n">array_push</span><span class="p">(</span>$<span 
class="n">newusergroups</span><span class="p">,</span> <span 
class="n">getUserGroupID</span><span class="p">(</span>$<span 
class="n">match</span><span class="p">[</span>1<span class="p">],</span> $<span 
class="n">user</span><span class="p">[</span><span 
class="s">&#39;affiliationid&#39;</span><span class="p">]));</span>
    <span class="p">}</span>
-   <span class="nv">$newusergroups</span> <span class="o">=</span> <span 
class="n">array_unique</span><span class="p">(</span><span 
class="nv">$newusergroups</span><span class="p">);</span>
-   <span class="n">updateGroups</span><span class="p">(</span><span 
class="nv">$newusergroups</span><span class="p">,</span> <span 
class="nv">$user</span><span class="p">[</span><span 
class="s">&quot;id&quot;</span><span class="p">]);</span>
+   $<span class="n">newusergroups</span> <span class="p">=</span> <span 
class="n">array_unique</span><span class="p">(</span>$<span 
class="n">newusergroups</span><span class="p">);</span>
+   <span class="n">updateGroups</span><span class="p">(</span>$<span 
class="n">newusergroups</span><span class="p">,</span> $<span 
class="n">user</span><span class="p">[</span>&quot;<span 
class="n">id</span>&quot;<span class="p">]);</span>
 <span class="p">}</span>
 </pre></div>
 
@@ -311,6 +312,15 @@ caches a user's LDAP information for up 
 yourself to a group on your LDAP server, you will have to wait for up to 24 
hours 
 before VCL looks up your LDAP information again. Alternatively, you can
 force a lookup on the <strong>User Lookup</strong> page.</p>
+<h3 id="debugging-ldap-configuration">Debugging LDAP Configuration</h3>
+<p>If you run in to problems getting an LDAP configuration to work,
+you can download a <a href="/docs/generic.php.txt" title="LDAP Debug 
Script">link text</a> and save it as generic.php (remove .txt
+from the name) somewhere you can access it on you web server. There
+are 5 variables at the top of the script that need to be set
+according to your site's configuration. There is a comment in the
+file explaining what each variable needs to be set to. Once you get
+the script to show you search results, you should have a good idea
+what you need to set the variables to in conf.php.</p>
   </div>
   
   <div id="footer">


Reply via email to