使用RADIUS服务器的LDAPauthentication

我有一个自定义身份validation方法的RADIUS服务器。 我有一个Django CMS的密码在PBKDF2_SHA256散列的MySQL数据库,所以我不得不写一个自定义的身份validation脚本。 我的RADIUS身份validation部分如下所示:

authorize { update control { Auth-Type := `/usr/bin/php -f /usr/djangologin/cpauth.php %{User-Name} %{User-Password}` } } 

脚本使用python passlib检查密码,返回true或false,以便RADIUS返回Access-Accept或Accept-Reject。

现在我必须build立一个LDAP服务器,因为我们的一个新软件(Ulteo)不支持RADIUSauthentication

我以前从来没有使用过LDAP。 在我尝试达到不可能之前,这是我的主要问题:

我没有发现,密码是如何存储的。 他们如何encryption? 我知道他们存储在/ etc / shadow中。 它们是以MD5还是SHA256 / 512encryption?
2.是否可以使用RADIUS作为LDAP服务器的authentication方法? 例如用户想要对LDAP服务器进行authentication。 LDAP服务器查找用户名并通过RADIUS传递。 RADIUS成功时返回Access-Accept,LDAP服务器确认login成功。
3.如果2.不可能:有没有办法像我为RADIUS创build自定义身份validation方法? 有没有更好的方法来实现我的目标?

谢谢!

在大多数LDAP服务器中,密码存储在服务器托pipe的目录中。 我认为将密码存储在LDAP中是最容易的,并且authenticationRADIUS和其他所有对LDAP的authentication。 但是,例如OpenLDAP支持SASL,所以您可以通过Kerberos来validationLDAP。