Дай провайдерам и партнёрам логин, который показывает только их срез.
Вместо рассылки токенов и статистики ты выдаёшь каждому трафик-провайдеру (и партнёру) собственный логин. Портал — строго self-scoped поверхность: он резолвит вызывающего по его аккаунту, никогда по id в URL, так что подменять нечего.
Порталу не нужны гранты на модули — каждый ответ self-scoped по построению. Пользователь без привязанного провайдера просто ничего там не видит, так что внутренние сотрудники и партнёрские аккаунты не затронуты. Назначь роль traffic_provider или partner — и подсветится нужный портал.