Конфликт между .htpasswd и аутентификацией веб-сайта

#php #.htaccess #basic-authentication #.htpasswd

#php #.htaccess #базовая аутентификация #.htpasswd

Вопрос:

У меня есть часть содержимого моего веб-сайта Drupal, доступного через службу rest Json. Чтобы получить к ним доступ, я выполняю http-запрос с использованием базового протокола аутентификации (т. Е. добавляю заголовок авторизации).

Моя проблема в том, что этот веб-сайт должен быть опубликован в папке, защищенной методом AuthUserFile (т. е. .htaccess .htpasswd). Оба метода требуют одинакового заголовка запроса «Авторизация», поэтому я понятия не имею, как поместить их оба в запрос.

Примером запроса может быть:

 curl -X GET 
http://exmple.com/restendpoint 
-H 'Authorization: Basic YWRtaslkdskdfhlskdjfgksdfgjpbmlzaA==' 
-H 'Content-Type: application/json' 
  

Теперь этот запрос (с учетом соответствующих учетных данных) работает, если у меня есть только аутентификация .htaccess, или если у меня есть только аутентификация на веб-сайте, но не оба.
Я также пытался установить одного и того же пользователя и пароль для обоих механизмов, но это не работает, я всегда не могу получить доступ к содержимому.

Есть ли какой-либо способ заставить эти два механизма сосуществовать?

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

1. Привет, доннадульсинея, я столкнулся с той же проблемой, и мне интересно, решили ли вы эту проблему?

2. Нет, я никогда не указывал, как это решить. И у этого вопроса все еще 0 голосов, возможно, решение наивно, и я не смог его увидеть.

3. У меня была эта проблема с интернет-магазином, и я нашел документацию на их веб-сайте о том, что в этих случаях вам необходимо иметь бесплатный IP-маршрут в вашем файле htacces, чтобы у вас могла быть только одна активная аутентификация.

4. На самом деле, когда мне было нужно, я сделал именно это, чтобы обойти проблему, указав службам другой адрес на том же IP-адресе без ограничения conf. Но если это единственное решение, я думаю, что это большой недостаток протокола http-запросов.

5. Я так не думаю, потому что это один запрос, и вы не должны иметь возможности включать 2 разные аутентификации в один запрос, это сильно усложнило бы ситуацию.

Ответ №1:

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