如何在bash中验证ldap?

如何在bash中验证ldap?

我正在编写一个 bash 脚本,需要 ldap 身份验证才能执行后续步骤。但是,我还没有找到一个可以对ldap进行auth并返回用户名和密码是否正确的工具。是否有现有的程序可以帮助我做到这一点?

脚本就像

read USERNAME
read -s PASSWD
LDAP_AUTH_RESULT="$(<ldapauth> <USERNAME> <PASSWD/prompt-passwd>)"
if [[ $LDAP_AUTH_RESULT == "$SUCCESS_FLAG" ]]; then
<things to do>
fi

答案1

感谢@cutrightjm 在评论中提供的提示。目前我正在使用这样的脚本

#!/bin/bash

printf "Enter LDAP Username:"
read USERNAME
DN=$(ldapsearch -x -H ldaps://ldap.example.com -s sub "uid=${USERNAME}" | grep 'dn: ' | sed 's/dn: //g')
ldapsearch -H ldaps://ldap.example.com -D "${DN}" -W > /dev/null
EXITCODE=$?
if [[ ${EXITCODE} -eq 0 ]]; then
    echo "Auth success"
else
    echo "Auth failed"
    exit ${EXITCODE}
fi

经过测试可以正常工作,但不确定是否存在任何安全问题。

相关内容