Несколько подходов к этому сценарию. Вы можете хранить информацию о пользователе в пользовательских атрибутах, которым можно присвоить значение на основе логики c, которую вы контролируете (а не пользователя). Во время выдачи id_token вы отправляете эти пользовательские атрибуты обратно в приложение как роли.
В качестве альтернативы вы можете выбрать отдельную базу данных, в которой хранится сопоставление пользователя с ролями. Во время входа в систему вы можете выполнить вызов REST-API в базе данных, чтобы прочитать роли, назначенные пользователю, и отправить их обратно в id_token.
Я бы склонялся ко второму подходу, так как он обеспечивает лучшее разделение интересов и свободу в разработке системы на основе ролей, которая работает лучше всего для вас.