Путаница с аутентифицированным пользователем API

У меня возник вопрос, касающийся безопасности использования API, так как, вероятно, я упускаю какую-то очевидную концепцию из-за недостатка опыта.

У меня реализована headless-версия Discourse для интеграции с моим фронтендом, и я успешно настроил SSO для аутентификации пользователей.

Изначально я понимал это так: я использую SSO для аутентификации как «activeUser», чтобы получать данные, специфичные для этого пользователя, через API. Теперь вижу, что это не совсем верно.

Я понял, что возвращаемые данные зависят от заголовка ‘api-username’. Но поскольку я использую администраторский API-ключ, я полагаю, что это означает возможность получения данных любого пользователя, просто указав правильное имя пользователя в параметре «api-username».

Таким образом, мой вопрос сводится к следующему: похоже, что в API отсутствует концепция «activeUser», и мне нужно вручную подстраивать активного пользователя, получая имя пользователя по external_id, а затем использовать его в качестве api-username на протяжении всей активной сессии. Правильно ли я понимаю?

Если моё понимание верно, не слишком ли легко хакеру просто изменить api-username в заголовке, чтобы получить доступ к чатам и обсуждениям любого пользователя?

Буду признателен за любую дополнительную информацию, которая поможет мне разобраться. Спасибо!

Некоторые связанные статьи, которые я прочитал:

Ключ администратора API — это ключ от всего королевства.

Никогда не размещайте его в приложении для фронтенда. Если вы это сделали, рекомендуем немедленно отозвать ключ.

Никогда не используйте этот API из фронтенда, потому что в таком случае это действительно представляет риск (на самом деле риск гораздо выше, так как хакер может сделать что угодно).

Это нужно делать с бэкенда.

Если такой вариант невозможен, используйте ключи API пользователя.

Как реализация без серверной части, я буду запускать это со своей фронтенд-стороны. Поэтому в данном случае, похоже, мне нужно потратить время на изучение обсуждения по этой теме:

Аналогично этим обсуждениям, я был бы заинтересован в автоматической генерации API-ключа пользователя с помощью моего доступа к административному API. Однако в моём сценарии я не хочу, чтобы пользователь перенаправлялся на новую страницу для «одобрения» моего приложения. Я либо хочу принудительно одобрить это с помощью своего надёжного административного API-ключа, либо существует ли настройка, которую я могу отключить, чтобы для генерируемого мной нового API-ключа пользователя не требовалась дополнительная аутентификация?