Аутентификация довольно проста. Авторизация через ACL или любую другую может быть сложной.
Аутентификация обычно просто сопоставляет имя пользователя и пароль с сохраненными учетными данными. Просто используйте SSL и хеш пароли, используя соль.
Авторизация может быть чудовищной, и решение зависит от ваших требований. Вы можете попробовать PhpGALC и компонент Zend Framework ACL. Оба варианта имеют роли, ресурсы и дополнительные привилегии, хотя все они названы по-разному. Zend ACL проще и более универсален (правила могут быть определены просто в вашем коде, и для этого не требуется база данных). Если ваши роли, ресурсы и привилегии не являются статичными, то с помощью Zend ACL вам придется писать код для заполнения ACL из вашего хранилища данных. Большим преимуществом phpGALC является то, что он имеет веб-интерфейс. Я нашел GUI неуклюжим, но если вы действительно не понимаете свой ACL, вносить изменения непосредственно в базу данных может быть опасно, учитывая сложности ACL, такие как роль и наследование ресурсов. Помните, что Zend ACL может использоваться сам по себе без каких-либо других зависимостей Zend Framework, кроме Zend Exception.