Andere Skripte folgen möglicherweise nicht diesem, aber mit registration.soap.php können Sie Einschränkungen für die IP-Adressen definieren, die die darin enthaltenen Webservices aufrufen können.
Dies wird durch den folgenden Codeausschnitt innerhalb der WSHelperVerifyKey() -Funktion ermöglicht
Wie Sie verstanden haben, müssen Sie eine Datei namens « webservice-auth-ip.conf.php » im selben Ordner wie registration.soap.php erstellen und eine Liste der IP-Adressen (oder Bereiche) in die Datei selbst einfügen. Es werden nur die IP-Adressen akzeptiert, die den Bereichen entsprechen.
Bei Verwendung dieser Methode muss der Algorithmus, den wir zuvor zum Erstellen des Sicherheitsschlüssels gesehen haben, geändert werden, da die IP-Adresse nicht mehr benötigt wird:
Für Portale, in denen Sicherheit sehr wichtig ist, empfiehlt es sich, diese Methode zu verwenden.
Der Authentifizierungsmechanismus für die Webservices ist etwas seltsam, also geben wir Ihnen zuerst ein Beispiel dafür, wie wir einen Dienst anrufen würden, der einen Benutzer in Chamilo aus einer anderen Anwendung in PHP erstellt... wir erklären dann die verschiedenen Teile.
Gleich zu Beginn haben wir die URL für den Zugriff auf die WSDL erstellt. Die meisten Dateien in main/webservices/ (wenn nicht alle) können mit einem «?wsdl » -Suffix aufgerufen werden, um die WSDL (die strukturierte Darstellung der verfügbaren Funktionen) anzuzeigen. Dies sollte ausreichen, damit jeder SOAP-Client weiß, welche Funktionen für Anrufe verfügbar sind.
Wir haben dann bei testip.php nach einer IP-Adresse gesucht. Dieses Skript hilft uns speziell bei der Bildung des geheimen Schlüssels: Wir müssen dem Server zeigen, von dem wir wissen, von welcher IP wir anrufen werden. Die Verwendung von file_get_contents() gibt Ihnen diese Informationen in eine Variable.
Wir definieren dann einen Schlüssel... das liegt daran, dass wir ihn nicht direkt von Chamilo über den Webserver beziehen können. Wir müssen die app/config/configuration.php -Datei öffnen und nach $_configuration ['security_key'] suchen, dann seinen Wert in unser Skript kopieren, um den endgültigen geheimen Schlüssel zu bilden, den wir an den Webdienst senden.
Schließlich bereiten wir das Array $params vor und rufen das WSCreateUserPasswordCrypted() auf (eine spezielle Version von WSCreateUser(), die nur funktioniert, wenn wir die gleiche Kryptenmethode für das Kennwort auf beiden Seiten verwenden (wir müssen es im Parameter encrypt_method erwähnen.
Der Parameter original_user_id_name ermöglicht es uns, eine Verbindung zwischen Chamilo und unserem externen Service herzustellen. Geben Sie einfach einen konstanten Namen an, der Ihr System und die Tatsache darstellt, dass es sich um eine Benutzer-ID handelt, und geben Sie die Benutzer-ID von Ihre-System innerhalb des Werts von original_user_id_value an. Mit diesem Wertesatz können Sie später Benutzer bearbeiten oder löschen, die Sie zuvor erstellt haben: Chamilo wird dank der Speicherung dieser Informationen eine Beziehung zwischen Ihrem System und sich selbst aufrechterhalten.
Grundlegende Informationen zu Webdiensten in Chamilo LMS finden Sie immer hier: Chamilo-APIs Aber die Informationen dort sind möglicherweise nicht vollständig auf dem neuesten Stand (die in diesem Handbuch), da sich die Dienste im Laufe der Zeit tendenziell ändern oder an Zahl zunehmen (obwohl wir natürlich unser Bestes tun, um die Abwärtskompatibilität aufrechtzuerhalten).
Die zuverlässigste Quelle ist jedoch immer der Code, der sich im main/webservices/ -Ordner befindet.
Wenn Sie sich ein wenig damit beschäftigen, werden Sie feststellen, dass wir mit der Entwicklung verschiedener Arten von Webservices begonnen haben, in SOAP, aber auch in REST und XML-RPC.
Die am häufigsten verwendete und gepflegte Version ist jedoch wahrscheinlich SOAP (ohne besonderen Grund) und ist in einer einzigen Datei konzentriert: main/webservices/registration.soap.php
Einige der anderen verfügbaren Methoden mit einer kleinen Erklärung für jede:
Erstellt Benutzer in Chargen. Das Passwort wird unverschlüsselt erwartet (was auf HTTPS in Ordnung ist, aber sonst nicht).
Erzeugt nur einen Benutzer.
Erstellt Benutzer, die berücksichtigen, dass ihre Kennwörter möglicherweise verschlüsselt sind. Diese Methode erwartet die folgenden Parameter:
Erstellt nur einen Benutzer, der sein Passwort berücksichtigt, ist möglicherweise verschlüsselt
Bearbeitet die Anmeldedaten eines Benutzers (Benutzername + Passwort)
Bearbeiten Sie mehrere Benutzer im Batch.
Bearbeiten Sie nur einen Benutzer
Benutzer bearbeiten, verschlüsselte Passwörter senden
Bearbeiten Sie einen Benutzer und senden Sie ein verschlüsseltes Passwort.
Warnung: Obwohl sehr diskret, gibt es in Chamilo LMS 1.9
ein Problem.* wobei wscreateUserGypwordCrypted den Benutzernamen in Form eines « loginname » -Feldes erwartet, während WseditUserPasswordCryptoD den Benutzernamen in Form eines « username » -Feldes erwartet. Stellen Sie sicher, dass Sie nicht auf dieses hereinfallen, da dies zeitaufwändig sein könnte.
Benutzer im Stapel löschen
Deaktivieren Sie Benutzer im Batch
Benutzer im Stapel aktivieren
Erstellen Sie einen Kurs
Erstellen Sie einen Kurs mit nur einem Titel
Bearbeiten eines bestehenden Kurses
Holen Sie sich die Kursbeschreibung für einen bestimmten Kurs
Bearbeiten einer Kursbeschreibung
Einen Kurs löschen
Erstellen Sie eine Sitzung. Diese Methode erwartet die folgenden Parameter:
Bearbeiten Sie eine (oder mehrere) bestehende Session (s) basierend auf dem ursprünglichen_session_id_value-Feld. Diese Methode erwartet die folgenden Parameter:
Löschen einer Session
Abonnieren Sie einen Benutzer für einen Kurs
Abonnieren Sie einen Benutzer für einen Kurs
Holen Sie sich Benutzerinformationen von einer Benutzer-ID
Holen Sie sich Benutzerinformationen von einem Benutzernamen
Einen Benutzer von einem Kurs abmelden
WARNUNG: Bitte beachten Sie hier den Tippfehler: Der Dienst heißt « suscribe » statt « subscribe ». Aus Gründen der Abwärtskompatibilität haben wir es so gelassen, aber machen Sie keinen Fehler: Sie müssen es in falschem Englisch eingeben, damit es funktioniert!Abonnieren Sie einen Benutzer für eine Sitzung. Diese Methode erwartet die folgenden Parameter:
Einen Benutzer von einer Sitzung abmelden
WARNUNG: Siehe Hinweis in WSSSusCribeUsersToSession
Abmelden mehrerer Benutzer von einer Sitzung im Batch
WARNUNG: Siehe Hinweis in WSSSusCribeUsersToSession
Abonnieren Sie mehrere Benutzer für eine Sitzung im Stapel. Diese Methode erwartet die folgenden Parameter:
WARNUNG: Siehe Hinweis in WSSSusCribeUsersToSession
Entfernen eines Kurses aus einer Session
Ruft eine Liste der auf der Plattform verfügbaren Kurse ab
Aktualisieren Sie den API-Schlüssel eines Benutzers
Listet die auf der Plattform verfügbaren Sitzungen auf