Я настроил IdentityServerV4 с клиентом, используя код авторизации + PKCE, и установил тип маркера доступа для ссылки.
new Client
{
ClientId = "app",
ClientName = "My Application",
AllowedGrantTypes = GrantTypes.Code,
RequireClientSecret = false,
RedirectUris = { "http://site.example.com:3000/callback" },
AllowedCorsOrigins = { "http://site.example.com:3000" },
AllowedScopes = { "openid", "profile", "email" },
AccessTokenType = AccessTokenType.Reference,
RequireConsent = false,
RequirePkce = true
}
Теперь я хочу настроить шлюз обратного прокси между клиентским приложением исервисы, которые будут обменивать эталонный токен на обычный подписанный JWT перед пересылкой запроса. Еще до настройки шлюза я пытаюсь выполнить обмен вручную, вызывая конечную точку самоанализа, используя эталонный токен, полученный при входе в систему.
Я добавил API, который я назвал "шлюзом", к серверу идентификации как описано здесь , дал ему секрет и успешно вызвал эту конечную точку, используя IntrospectionClient с ID и секретом API, но я получаю ответ active: false, и журналы сервера идентификации показывают ошибку, что токенотсутствует ожидаемый объем "шлюз". Информация о токене, отображаемая в журнале, показывает только область действия openid.
new ApiResource("gateway"){
ApiSecrets = { new Secret("test".Sha256()) }
}
Это приводит к двум сообщениям журнала от IdentityServer:
fail: IdentityServer4.ResponseHandling.IntrospectionResponseGenerator[0]
Expected scope gateway is missing in token
info: IdentityServer4.Endpoints.IntrospectionEndpoint[0]
Success token introspection. Token active: True, for API name: gateway
Поэтому я не могу сказать, чтоотсутствует какая-то связь между API и выданным токеном, но я пробовал каждую перестановку областей и разрешал области между определениями Client и ApiResource, о которых я мог думать, но я не могу получить ожидаемый результат. Я прочитал и перечитал документацию несколько раз, и я не могу понять отношения между API и клиентами в этом контексте. Какая конфигурация требуется для поддержки этого типа установки?