Поиск в Google и, похоже, не может найти определенного решения для этого ...
Я внедряю PHP SOAP-сервер для обработки запросов от конкретного пользователя наших систем.
Мне нужно, чтобы он аутентифицировал подключающегося пользователя не только во время КАЖДОГО запроса через аргументы user / pass, отправляемого функциям SOAP, но и как-то аутентифицировал простое соединение с сервисом.
Реализация функциипроверка подлинности на высоком уровне была простой: первые два аргумента любой функции в системе - user и pass, и мы возвращаем код ошибки в случае, когда передается нераспознанная комбинация user / pass. Сложная часть - аутентификация соединения.
Я видел реализации, которые, когда клиент SOAP создается с массивом опций, содержащим «имя пользователя» и «пароль», могут затем аутентифицироваться на уровне соединения с подключающимся клиентом, но я не смогчтобы найти любой серверный код, который обрабатывает этот тип аутентификации.
Что нужно сделать, чтобы реализовать это в классе PHP SoapServer, который обрабатывает () клиентские запросы?
РЕШЕНО: Кажется, я смог реализовать то, чтоЧтобы использовать файл .htaccess, включенный для BASIC Auth ...
Логин и пароль, переданные клиенту, отправляются на сервер и помещаются в массив php $ _SERVER как PHP_AUTH_USER и PHP_AUTH_PW.PHP проверяет эти значения по отношению к определенному файлу passwd в файле .htaccess и, при просмотре на веб-странице, открывает общее окно пользователя / пароля, что приводит к 401 Несанкционированному, если аутентификация не удалась, и позволяет вам войти в противном случае ... Через SOAPКЛИЕНТ, вы передаете пользовательский пароль с опциями «логин» и «пароль», и этот элемент аутентификации затем обрабатывается в клиенте.