Jak korzystać z podstawowego uwierzytelniania usług?

10

Jak korzystać z modułu Podstawowe uwierzytelnianie usług ?

Chcę dodać uwierzytelnianie podstawowe HTTP dla mojej usługi. Zainstalowałem go i włączyłem w mojej konfiguracji punktu końcowego. Otrzymałem ten komunikat „Podstawowe uwierzytelnianie HTTP Services_basic_auth nie ma dostępnych ustawień” w mojej konfiguracji punktu końcowego. gdzie jest strona ustawień?

Rijalul fikri
źródło

Odpowiedzi:

11

Moduł uwierzytelnia połączenie serwisowe z kontami drupal.

  1. Włącz moduł
  2. Skonfiguruj użytkownika Drupal
  3. Wykonaj połączenie z usługą internetową przy użyciu poświadczeń użytkownika.

Pamiętaj, że w przypadku podstawowego uwierzytelnienia poświadczenie może zostać przechwycone, jeśli nie jest używany protokół SSL.

Moduł używa standardowych nagłówków uwierzytelniania PHP i przesyła standardowy formularz logowania drupal, bez sprawdzania konkretnych ról i uprawnień. Tak więc każdy użytkownik drupala będzie działał.

Wykonaj testowe połączenie z usługą curl lub wget, aby je przetestować. Istnieją również instrukcje, jak wywoływać za pomocą PHP w wywołaniu z odpowiedzią curl stackoverflow.

Interlated
źródło
Czy to całkowicie różni się od używania tej struktury w pojedynczym wywołaniu adresu URL? moja nazwa_użytkownika: [email protected]/callback
Citricguy
@Citricguy nie inaczej. Ta składnia jest zapewniona przez schemat URI en.wikipedia.org/wiki/URI_scheme . Nie zrobiłbym tego w ten sposób. Niektóre usługi REST można testować w przeglądarce i martwiłbym się, że poświadczenia przeszły do ​​historii przeglądarki. Dzięki https dane są szyfrowane. Zależy to również od biblioteki http, php http może być OK, patrz komentarz na php.net/manual/en/features.http-auth.php#44686 . Przeglądarki Microsoft nie obsługują już składni, więc jeśli użyjesz javascript do wywołania, może nie działać. Niektóre interfejsy API używają tej metody goo.gl/eS9mqv
Interlated
Niestety sposób realizacji połączenia nie ma wpływu na połączenie. Więc testowanie u: [email protected], czy to działa, jest w porządku. Mówię, że mogą występować takie problemy. Sądzę, że nagłówki, a nie adresy URL tak wcześnie, jak to możliwe, w celu usprawnienia testów.
Interlated
4

Powyższy moduł służy do uwierzytelniania połączeń serwisowych przy użyciu techniki uwierzytelniania podstawowego dostępu . Użyjesz nazwy użytkownika i hasła Drupal do uwierzytelnienia połączeń usługowych poprzez dodanie nagłówka autoryzacji do zgłoszenia serwisowego w następujący sposób

Gdy agent użytkownika chce wysłać dane uwierzytelniające serwera, może użyć nagłówka autoryzacji.

Nagłówek autoryzacji jest skonstruowany w następujący sposób:

Nazwa użytkownika i hasło są łączone w ciąg „nazwa użytkownika: hasło”

Wynikowy literał łańcucha jest następnie kodowany przy użyciu wariantu RFC2045-MIME Base64, z wyjątkiem, ale nie wyłącznie, 76 znaków / linię. Metoda kodowania i spacja, tj. „Basic”, są następnie umieszczane przed zakodowanym łańcuchem.

Na przykład, jeśli agent użytkownika używa „Aladdin” jako nazwy użytkownika i „open sesame” jako hasła, wówczas nagłówek jest tworzony w następujący sposób :.

Autoryzacja: Podstawowa QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Na przykład poniżej jest połączenie za pomocą curl ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice
Anil Sagar
źródło
2
tak, już to przeczytałem, ale nadal nie wiem, jak go wdrożyć? co zrobić po zainstalowaniu modułu ?. każda pomoc byłaby świetna. dzięki
Rijalul fikri,
2
  1. Po włączeniu modułu przejdź do Struktura> Usługi
  2. Wybierz punkt końcowy i kliknij Edytuj wprowadź opis zdjęcia tutaj

  3. Użyj narzędzia takiego jak https://addons.mozilla.org/fr/firefox/addon/restclient/, aby przetestować swojego klienta:

wprowadź opis zdjęcia tutaj

Uwaga: Mam z tym problemy, ponieważ zaznaczono opcję podstawowego uwierzytelniania HTTP, że wywołanie zasobu tego punktu końcowego zwraca 200 zamiast 401 . To znaczy, moduł nie zabezpieczył mojego punktu końcowego.

Problem pojawia się w:

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

Rozwiązałem to, wykonując łatkę dla modułu:

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

Artur Kędzior
źródło
1

Co może być nie tak: Po skonfigurowaniu wszystkich ustawień:

  1. włącz moduł uwierzytelniania podstawowego usług
  2. utwórz punkt końcowy interfejsu API usług, na przykład: pobierz wszystkie węzły
  3. ustaw pole wyboru „Podstawowe uwierzytelnianie HTTP” na stronie edycji
  4. utwórz użytkownika

Zauważyliśmy też, że jeśli nie wyłączysz uprawnienia „Wyświetl opublikowaną treść”, każdy użytkownik może uzyskać dostęp do punktu końcowego interfejsu API ze zwróconym wynikiem.

użytkownik57293
źródło
0

Po zainstalowaniu Services Basic Authenticationmodułu przejdź do ustawień REST swojego serwera:

/admin/structure/services

Wpisz Editopcję, a na dole znajduje się pole wyboru:

HTTP basic authentication

Włącz i naciśnij przycisk Zapisz.

Michał Przybylowicz
źródło
Jakiego użytkownika: hasło będę używać do podstawowego uwierzytelniania HTTP?
AshwinP
-1

Nie zapomnij użyć modułu dostępu do treści.

Dodanie dodatkowych szczegółów na żądanie MPD.

Jeśli nie korzystasz z modułu dostępu do treści, użytkownik zobaczy całą zawartość, w tym stworzoną przez innych, których nie powinna widzieć. Na przykład użytkownik A przechował dane osobowe, których użytkownik B nie powinien widzieć ani mądrze. Moduł podstawowego uwierzytelniania usług włącza uwierzytelnianie, ale nie wymusza dostępu do treści. Moduł dostępu do treści wymusza to. Jeśli nie korzystasz z kontroli dostępu do treści, uwierzytelnianie użytkownika nie ma sensu.

techwestcoastsfosea
źródło
Czy możesz rozwinąć sposób, w jaki ten moduł może rozwiązać potrzeby użytkownika?
mpdonadio
Proszę zobaczyć moją aktualizację w oryginalnej odpowiedzi.
techwestcoastsfosea