0

Я установил Basic Auth, как описано в Apigility docu (документ не обновляется больше, но основные шаги остаются неизменными). Итак, я создал файл users.htpasswd и добавил адаптер аутентификации. Мой /config/autoload/local.php был обновлен и получил адаптер конфиги:Как получить базовую проверку подлинности HTTP для приложения Apigility?

return array(
    ... 
    'zf-mvc-auth' => array(
     'authentication' => array(
      'adapters' => array(
       'dummy basic auth' => array(
        'adapter' => 'ZF\\MvcAuth\\Authentication\\HttpAdapter', 
        'options' => array(
         'accept_schemes' => array(
          0 => 'basic', 
         ), 
         'realm' => 'Dummy Realm', 
         'htpasswd' => 'data/users.htpasswd', 
        ), 
       ), 
      ), 
     ), 
    ), 
); 

До сих пор так хорошо:

Test: I sent a `GET` request got the data just like before the auth setup. 
Expected: `200 OK` 
Result: `200 OK` 
OK 

Тогда я пошел в Apigility Admin Backend -> My API -> My Rest Service -> Authorization и промаркирован методы и конечные точки, я хочу, чтобы требовать разрешения на.

Test: I sent a new request without credentials/authentication token. 
Expected: `403 Forbidden` 
Result: `403 Forbidden` 
OK 

Test: I sent another request with wrong credentials/authentication token. 
Expected: `401 Unauthorized` 
Result: `403 Forbidden` 
FAIL 

Test: I sent a request with correct credentials/authentication token. 
Expected: `200 OK` 
Result: `403 Forbidden` 
FAIL 

Что я делаю неправильно? Как получить базовую HTTP-аутентификацию?

ответ

2

Начиная с новой версии Apigility (не уверен, какой именно, но более 1,0) существует возможность создавать несколько адаптеров Auth и связывать каждый API с другим адаптером Auth.

Если вы создали адаптер аутентификации (аутентификация в верхней части -> Адаптеры -> Новый адаптер), у вас будет имя адаптера для HTTP Basic, который вы настроили. Обратите внимание на это.

Затем перейдите в свой API (тот, который соответствует имени модуля, который содержит ваши ресурсы, а не отдельные ресурсы). На этом экране вы увидите «Аутентификация» в левом верхнем углу с раскрывающимся списком.

Auth Adapter Picker

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