Безопасность ApiKey в разных версиях развертывания конечных точек

#flask #swagger #google-cloud-endpoints #swagger-ui

#flask #развязность #google-облако-конечные точки #swagger-пользовательский интерфейс

Вопрос:

Некоторый контекст: У нас есть приложение flask, запущенное в kubernetes (GKE). Мы используем конечные точки Google Cloud для управления доступом и управлением ключами к нашему api. Мы создаем документацию с помощью flask-restplus и используем это для настройки наших конечных точек. Важным обязательным условием является то, что наша документация пользовательского интерфейса swagger должна быть доступна без ApiKey, поэтому мы устанавливаем «x-google-allow»: «all» в нашей конфигурации конечных точек. Все вышеописанное работает.

Проблема: Мы хотим внедрить серьезные изменения в нашем API, поэтому мы выбрали новую версию, описанную здесь. Это означает новый базовый путь. Итак, мы создаем 2 файла конфигурации конечных точек, один с базовым путем / api / 1 / и один с / api / 2, оба имеют один и тот же хост и флаг «x-google-allow»: «all».

Развертывание с использованием двух конфигураций работает, но доступен только пользовательский интерфейс swagger версии 2 (/api / 2 /doc /). Если мы хотим получить доступ к документации более старой версии (/api /1 /doc/), нам нужен ключ API (и тогда он возвращает пустой экран). Если мы разместим одно и то же приложение flask локально, мы сможем получить доступ к обеим страницам документации. Нам необходимо иметь доступную документацию по обеим версиям (у нас есть другие стороны, использующие наши API)

Я попытался изменить «x-google-allow»: «all», а затем добавить путь к странице / doc с «security»:[] в конфигурации конечных точек, но проблема не устранена.

Комментарии:

1. Привет, Джордж, служба поддержки Google Cloud здесь. Я видел, что вы также отправили запрос в службу поддержки, и мы работаем над этим. Когда вы получите ответ на свой вопрос, пожалуйста, не стесняйтесь поделиться им на этой странице.