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

Вам нужно добавить домен (и путь) в настройку сайта «Разрешенные перенаправления аутентификации API пользователя».

Если вы вручную отправляете HTTP-запросы, то discourse://auth_redirect должен работать.