UserManipulation/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Setup)
 
(9 intermediate revisions by one user not shown)
Line 3: Line 3:
 
=Einführung=
 
=Einführung=
  
Normalerweise werden Benutzer in OpenSimulator über den Befehl "Benutzer erstellen" auf der Regionskonsole (in der Standalone-Konfiguration) oder auf der ROBUST-Servicekonsole (in der Grid-Konfiguration) erstellt. Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Dienst gesendet wird.
+
Normalerweise werden Benutzer in OpenSimulator über den Befehl "Benutzer erstellen"  
Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar. Es kann derzeit nur in Grid-Konfiguration verwendet werden. Im Standalone-Modus können Benutzer über den anderen create user-Aufruf im [[RemoteAdmin]] Modul erstellt werden.
+
auf der Regionskonsole (in der Standalone-Konfiguration) oder auf der ROBUST-Servicekonsole (in der Grid-Konfiguration) erstellt.  
 +
 
 +
Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Dienst gesendet wird.
 +
 
 +
Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar. Es kann derzeit nur in Grid-Konfiguration verwendet werden.  
 +
 
 +
Im Standalone-Modus können Benutzer über den anderen create user-Aufruf im [[RemoteAdmin]] Modul erstellt werden.
  
 
=Setup=
 
=Setup=
Line 14: Line 20:
 
  AllowSetAccount = true
 
  AllowSetAccount = true
  
und in [AuthenicationService]
+
und in [AuthenticationService]
  
 
  [AuthenticationService]
 
  [AuthenticationService]
 
  AllowSetPassword = true
 
  AllowSetPassword = true
  
Bitte beachten Sie, dass dadurch der Aufruf von UserAccountServiceConnector und AuthenticationServiceConnector verfügbar gemacht wird, wie im ServiceConnectiors-Parameter im Abschnitt [Startup] oben in der Datei aufgeführt. Der verwendete Standardport (8003) sollte anderen Benutzern nicht offengelegt werden. Um sich bei OpenSimulator anzumelden, müssen Sie nur den Port verfügbar machen, auf dem der LLLoginServiceInConnector ausgeführt wird (standardmäßig 8002).
+
Bitte beachten Sie, dass dadurch der Aufruf von UserAccountServiceConnector und AuthenticationServiceConnector verfügbar gemacht wird,  
 +
 
 +
wie im ServiceConnectiors-Parameter im Abschnitt [Startup] oben in der Datei aufgeführt.  
 +
 
 +
Der verwendete Standardport (8003) sollte anderen Benutzern nicht offengelegt werden.  
 +
 
 +
Um sich bei OpenSimulator anzumelden, müssen Sie nur den Port verfügbar machen, auf dem der LLLoginServiceInConnector ausgeführt wird (standardmäßig 8002).
  
 
Dies bedeutet auch, dass diese Einrichtungen derzeit nicht in einem offenen Netz (einem Netz, in dem nicht vertrauenswürdige Dritte Simulatoren anschließen können) aktiviert werden sollten.
 
Dies bedeutet auch, dass diese Einrichtungen derzeit nicht in einem offenen Netz (einem Netz, in dem nicht vertrauenswürdige Dritte Simulatoren anschließen können) aktiviert werden sollten.
Line 25: Line 37:
 
==Standard Avatar Einträge==
 
==Standard Avatar Einträge==
  
Wenn Sie möchten, dass ein neuer Benutzer das anfängliche minimale Körperteil / Kleidungsset (Haut, Form, Augen, Haare, Hose, Hemd) hat, das erforderlich ist, damit er als etwas anderes als eine Wolke erscheint, dann stellen Sie sicher
+
Wenn Sie möchten, dass ein neuer Benutzer das anfängliche minimale Körperteil / Kleidungsset (Haut, Form, Augen, Haare, Hose, Hemd) hat,  
 +
 
 +
