<p>
        Hi all,</p>
<p>
        I begin to research about DIGEST-MD5 mechanisms instead of using plaintext mechanisms. However, its features are very few. I following this site: http://www.openldap.org/doc/admin24/sasl.html, but the result is failed... or i don&#39;t understand anything about the DIGEST-MD5.</p>
<p>
        Here is my result:</p>
<p>
        my slapd.conf is:</p>
<p>
        #<br />
        # See slapd.conf(5) for details on configuration options.<br />
        # This file should NOT be world readable.<br />
        #<br />
        include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/etc/openldap/schema/core.schema<br />
        include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/etc/openldap/schema/cosine.schema<br />
        include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/etc/openldap/schema/nis.schema<br />
        include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/etc/openldap/schema/inetorgperson.schema<br />
        include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/etc/openldap/schema/openldap.schema<br />
        <br />
        # Define global ACLs to disable default read access.<br />
        <br />
        # Do not enable referrals until AFTER you have a working directory<br />
        # service AND an understanding of referrals.<br />
        #referral&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ldap://root.openldap.org<br />
        <br />
        loglevel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 296<br />
        <br />
        pidfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/var/run/slapd.pid<br />
        argsfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/var/run/slapd.args<br />
        <br />
        # Misc Security Settings<br />
        password-hash&nbsp;&nbsp; {SSHA}<br />
        <br />
        # Load dynamic backend modules:<br />
        &nbsp;modulepath&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/libexec/openldap<br />
        &nbsp;moduleload&nbsp;&nbsp;&nbsp;&nbsp; back_bdb.la<br />
        # moduleload&nbsp;&nbsp;&nbsp; back_hdb.la<br />
        # moduleload&nbsp;&nbsp;&nbsp; back_ldap.la<br />
        <br />
        # Sample security restrictions<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Require integrity protection (prevent hijacking)<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Require 112-bit (3DES or better) encryption for updates<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Require 63-bit encryption for simple bind<br />
        <br />
        # security ssf=1 update_ssf=112 simple_bind=64<br />
        <br />
        # Sample access control policy:<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Root DSE: allow anyone to read it<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subschema (sub)entry DSE: allow anyone to read it<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Other DSEs:<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow self write access<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow authenticated users read access<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allow anonymous users to authenticate<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directives needed to implement policy:<br />
        # access to dn.base=&quot;&quot; by * read<br />
        # access to dn.base=&quot;cn=Subschema&quot; by * read<br />
        # access to *<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by self write<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by users read<br />
        #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by anonymous auth<br />
        #<br />
        # if no access controls are present, the default policy<br />
        <br />
        # allows anyone and everyone to read anything but restricts<br />
        # updates to rootdn.&nbsp; (e.g., &quot;access to * by * read&quot;)<br />
        #<br />
        # rootdn can always read and write EVERYTHING!<br />
        <br />
        #######################################################################<br />
        # BDB database definitions<br />
        #######################################################################<br />
        <br />
        sasl-regexp<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uid=(.*),cn=abc.com,cn=digest-md5,cn=auth<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uid=$1,ou=network,dc=abc,dc=com<br />
        <br />
        database&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bdb<br />
        suffix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;dc=abc,dc=com&quot;<br />
        rootdn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;cn=rootldap,dc=abc,dc=com&quot;<br />
        # Cleartext passwords, especially for the rootdn, should<br />
        # be avoid.&nbsp; See slappasswd(8) and slapd.conf(5) for details.<br />
        <br />
        # Use of strong authentication encouraged.<br />
        rootpw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {SSHA}QBEsoednrePQ/Lu5a90Nv4hbsC+BWVkK<br />
        # The database directory MUST exist prior to running slapd AND<br />
        # should only be accessible by the slapd and slap tools.<br />
        # Mode 700 recommended.<br />
        directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/openldap/var/openldap-data<br />
        mode 0600<br />
        <br />
        # Indices to maintain<br />
        index&nbsp;&nbsp; objectClass&nbsp;&nbsp;&nbsp;&nbsp; eq<br />
        index&nbsp;&nbsp; uid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eq<br />
        index&nbsp;&nbsp; cn,gn,mail&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eq,sub<br />
        index&nbsp;&nbsp; sn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eq,sub<br />
        index&nbsp;&nbsp; ou&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eq<br />
        index&nbsp;&nbsp; default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eq,sub<br />
        <br />
        I want to store secret in LDAP directory, so i use password-hash {SSHA}.</p>
<p>
        I think if i use to ./slapadd that mean a store secret in SASLdb, but i just want it in LDAP directory, so I use:</p>
<p>
        ./ldapadd -x -D cn=rootldap,cn=abc,cn=com -f quanly.ldif -W</p>
<p>
        ./ldapadd -x -D cn=rootldap,cn=abc,cn=com -f nhanvien.ldif -W</p>
<p>
        and it successfull.</p>
<p>
        When i try to use ldapsearch:</p>
<p>
        ./ldapsearch -Y digest-md5 -U khanhnq</p>
<p>
        SASL/DIGEST-MD5 authentication started<br />
        Please enter your password:<br />
        ldap_sasl_interactive_bind_s: Invalid credentials (49)<br />
        &nbsp;&nbsp; &nbsp;additional info: SASL(-13): user not found: no secret in database<br />
        &nbsp;</p>
<p>
        It said that no secret in database while I used ./ldapadd to add it...</p>
<p>
        I... I really don&#39;t understand about digest-md5. I&#39;m so stupid...</p>
<p>
        Please help,</p>
<p>
        My nhanvien.ldif:</p>
<p>
        dn: cn=Khanh Nguyen,ou=network,dc=abc,dc=com<br />
        objectclass: inetOrgPerson<br />
        cn: Khanh Nguyen<br />
        cn: Khanh Nguyen Quoc<br />
        sn: Khanh<br />
        uid: khanhnq<br />
        userpassword: 123456<br />
        mail: khanhnq@abc.com<br />
        mail: nqk28703@yahoo.com<br />
        mail: khanhnq@saigontech.edu.vn<br />
        ou: network<br />
        <br />
        dn: cn=Tai Tran,ou=network,dc=abc,dc=com<br />
        objectclass: inetOrgPerson<br />
        cn: Tai Tran<br />
        cn: Tai Tran Tuan<br />
        sn: Tai<br />
        uid: taitt<br />
        userpassword: 123456<br />
        mail: taitt@abc.com<br />
        mail: taitt@saigontech.edu.vn<br />
        ou: network<br />
        <br />
        dn: cn=Nam Le,ou=network,dc=abc,dc=com<br />
        objectclass: inetOrgPerson<br />
        cn: Nam Le<br />
        cn: Nam Le Quoc<br />
        sn: Nam<br />
        uid: namlq<br />
        userpassword: 123456<br />
        mail: namlq@abc.com<br />
        mail: namlq@saigontech.edu.vn<br />
        ou: network<br />
        ....</p>
<p>
        Best Regards,<br />
        &nbsp;</p>
<pre>-- 
***********************************
    EVERYTHING HAS JUST BEGUN...</pre>