Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

REST Assured и Windows authentication. Как реализовать?

database
windows
api
auth
rest-assured
java
Теги: #<Tag:0x00007f7b62b87e48> #<Tag:0x00007f7b62b87ba0> #<Tag:0x00007f7b62b87a60> #<Tag:0x00007f7b62b87920> #<Tag:0x00007f7b62b877e0> #<Tag:0x00007f7b62b876a0>

(Алексей Смиян) #1

Добрый день. Есть идея написать тесты для #api . В качестве инструментов выбраны #java (так как на ней написаны UI тесты и кое-что для БД) и #rest-assured .

Доступ к приложению происходит через windows authentication, и насколько я понял в rest-assured не реализована данная схема аутентификации. В гугле нашел только один пример конкретно на эту тему, на Stack Overflow, и он честно говоря не очень обрадовал.

Буду благодарен за любые советы.


(ex3me0) #2

Что конкретно подразумевается под этим, можно пример, как это выглядит?


(Алексей Смиян) #3

Корпоративное приложение. Для авторизации используется учетная запись Windows.


(Vjacheslav Lukashevich) #4

Если это какой то корпоративный Single Sign On то наверное придётся городить свою авторизацию.
Надо изучать как физически эта авторизация работает и эмулировать.

В своё время был опыт с Single Sign On через смарт карту.
Там пришлось сначала достать сертификаты пользователя (.pem, .pfx файлы)
Потом загрузить эти сертификаты в профиль FireFox
FireFox шёл на ссылку странички Single Sign On, получал токен который я сохранял и использовал в хидерах моих REST запросов чтобы выглядеть залогиненым юзером.

Можно наверное без FireFox но тогда бы мне пришлось обрабатывать кучку редиректов на web странички с JavaScript, что наверное очень весело =)

Вот такой вот опыт.


(Алексей Смиян) #5

Пока-что нашел реализацию на Python:
requests, requests-ntlm, ntlm-auth. Все очень просто, сегодня уже гонял запросы, читал JSON-ы.
Сделать микросервис на Python и из тестов на Java дергать из него данные, которые он будет получать по api из приложения, адекватная идея? Просто у нас еще Rabbit есть, и там пока тоже Python выглядит оптимальнее, для вычитки очередей.


(Spiv) #6

Метод авторизации
RestAssured.authentication = ntlm(“Login”,“Pass”, null,“domain”)