У меня есть. NET Core 2 (скоро будет обновлен до 3) API с JWT. Этот API обслуживает несколько определенных c компаний, входящих в родительскую компанию. Материнская компания генерирует JWT, и они задают спецификацию аудитории c запрашивающей компании (API для нескольких компаний - это новая вещь). Поэтому мой API должен поддерживать несколько разных аудиторий.
В настоящее время мы динамически переключаемся в зависимости от URL-адреса запроса (идентификатор компании указан в URL-адресе). Эта настройка динамического c происходит в OnMessageReceived:
OnMessageReceived = msgRcvdContext =>
{
companyId = GetCompanyId(msgRcvdContext.Request);
options.TokenValidationParameters.ValidAudience = GetAudienceByCompanyId(companyId);
}
Меняет ли это «глобальные» параметры, а не параметры для этого конкретного запроса? Если это неправильный способ обслуживания нескольких аудиторий, как мне это сделать? Должен ли я просто поместить все действительные аудитории в свойство списка в TokenValidationPrameters
? Или есть какой-то другой способ, которым я должен это сделать?
Спасибо.