Контекст
У меня есть одностраничное приложение, которое взаимодействует с серверным REST API. Этот REST API создан специально для обслуживания SPA. Чтобы перемещаться или использовать какие-либо функции SPA за пределами домашней страницы, пользователи должны сначала войти в систему. Я использую OIDC с Okta для аутентификации пользователей. Пользователи могут иметь роль администратора или пользователя. Их роль будет использоваться для авторизации, на какие SPA-страницы им разрешено переходить и какие вызовы REST API им разрешено делать.
Вопросов
После того, как пользователь входит в систему, мое приложение получает токен идентификатора и токен доступа от Okta. У меня есть возможность включить роль пользователя в качестве настраиваемого утверждения либо в токен идентификатора, либо в токен доступа. В какой токен следует включать эту информацию? Оба?
Пользовательский интерфейс должен принимать некоторые решения об авторизации в зависимости от роли пользователя. Например, какие элементы HTML отображать или скрывать и по каким маршрутам SPA можно перемещаться. Следует ли принимать эти решения, проверяя токен идентификатора или токен доступа? Другой?
При вызове моего серверного API через SPA должен ли я пересылать токен идентификатора и токен доступа, полученные моим SPA? Только токен доступа? Или мне следует настроить другой сервер авторизации для моего внутреннего REST API и попросить мой SPA обратиться за другим токеном доступа?