Wie verwende ich die Services Basic-Authentifizierung?

10

Wie verwenden Dienstleistungen Basic Authentication Modul?

Ich möchte http basic auth für meinen Dienst hinzufügen. Ich habe es installiert und in meiner Endpunktkonfiguration aktiviert. Ich habe diese "HTTP-Basisauthentifizierung Services_basic_auth hat keine Einstellungen verfügbar" in meiner Endpunktkonfiguration erhalten. Wo ist die Einstellungsseite?

Rijalul Fikri
quelle

Antworten:

11

Das Modul authentifiziert einen Webdienstaufruf anhand von Drupal-Konten.

  1. Aktivieren Sie das Modul
  2. Richten Sie einen Drupal-Benutzer ein
  3. Führen Sie den Webdienstaufruf mit den Anmeldeinformationen des Benutzers durch.

Beachten Sie, dass mit der Basisauthentifizierung der Berechtigungsnachweis abgefangen werden kann, wenn SSL nicht verwendet wird.

Das Modul verwendet die Standard- PHP-Authentifizierungsheader und sendet das Standard-Drupal-Anmeldeformular, ohne nach bestimmten Rollen oder Berechtigungen zu suchen. So wird jeder Drupal-Benutzer arbeiten.

Führen Sie einen Test-Webdienst- Anruf mit curl oder wget durch, um ihn zu testen. Es gibt auch Anweisungen zum Aufrufen mit PHP im Anruf mit Curl Stackoverflow-Antwort.

Interlated
quelle
Unterscheidet sich dies völlig von der Verwendung dieser Struktur in einem einzelnen URL-Aufruf? myusername: [email protected]/callback
Citricguy
@ Citricguy nicht anders. Diese Syntax wird vom URI-Schema en.wikipedia.org/wiki/URI_scheme bereitgestellt . Ich würde es nicht so machen. Einige REST-Services können in einem Browser getestet werden, und ich befürchte, dass die Anmeldeinformationen in den Browserverlauf aufgenommen wurden. Mit https werden Anmeldeinformationen verschlüsselt. Es würde auch von der http-Bibliothek abhängen, php http könnte in Ordnung sein, siehe den Kommentar auf php.net/manual/en/features.http-auth.php#44686 . Microsoft-Browser unterstützen die Syntax nicht mehr. Wenn Sie also Javascript verwenden, um den Anruf zu tätigen, funktioniert dies möglicherweise nicht. Einige APIs verwenden diese Methode goo.gl/eS9mqv
Interlated
Die Art und Weise, wie Sie den Anruf implementieren, hat leider keine Auswirkungen auf den Anruf. Es ist also in Ordnung, mit u: [email protected] zu testen, ob es funktioniert. Ich sage, dass es Probleme bei der Implementierung geben kann. Ich würde denken, Header, nicht URL so früh wie möglich, um das Testen zu rationalisieren.
Interlated
4

Das obige Modul wird zum Authentifizieren von Dienstanrufen mithilfe der Standardzugriffsauthentifizierungstechnik verwendet. Sie verwenden Ihren Drupal-Benutzernamen und Ihr Kennwort, um Dienstanrufe zu authentifizieren, indem Sie dem Dienstanruf den Autorisierungsheader wie folgt hinzufügen

Wenn der Benutzeragent die Anmeldeinformationen für die Serverauthentifizierung senden möchte, verwendet er möglicherweise den Autorisierungsheader.

Der Autorisierungsheader ist wie folgt aufgebaut:

Benutzername und Passwort werden zu einer Zeichenfolge "Benutzername: Passwort" zusammengefasst.

Das resultierende Zeichenfolgenliteral wird dann unter Verwendung der RFC2045-MIME-Variante von Base64 codiert, außer nicht auf 76 Zeichen / Zeile beschränkt. Die Autorisierungsmethode und ein Leerzeichen, dh "Basic", werden dann vor die codierte Zeichenfolge gesetzt.

Wenn der Benutzeragent beispielsweise 'Aladdin' als Benutzernamen und 'open sesame' als Passwort verwendet, wird der Header wie folgt gebildet:

Autorisierung: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

Zum Beispiel unten ist der Aufruf mit curl ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice
Anil Sagar
quelle
2
Ja, ich habe es bereits gelesen, weiß aber noch nicht, wie ich es implementieren soll. Was tun nach der Installation des Moduls? Jede Hilfe wäre großartig. danke
Rijalul fikri
2
  1. Sobald das Modul aktiviert ist, gehen Sie zu Struktur> Dienste
  2. Wählen Sie Ihren Endpunkt aus und klicken Sie auf Bearbeiten Geben Sie hier die Bildbeschreibung ein

  3. Verwenden Sie ein Tool wie https://addons.mozilla.org/fr/firefox/addon/restclient/ , um Ihren Client zu testen:

Geben Sie hier die Bildbeschreibung ein

Hinweis: Ich hatte Probleme damit, obwohl die Option HTTP-Basisauthentifizierung markiert war und beim Aufrufen einer Ressource dieses Endpunkts 200 anstelle von 401 zurückgegeben wurde . Das heißt, das Modul konnte meinen Endpunkt nicht sichern.

Das Problem tritt auf in:

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

Ich habe es mit einem Patch für das Modul gelöst:

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

Artur Kędzior
quelle
1

Was kann falsch sein: Nachdem Sie alle Einstellungen vorgenommen haben:

  1. Aktivieren Sie das Services-Basic-Authentifizierungsmodul
  2. Erstellen Sie einen Service-API-Endpunkt. Beispiel: Holen Sie sich alle Knoten von
  3. Aktivieren Sie das Kontrollkästchen "HTTP-Basisauthentifizierung" auf der Bearbeitungsseite
  4. Erstellen Sie einen Benutzer

Und wenn Sie die Berechtigung "Veröffentlichten Inhalt anzeigen" nicht deaktivieren, kann jeder Benutzer auf den Endpunkt der Service-API mit dem zurückgegebenen Ergebnis zugreifen.

user57293
quelle
0

Services Basic AuthenticationGehen Sie nach der Installation des Moduls zu den REST-Einstellungen Ihres Servers:

/admin/structure/services

Geben Sie die EditOption ein und unten befindet sich ein Kontrollkästchen:

HTTP basic authentication

Aktivieren Sie es und klicken Sie auf die Schaltfläche Speichern.

Michal Przybylowicz
quelle
Welcher Benutzer: Passwort, das ich für die HTTP-Basisauthentifizierung verwenden werde?
AshwinP
-1

Vergessen Sie nicht, das Inhaltszugriffsmodul zu verwenden.

Hinzufügen zusätzlicher Details pro MPD-Anfrage.

Wenn Sie das Inhaltszugriffsmodul nicht verwenden, sieht der Benutzer alle Inhalte, einschließlich der von anderen erstellten Inhalte, die er eigentlich nicht sehen sollte. Beispielsweise hat Benutzer A persönliche Daten gespeichert, die Benutzer B nicht sehen soll oder umgekehrt. Das Modul "Services Basic Authentication" aktiviert die Authentifizierung, erzwingt jedoch nicht den Zugriff auf Inhalte. Das Content Access-Modul erzwingt dies. Wenn Sie die Inhaltszugriffskontrolle nicht verwenden, macht es keinen Sinn, einen Benutzer zu authentifizieren.

techwestcoastsfosea
quelle
Können Sie erläutern, wie dieses Modul die Anforderungen des Benutzers erfüllen kann?
mpdonadio
Bitte beachten Sie mein Update in der Originalantwort.
Techwestcoastsfosea