如何为Mantis-LDAP和数据库用户设置双重身份验证?

时间:2019-07-02 11:59:52

标签: authentication ldap mantis

我们有一个MantisBT实例,我们设法设置了LDAP身份验证,但是我们也需要在this question中为Ruby提供基于Mantis用户的身份验证(某些用户与LDAP分开)。 / p>

不幸的是,您似乎可以轻松地将Mantis设置为通过LDAP或通过其用户进行身份验证,但是同时启用两种身份验证协议都是有问题的。你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在实际上执行身份验证的功能auth_does_password_match()中,查看source code

function auth_does_password_match( $p_user_id, $p_test_password ) {
    $t_configured_login_method = config_get_global( 'login_method' );

    if ( LDAP == $t_configured_login_method ) {
        return ldap_authenticate( $p_user_id, $p_test_password );
    }

    # code continues with a try for each of the other authentication methods
    # ...
}

第一个条件测试登录方法$t_configured_login_method,如果它是“ LDAP”,则尝试进行相应的身份验证。好的,这里没有什么疯狂的,但是语句return ldap_authenticate(...);不允许其他身份验证方法。

希望,修补补丁不是什么大问题,因此,如果LDAP身份验证失败,它可以回退到其他身份验证方法。

基本上,如果LDAP身份验证成功,则要求返回ldap_authenticate()的返回值仅 ,否则就不能返回,以便代码可以继续尝试其他auth方法。第一个条件如下所示:

    if (LDAP == $t_configured_login_method && ldap_authenticate($p_user_id, $p_test_password)) {
        return TRUE;
    }

为使事情正常进行,您可以为t_configured_login_method创建自己的常量,以便可以添加自己的逻辑并且不会干扰其他身份验证方法。