Як користуватися базовою службою автентичності?


10

Як користуватися базовим модулем аутентифікації Services Services ?

Я хочу додати основний http для свого сервісу. Я встановив його і включив його в конфігурації моєї кінцевої точки. У моїй конфігурації кінцевої точки я отримав цей "базовий протокол аутентифікації HTTP Services_basic_auth не доступний" де сторінка налаштувань?

Відповіді:


11

Модуль засвідчує виклик веб-служби проти облікових записів Drupal.

  1. Увімкніть модуль
  2. Налаштування користувача drupal
  3. Здійсніть виклик веб-служби за допомогою облікових даних користувача.

Зауважте, що з базовим auth, обліковий запис може бути перехоплений, якщо SSL не використовується.

Модуль використовує стандартні заголовки автентифікації PHP і подає стандартну форму для входу в друпал, не перевіряючи на наявність певних ролей або дозволів. Тож будь-який користувач drupal буде працювати.

Зробіть тестовий виклик веб-служби за допомогою curl або wget, щоб перевірити його. Також є вказівки, як зателефонувати з PHP під час виклику з відповіддю у відповідь stackoverflow


Це повністю відрізняється від використання цієї структури в одному URL-дзвінку? myusername: mypassword@example.com/callback
Citricguy

@Citricguy не відрізняється. Цей синтаксис надається схемою URI en.wikipedia.org/wiki/URI_scheme . Я б не робив це так. Деякі сервіси REST можна перевірити в браузері, і я б побоювався, що облікові дані увійшли до історії браузера. За допомогою https облікові дані шифруються. Це також залежатиме від бібліотеки http, php http може бути в порядку, дивіться коментар на php.net/manual/en/features.http-auth.php#44686 . Браузери Microsoft більше не підтримують синтаксис, тому якщо ви використовуєте javascript для виклику, він може не працювати. Деякі API використовують цей метод goo.gl/eS9mqv
Interlated

На жаль, спосіб здійснення дзвінка не впливає на виклик. Тож тестування на u: p@host.com, якщо воно працює, добре. Я кажу, що можуть виникнути такі проблеми з реалізацією. Я думаю, що заголовки, а не URL як можна раніше, щоб упорядкувати тестування.
Переплетено

4

Вищевказаний модуль використовується для аутентифікації викликів служб за допомогою методики базової автентифікації доступу . Ви будете використовувати своє ім'я користувача та пароль Drupal для автентифікації викликів служб, додавши заголовок авторизації до виклику служби наступним чином.

Коли агент користувача хоче надіслати облікові дані для автентифікації сервера, він може використовувати заголовок авторизації.

Заголовок авторизації складається так:

Ім'я користувача та пароль об'єднані в рядок "ім'я користувача: пароль"

Потім отриманий літеральний рядок кодується за допомогою RFC2045-MIME варіанту Base64, за винятком обмежень 76 char / line Спосіб авторизації та пробіл, тобто "Basic", потім ставлять перед кодованим рядком.

Наприклад, якщо агент користувача використовує "Aladdin" як ім'я користувача та "відкрити кунжут" як пароль, то заголовок формується наступним чином:.

Авторизація: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Для прикладу нижче - дзвінок за допомогою curl ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
так, я вже його читав, але все ще не знаю, як це реалізувати? що робити після встановлення модуля ?. будь-яка допомога була б чудовою. спасибі
Rijalul fikri

2
  1. Після включення модуля перейдіть до Структура> Послуги
  2. Виберіть кінцеву точку та натисніть Редагувати введіть тут опис зображення

  3. Використовуйте такий інструмент, як https://addons.mozilla.org/fr/firefox/addon/restclient/ для перевірки свого клієнта:

введіть тут опис зображення

Примітка. У мене виникли проблеми з цим, навіть незважаючи на те, що опція базової автентифікації HTTP була позначена як виклик ресурсу цієї кінцевої точки повертає 200 замість 401 . Скажімо, модуль не зміг захистити мою кінцеву точку.

Проблема з’являється у:

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

Я вирішив це, виконуючи патч для модуля:

https://www.drupal.org/node/2734207


1

Що може бути не так: Після встановлення всіх налаштувань:

  1. включити модуль аутентифікації для сервісів на базі послуг
  2. створити сервіси api кінцевої точки, наприклад: отримати всі вузли
  3. встановіть прапорець "Основна автентифікація HTTP" на сторінці редагування
  4. створити користувача

І зауважив, що якщо ви не відключите дозвіл "Переглянути опублікований вміст", будь-який користувач може отримати доступ до кінцевої точки служби api з повернутим результатом.


0

Після установки Services Basic Authenticationмодуля перейдіть до налаштувань REST вашого сервера:

/admin/structure/services

Введіть Editваріант і внизу є прапорець:

HTTP basic authentication

Увімкніть це і натисніть кнопку Зберегти.


Який користувач: пароль, який я буду використовувати для базової автентифікації HTTP?
AshwinP

-1

Не забудьте використовувати модуль доступу до вмісту.

Додавання додаткових відомостей на запит MPD.

Якщо ви не використовуєте модуль доступу до вмісту, користувач побачить увесь вміст, у тому числі створений іншими, який він не повинен був бачити. Наприклад, користувач A зберігає особисті дані, які користувач B не повинен бачити або навпаки. Модуль автентифікації базових служб дозволяє авторизацію, але не застосовує доступ до вмісту. Модуль доступу до вмісту виконує це. Якщо ви не використовуєте контроль доступу до вмісту, тоді немає автентичності користувача.


Чи можете ви розширити, як цей модуль може вирішити потреби користувача?
mpdonadio

Будь ласка, дивіться моє оновлення в оригінальній відповіді.
techwestcoastsfosea
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.