Как настроить двойную аутентификацию для пользователей Mantis - LDAP и базы данных? - PullRequest
2 голосов
/ 02 июля 2019

У нас есть экземпляр MantisBT, и нам удалось настроить аутентификацию LDAP, но нам нужно также включить аутентификацию на основе пользователей Mantis (отдельно от LDAP для некоторых пользователей), очень похожих на этот вопрос дляRuby.

К сожалению, кажется, что вы легко можете настроить Mantis для аутентификации через LDAP или через его пользователей, но включение обоих протоколов аутентификации проблематично.У вас есть предложения?

1 Ответ

1 голос
/ 11 июля 2019

Глядя на исходный код , в функции auth_does_password_match(), которая фактически выполняет аутентификацию:

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
    # ...
}

1-е условие проверяет метод входа в систему $t_configured_login_method и, если это «LDAP», пытается выполнить соответствующую аутентификацию. Ладно, ничего сумасшедшего, но утверждение return ldap_authenticate(...); не позволяет использовать другие методы аутентификации.

Надеемся, что исправление не представляет особой проблемы, так что, если аутентификация LDAP не удалась, он может вернуться к другим методам аутентификации.

По сути, требуется, чтобы возвращаемое значение ldap_authenticate() было возвращено только , если аутентификация LDAP прошла успешно, но не иначе, чтобы код мог продолжать попытки с другими методами аутентификации. 1-е условие будет выглядеть так:

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

Чтобы все было правильно, вы можете создать свою собственную константу для t_configured_login_method, чтобы вы могли добавлять свою собственную логику и не мешать другим методам аутентификации.

...