das erforderlich ist, damit er als etwas anderes als eine Wolke erscheint, dann stellen Sie sicher
  
 
  [UserAccountService]  
 
  [UserAccountService]  
Line 33: Line 47:
  
 
=Verwendung=
 
=Verwendung=
 +
 +
Die nachfolgenden Python Skripte sind auch einfach mit einem kleinen PHP Skript vom Web aus aufzurufen.
 +
 +
<source lang="php">
 +
<?php
 +
    //Python Code in PHP
 +
    $code = escapeshellcmd('python /var/www/meinPYskript.py');
 +
    $ergebnis = shell_exec($code);
 +
    echo $ergebnis;
 +
?>
 +
</source>
  
 
==Benutzer erstellen==
 
==Benutzer erstellen==
Line 49: Line 74:
 
response = conn.getresponse()
 
response = conn.getresponse()
 
print response.read();
 
print response.read();
 +
</source>
 +
 +
<source lang="python">
 +
#!/usr/bin/python3
 +
 +
### Benutzer erstellen createuser
 +
 +
import http.client
 +
import urllib.request, urllib.parse, urllib.error
 +
 +
params = urllib.parse.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
 +
conn = http.client.HTTPConnection("localhost", 8003);
 +
conn.request("POST", "/accounts", params)
 +
response = conn.getresponse()
 +
print(response.read());
 
</source>
 
</source>
  
Line 72: Line 112:
 
</source>
 
</source>
  
Machen Sie sich keine Sorgen um ScopeID, dies wird verwendet, um zu ermöglichen, dass mehrere Grids in einer einzigen Datenbank koexistieren. Erstellt ist ein Unix-Zeitstempel der Zeit, zu der der Benutzer erstellt wurde. UserLevel bestimmt, ob der Benutzer ein Gott ist (>= 200) oder sich überhaupt anmelden kann (<0). ServiceURLs sind HyperGrid bezogen und betreffen uns hier nicht.
+
Machen Sie sich keine Sorgen um ScopeID, dies wird verwendet, um zu ermöglichen, dass mehrere Grids in einer einzigen Datenbank koexistieren.  
 +
 
 +
Erstellt ist ein Unix-Zeitstempel der Zeit, zu der der Benutzer erstellt wurde.  
 +
 
 +
UserLevel bestimmt, ob der Benutzer ein Gott ist (>= 200) oder sich überhaupt anmelden kann (<0). ServiceURLs sind HyperGrid bezogen und betreffen uns hier nicht.
  
 
Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort
 
Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort
Line 98: Line 142:
 
response = conn.getresponse()
 
response = conn.getresponse()
 
print response.read();
 
print response.read();
 +
</source>
 +
 +
<source lang="python">
 +
#!/usr/bin/python3
 +
 +
### Konto einrichten setaccount
 +
 +
import http.client
 +
import urllib.request, urllib.parse, urllib.error
 +
 +
