我运行Ubuntu 12.04和OpenLDAP 2.4.28-1.1ubuntu4.5。 我有用户在LDAP中填充userPassword属性是{SHA1}散列。 用户可以通过SSHlogin并通过Web应用程序进行身份validation。
现在,我想添加Radiusauthentication(从一个OTP服务器)到LDAP服务器作为一个额外的机制。 这样,用户可以通过Radius的“一次性密码”进行身份validation,但所有的POSIX属性都会从LDAP中被拉下来。 这可能吗? 什么机制叫?
OpenLDAP 2.4支持SASL密码passtroughauthentication( http://www.openldap.org/doc/admin24/security.html )。
该function允许将身份validation过程委托给saslauthd守护进程,并保留openldap中的其他属性。
此function需要用string“{SASL} username @ realm”replace实际的userPassword值,因此不能对同一用户使用SHA1密码和SASLauthentication。 此外,SASL可以使用PAM作为后端身份validation方法。
PAM有一个允许使用自由半径authentication的模块。 完整的authentication链将是:
OpenLDAP服务器 – > saslauthd – >半径pam模块 – > Freeradius服务器
还有两种方法可以解决这个问题:
如果您的Web应用程序支持PAMauthentication,请创build一个同时使用freeradius和ldapauthentication的pam模块
如果您的Web应用程序支持Radius身份validation,请将OpenLDAPconfiguration为freeradius作为后端
SSH支持PAM和Radiusauthentication(最后一个使用pam模块)。