Пример #1
0
    def _bind(self):
        """Bind to server
        """
        if self._resource.login is None:
            pass # no authentication is needed
        elif self._resource.auth_method == resource.AUTH_SIMPLE:
            log.debug(
                "Performing SIMPLE BIND operation to '%s' as '%s'" % (
                    self._resource.server, self._resource.login))
            self._ldapconn.simple_bind_s(
                self._resource.login,
                self._resource.password
            )
        elif self._resource.auth_method == resource.AUTH_SASL:
            if ldap.SASL_AVAIL:
                if self._resource.sasl_method == resource.CRAM_MD5:
                    auth_tokens = sasl.cram_md5(
                        self._resource.login,
                        self._resource.password
                    )
                elif self._resource.sasl_method == resource.DIGEST_MD5:
                    auth_tokens = sasl.digest_md5(
                        self._resource.login,
                        self._resource.password
                    )
                log.debug("Performing SIMPLE BIND operation to '%s'" %
                    self._resource.server)
                self._ldapconn.sasl_interactive_bind_s("", auth_tokens)
            else:
                raise exceptions.ResourceError(
                    'python-ldap is built without sasl support')

        self._connected = True
Пример #2
0
 def get_conn(self):
     conn = self.conn
     if conn is None:
         import ldap; from ldap import sasl
         conn = ldap.initialize(self.ldapuri)
         conn.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3)
         if self.simpleauth:
             conn.simple_bind_s(self.binddn, self.credentials)
         else:
             saslmech = self.saslmech.lower()
             if saslmech == 'cram-md5':
                 auth = sasl.cram_md5(self.authcid, self.credentials, self.authzid)
             elif saslmech == 'digest-md5':
                 auth = sasl.digest_md5(self.authcid, self.credentials, self.authzid)
             elif saslmech == 'gssapi':
                 auth = sasl.gssapi(self.authzid)
             elif saslmech == 'external':
                 auth = sasl.external(self.authzid)
             conn.sasl_interactive_bind_s('', auth)
         self.conn = conn
     return conn
Пример #3
0
 def get_conn(self):
     conn = self.conn
     if conn is None:
         import ldap
         from ldap import sasl
         conn = ldap.initialize(self.ldapuri)
         conn.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3)
         if self.simpleauth:
             conn.simple_bind_s(self.binddn, self.credentials)
         else:
             saslmech = self.saslmech.lower()
             if saslmech == 'cram-md5':
                 auth = sasl.cram_md5(self.authcid, self.credentials,
                                      self.authzid)
             elif saslmech == 'digest-md5':
                 auth = sasl.digest_md5(self.authcid, self.credentials,
                                        self.authzid)
             elif saslmech == 'gssapi':
                 auth = sasl.gssapi(self.authzid)
             elif saslmech == 'external':
                 auth = sasl.external(self.authzid)
             conn.sasl_interactive_bind_s('', auth)
         self.conn = conn
     return conn