Как запустить автоматическое тестирование при использовании OAuth2 и Azure AD - PullRequest
0 голосов
/ 05 марта 2020

Наш сценарий состоит в том, что у нас есть API, который в настоящее время защищен только ключом подписки в APIM.

Мы планируем изменить это, чтобы также защитить его с помощью OAuth 2, следуя этому руководству от Microsoft, затем мы будем использовать политики проверки JWT в APIM, чтобы гарантировать, что пользователь, запрашивающий доступ, является участником из соответствующих групп для доступа к данным конечным точкам и т. д. c.

Однако в рамках нашего процесса выпуска нам нужно запустить несколько автоматических тестов, которые вызывают API и проверяют, возвращаются ли определенные данные.

Поскольку эти тесты выполняются как часть конвейера автоматического выпуска, мы пытаемся понять, как OAuth будет вписываться в этот процесс - поскольку пользователю необходимо ввести учетные данные для выдачи токена ...

Мы Первоначально считалось, что мы могли бы просто запросить токен вручную один раз, а затем жестко запрограммировать его в тестах, но поскольку токены действительны только в течение короткого времени, это не очень хорошее решение.

Другие вещи, которые мы рассматриваем: :

  • Создание «тестового пользователя» в AD и сохранение его учетных данных в тесте p roject, а затем при запуске тестов мы можем запросить токен, используя тип предоставления «Пароль» и передавая имя пользователя и пароль », однако это не выглядит лучшим с точки зрения безопасности, даже если пользователь будет иметь доступ только для очень ограниченного подмножества функций API это все еще не кажется хорошей практикой.
  • Запрос токена с использованием секрета клиента, однако недостатком этого является то, что JWT не содержит groups утверждают, что этот токен не пройдет проверку JWT.

Это должно быть что-то, с чем сталкивались другие? Какова лучшая практика в этом сценарии?

1 Ответ

0 голосов
/ 05 марта 2020

Как вы видите в статье, на которую вы ссылаетесь, вы будете использовать Azure Управление API, чтобы стать точкой доступа к вашему API. Таким образом, с помощью управления API вы будете иметь подписки с ключами для вашего API. Вам просто нужно создать подписку для автоматизированного тестирования и сохранить ключ в Azure Key Vault. А затем во время развертывания вы извлекаете ключ подписки из хранилища ключей и используете его для вызова конечной точки управления API, которая, следовательно, вызывает ваш API.

...