Использовать компонент аутентификации . Вы можете настроить его только для административных маршрутов примерно так:
// AppController::beforeFilter
function beforeFilter() {
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
$this->Auth->deny('*');
...
}
}
Проверка только в действиях index
бессмысленна, это просто мрак, а не безопасность. AuthComponent будет проверять разрешения для каждой загрузки страницы.