Может ли пользователь без прав администратора сгенерировать свой собственный API-ключ?

Для программ CLI, если это необходимо, вы можете запустить локальный веб-сервер и использовать URL вида http://localhost:XXXXX/callback. Приложение делает что-то подобное.