params = urllib.parse.urlencode({'METHOD':'setaccount', 'FirstName':'Tyrion', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
 +
conn = http.client.HTTPConnection("localhost", 8003);
 +
conn.request("POST", "/accounts", params)
 +
response = conn.getresponse()
 +
print(response.read());
 
</source>
 
</source>
  
Line 133: Line 192:
  
 
==Passwort festlegen setpassword==
 
==Passwort festlegen setpassword==
Das Ändern eines Kennworts erfolgt über den Authentifizierungsdienst und nicht über den Benutzerkontodienst. Leider unterscheiden sich die erforderlichen Parameter geringfügig von denen, die vom Benutzerkontodienst verwendet werden. In diesem Fall müssen wir http://<robust-services-address>/auth/plain with METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <new-password>aufrufen.  
+
Das Ändern eines Kennworts erfolgt über den Authentifizierungsdienst und nicht über den Benutzerkontodienst. Leider unterscheiden sich die erforderlichen Parameter geringfügig von denen, die vom Benutzerkontodienst verwendet werden.
 +
 
 +
In diesem Fall müssen wir http://<robust-services-address>/auth/plain with METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <new-password> aufrufen.  
  
 
Hier ist ein Beispiel
 
Hier ist ein Beispiel
Line 148: Line 209:
 
response = conn.getresponse()
 
response = conn.getresponse()
 
print response.read();
 
print response.read();
 +
</source>
 +
 +
<source lang="python">
 +
#!/usr/bin/python3
 +
 +
### Passwort festlegen setpassword
 +
 +
import http.client
 +
import urllib.request, urllib.parse, urllib.error
 +
 +
params = urllib.parse.urlencode({'METHOD':'setpassword', 'PRINCIPAL' : '3a1c8128-908f-4455-8157-66c96a46f75e', 'PASSWORD':'bing'})
 +
conn = http.client.HTTPConnection("localhost", 8003);
 +
conn.request("POST", "/auth/plain", params)
 +
response = conn.getresponse()
 +
print(response.read());
 
</source>
 
</source>
  
Line 171: Line 247:
  
 
==Einen Benutzer löschen==
 
==Einen Benutzer löschen==
Dies ist derzeit wohl nicht möglich. Oder besser gesagt, niemand hat es getan und zurückgemeldet, ob noch alles funktioniert oder ob es viele Probleme gibt.
+
Dies ist derzeit wohl nicht möglich. Oder besser gesagt, niemand hat es getan und zurückgemeldet,  
Der normale Weg, einen Benutzer zu „löschen“, besteht darin, seinen Benutzerlevel auf -1 zu setzen. Dadurch wird verhindert, dass sie sich anmelden.
+
 
Wenn Sie einen Benutzer mit demselben Namen erstellen müssen, benennen Sie zuerst den gelöschten Benutzer um (z. B. in Wilma Flintstone_<RANDOM-UUID>),  
+
ob noch alles funktioniert oder ob es viele Probleme gibt.
 +
 
 +
Der normale Weg, einen Benutzer zu „löschen“, besteht darin, seinen Benutzerlevel auf -1 zu setzen.  
 +
 
 +
Dadurch wird verhindert, dass sie sich anmelden.
 +
 
 +
Wenn Sie einen Benutzer mit demselben Namen erstellen müssen,  
 +
 
 +
benennen Sie zuerst den gelöschten Benutzer um (z. B. in Wilma Flintstone_<RANDOM-UUID>),  
 +
 
 
bevor Sie einen mit dem alten Namen erstellen.
 
bevor Sie einen mit dem alten Namen erstellen.
  
  
 
[[Category:German Translations]]
 
[[Category:German Translations]]

Latest revision as of 00:33, 18 April 2024

Contents

[edit] Einführung

Normalerweise werden Benutzer in OpenSimulator über den Befehl "Benutzer erstellen" auf der Regionskonsole (in der Standalone-Konfiguration) oder auf der ROBUST-Servicekonsole (in der Grid-Konfiguration) erstellt.

Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Dienst gesendet wird.

Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar. Es kann derzeit nur in Grid-Konfiguration verwendet werden.

Im Standalone-Modus können Benutzer über den anderen create user-Aufruf im RemoteAdmin Modul erstellt werden.

[edit] Setup

Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. Legen Sie im Abschnitt [UserAccountService] von Robust.ini fest

[UserAccountService]
AllowCreateUser = true
AllowSetAccount = true

und in [AuthenticationService]

[AuthenticationService]
AllowSetPassword = true

Bitte beachten Sie, dass dadurch der Aufruf von UserAccountServiceConnector und AuthenticationServiceConnector verfügbar gemacht wird,

wie im ServiceConnectiors-Parameter im Abschnitt [Startup] oben in der Datei aufgeführt.

Der verwendete Standardport (8003) sollte anderen Benutzern nicht offengelegt werden.

Um sich bei OpenSimulator anzumelden, müssen Sie nur den Port verfügbar machen, auf dem der LLLoginServiceInConnector ausgeführt wird (standardmäßig 8002).

Dies bedeutet auch, dass diese Einrichtungen derzeit nicht in einem offenen Netz (einem Netz, in dem nicht vertrauenswürdige Dritte Simulatoren anschließen können) aktiviert werden sollten.

[edit] Standard Avatar Einträge

Wenn Sie möchten, dass ein neuer Benutzer das anfängliche minimale Körperteil / Kleidungsset (Haut, Form, Augen, Haare, Hose, Hemd) hat,

das erforderlich ist, damit er als etwas anderes als eine Wolke erscheint, dann stellen Sie sicher

[UserAccountService] 
CreateDefaultAvatarEntries = true 

in der Robust.ini. Diese Einstellung gilt bereits in der Robust.ini.example von OpenSimulator 0.7.4 und höher.

[edit] Verwendung

Die nachfolgenden Python Skripte sind auch einfach mit einem kleinen PHP Skript vom Web aus aufzurufen.

<?php
    //Python Code in PHP
    $code = escapeshellcmd('python /var/www/meinPYskript.py');
    $ergebnis = shell_exec($code);
    echo $ergebnis;
?>

[edit] Benutzer erstellen

Hier ist ein Beispiel-Python-Programm, um dies aufzurufen. Es wird davon ausgegangen, dass Ihre ROBUST Dienste auf localhost ausgeführt werden.

#!/usr/bin/python
 
import httplib
import urllib
 
params = urllib.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
conn = httplib.HTTPConnection("localhost", 8003);
conn.request("POST", "/accounts", params)
response = conn.getresponse()
print response.read();
#!/usr/bin/python3
 
### Benutzer erstellen createuser
 
import http.client
import urllib.request, urllib.parse, urllib.error
 
params = urllib.parse.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
conn = http.client.HTTPConnection("localhost", 8003);
conn.request("POST", "/accounts", params)
response = conn.getresponse()
print(response.read());

PrincipalID ist die eindeutige ID des Benutzers.

Wenn alles gut geht, sollten Sie zurückkommen

<?xml version="1.0"?>
<ServerResponse>
  <result type="List">
    <FirstName>Jon</FirstName>
    <LastName>Snow</LastName>
    <Email/>
    <PrincipalID>3a1c8128-908f-4455-8157-66c96a46f75e</PrincipalID>
    <ScopeID>00000000-0000-0000-0000-000000000000</ScopeID>
    <Created>1318974501</Created>
    <UserLevel>0</UserLevel>
    <UserFlags>0</UserFlags>
    <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
  </result>
</ServerResponse>

Machen Sie sich keine Sorgen um ScopeID, dies wird verwendet, um zu ermöglichen, dass mehrere Grids in einer einzigen Datenbank koexistieren.

Erstellt ist ein Unix-Zeitstempel der Zeit, zu der der Benutzer erstellt wurde.

UserLevel bestimmt, ob der Benutzer ein Gott ist (>= 200) oder sich überhaupt anmelden kann (<0). ServiceURLs sind HyperGrid bezogen und betreffen uns hier nicht.

Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort

<?xml version="1.0"?>
<ServerResponse>
  <result>Failure</result>
</ServerResponse>

[edit] Konto einrichten setaccount

Hier ist ein Beispiel-Python-Programm, um dies aufzurufen. Es wird davon ausgegangen, dass Ihre ROBUST-Dienste auf localhost ausgeführt werden.

#!/usr/bin/python
 
import httplib
import urllib
 
params = urllib.urlencode({'METHOD':'setaccount', 'FirstName':'Tyrion', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
conn = httplib.HTTPConnection("localhost", 8003);
conn.request("POST", "/accounts", params)
response = conn.getresponse()
print response.read();
#!/usr/bin/python3
 
### Konto einrichten setaccount
 
import http.client
import urllib.request, urllib.parse, urllib.error
 
params = urllib.parse.urlencode({'METHOD':'setaccount', 'FirstName':'Tyrion', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
conn = http.client.HTTPConnection("localhost", 8003);
conn.request("POST", "/accounts", params)
response = conn.getresponse()
print(response.read());

PrincipalID ist die eindeutige ID des Benutzers. Hier wird es verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben.

Wenn alles gut geht, sollten Sie folgendes zurückkommen

<?xml version="1.0"?>
<ServerResponse>
  <result type="List">
    <FirstName>Tyrion</FirstName>
    <LastName>Snow</LastName>
    <Email/>
    <PrincipalID>3a1c8128-908f-4455-8157-66c96a46f75e</PrincipalID>
    <ScopeID>00000000-0000-0000-0000-000000000000</ScopeID>
    <Created>1318974501</Created>
    <UserLevel>0</UserLevel>
    <UserFlags>0</UserFlags>
    <ServiceURLs>HomeURI*;GatekeeperURI*;InventoryServerURI*;AssetServerURI*;</ServiceURLs>
  </result>
</ServerResponse>

Beachten Sie, dass sich der Vorname jetzt von Jon zu Tyrion geändert hat.

Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort

<?xml version="1.0"?>
<ServerResponse>
  <result>Failure</result>
</ServerResponse>

[edit] Passwort festlegen setpassword

Das Ändern eines Kennworts erfolgt über den Authentifizierungsdienst und nicht über den Benutzerkontodienst. Leider unterscheiden sich die erforderlichen Parameter geringfügig von denen, die vom Benutzerkontodienst verwendet werden.

In diesem Fall müssen wir http://<robust-services-address>/auth/plain with METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <new-password> aufrufen.

Hier ist ein Beispiel

#!/usr/bin/python
 
import httplib
import urllib
 
params = urllib.urlencode({'METHOD':'setpassword', 'PRINCIPAL' : '3a1c8128-908f-4455-8157-66c96a46f75e', 'PASSWORD':'bing'})
conn = httplib.HTTPConnection("localhost", 8003);
conn.request("POST", "/auth/plain", params)
response = conn.getresponse()
print response.read();
#!/usr/bin/python3
 
### Passwort festlegen setpassword
 
import http.client
import urllib.request, urllib.parse, urllib.error
 
params = urllib.parse.urlencode({'METHOD':'setpassword', 'PRINCIPAL' : '3a1c8128-908f-4455-8157-66c96a46f75e', 'PASSWORD':'bing'})
conn = http.client.HTTPConnection("localhost", 8003);
conn.request("POST", "/auth/plain", params)
response = conn.getresponse()
print(response.read());

Dies zielt darauf ab, Wilma Flintstones Passwort auf bing zu setzen und sie mit der PrincipalID zu identifizieren, die wir zuvor erhalten haben.

Bei Erfolg wird dies zurückgegeben

<?xml version="1.0"?>
<ServerResponse>
  <Result>Success</Result>
</ServerResponse>

Bei Misserfolg,

<?xml version="1.0"?>
<ServerResponse>
  <Result>Failure</Result>
</ServerResponse>

[edit] Einen Benutzer löschen

Dies ist derzeit wohl nicht möglich. Oder besser gesagt, niemand hat es getan und zurückgemeldet,

ob noch alles funktioniert oder ob es viele Probleme gibt.

Der normale Weg, einen Benutzer zu „löschen“, besteht darin, seinen Benutzerlevel auf -1 zu setzen.

Dadurch wird verhindert, dass sie sich anmelden.

Wenn Sie einen Benutzer mit demselben Namen erstellen müssen,

benennen Sie zuerst den gelöschten Benutzer um (z. B. in Wilma Flintstone_<RANDOM-UUID>),

bevor Sie einen mit dem alten Namen erstellen.

Personal tools
General
About This Wiki