Python-ldap:可以在不明确编写密码的情况下绑定



编写Python脚本,我想知道是否可以绑定到LDAP服务器而无需授权的密码,例如在此示例中:

import ldap
l = ldap.open("myserver")
username = "cn=Manager, o=mydomain.com"
## I don't want to write the password here in plaintext
password  = "secret"
l.simple_bind(username, password)

示例函数,用于解密称为'.credentials'的文件。当然,这将有一个Seporate脚本,可以在尝试使用它之前先将凭据加密到文件。

因此,您将调用此功能:

username, password = decrypt()
l.simple_bind(username, password)
from Crypto.Cipher import AES
import base64
from local_logging import info
def decrypt(dir_path):
    #Read '.credentials' file and return unencrypted credentials (user_decoded, pass_decoded)
    lines = [line.rstrip('n') for line in open(dir_path + '/.credentials')]
    user_encoded = lines[0]
    user_secret = lines[1]
    pass_encoded = lines[2]
    pass_secret = lines[3]
    # the character used for padding--with a block cipher such as AES, the value
    # you encrypt must be a multiple of BLOCK_SIZE in length.  This character is
    # used to ensure that your value is always a multiple of BLOCK_SIZE
    PADDING = '{'
    DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
    # create a cipher object using the random secret
    user_cipher = AES.new(user_secret)
    pass_cipher = AES.new(pass_secret)
    # decode the encoded string
    user_decoded = DecodeAES(user_cipher, user_encoded)
    pass_decoded = DecodeAES(pass_cipher, pass_encoded)
    return (user_decoded, pass_decoded)

相关内容

  • 没有找到相关文章

最新更新