UserManipulation/de

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Setup)
 
(7 intermediate revisions by one user not shown)
Line 1: Line 1:
__TOC__
+
{{Quicklinks|UserManipulation}}
{{MainPageQuicklinks|UserManipulation}}
+
=Einführung=
+
  
Normalerweise werden Benutzer in OpenSimulator über den Befehl "Benutzer erstellen"
+
=Einleitung=
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 "create user" auf der Regionskonsole (in Standalone-Konfiguration) oder auf der ROBUST-Service-Konsole (in Grid-Konfiguration) erstellt. Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Service gemacht wird.
  
Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar. Es kann derzeit nur in Grid-Konfiguration verwendet werden.  
+
Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar und kann derzeit nur in der Grid-Konfiguration verwendet werden. In Standalone-Konfiguration können Benutzer über den speziellen "create user"-Aufruf im Modul [[RemoteAdmin]] erstellt werden.
 
+
Im Standalone-Modus können Benutzer über den anderen create user-Aufruf im [[RemoteAdmin]] Modul erstellt werden.
+
  
 
=Setup=
 
=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
+
Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. In der [UserAccountService]-Sektion der Robust.ini setzen Sie:
  
[UserAccountService]
+
[UserAccountService]
AllowCreateUser = true
+
AllowCreateUser = true
AllowSetAccount = true
+
AllowSetAccount = true
  
und in [AuthenicationService]
+
und in der [AuthenicationService]-Sektion:
  
[AuthenticationService]
+
[AuthenticationService]
AllowSetPassword = true
+
AllowSetPassword = true
  
Bitte beachten Sie, dass dadurch der Aufruf von UserAccountServiceConnector und AuthenticationServiceConnector verfügbar gemacht wird,  
+
'''Bitte beachten Sie, dass dadurch der Aufruf auf den UserAccountServiceConnector und AuthenticationServiceConnector freigelegt wird, wie im ServiceConnectors-Parameter in der [Startup]-Sektion oben in der Datei aufgelistet. Der Standardport (8003) ist einer, der nicht für andere Benutzer freigegeben werden sollte. Für die Anmeldung an OpenSimulator müssen Sie nur den Port freigeben, auf dem der LLLoginServiceInConnector läuft (standardmäßig 8002).
  
wie im ServiceConnectiors-Parameter im Abschnitt [Startup] oben in der Datei aufgeführt.  
+
Dies bedeutet auch, dass diese Funktionen derzeit nicht auf einem offenen Grid aktiviert werden sollten (einem Grid, auf dem nicht vertrauenswürdige Dritte Simulator verbinden können).
  
Der verwendete Standardport (8003) sollte anderen Benutzern nicht offengelegt werden.
+
==Standard-Avatareinträge==
  
Um sich bei OpenSimulator anzumelden, müssen Sie nur den Port verfügbar machen, auf dem der LLLoginServiceInConnector ausgeführt wird (standardmäßig 8002).
+
Wenn Sie möchten, dass ein neuer Benutzer den initialen minimalen Körperteil-/Kleidungssatz (Haut, Form, Augen, Haare, Hose, Hemd) erhält, der erforderlich ist, damit er nicht nur als Gaswolke erscheint, stellen Sie sicher, dass
  
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.
+
[UserAccountService]
 +
CreateDefaultAvatarEntries = true
  
==Standard Avatar Einträge==
+
in Robust.ini gesetzt ist. Diese Einstellung ist in der Robust.ini.example von OpenSimulator 0.7.4 und später bereits auf true gesetzt.
  
Wenn Sie möchten, dass ein neuer Benutzer das anfängliche minimale Körperteil / Kleidungsset (Haut, Form, Augen, Haare, Hose, Hemd) hat,
+
=Nutzung=
  
das erforderlich ist, damit er als etwas anderes als eine Wolke erscheint, dann stellen Sie sicher
+
==createuser==
  
[UserAccountService]
+
Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.
CreateDefaultAvatarEntries = true
+
 
+
in der Robust.ini. Diese Einstellung gilt bereits in der Robust.ini.example von OpenSimulator 0.7.4 und höher.
+
 
+
=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==
+
 
+
Hier ist ein Beispiel-Python-Programm, um dies aufzurufen. Es wird davon ausgegangen, dass Ihre ROBUST Dienste auf localhost ausgeführt werden.
+
 
+
<source lang="python">
+
#!/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();
+
</source>
+
  
 
<source lang="python">
 
<source lang="python">
 
#!/usr/bin/python3
 
#!/usr/bin/python3
  
### Benutzer erstellen createuser
+
import http.client
 +
import urllib.parse
  
import http.client
+
params = urllib.parse.urlencode({
import urllib.request, urllib.parse, urllib.error
+
    'METHOD': 'createuser',  
+
    'FirstName': 'Jon',  
params = urllib.parse.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
+
    'LastName': 'Snow',  
conn = http.client.HTTPConnection("localhost", 8003);
+
    'Password': 'test',  
conn.request("POST", "/accounts", params)
+
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/accounts", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print(response.read());
+
print(response.read().decode())
 
</source>
 
</source>
  
 
PrincipalID ist die eindeutige ID des Benutzers.
 
PrincipalID ist die eindeutige ID des Benutzers.
  
Wenn alles gut geht, sollten Sie zurückkommen
+
Wenn alles gut läuft, erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 112: Line 80:
 
</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.
+
==setaccount==
  
Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort
+
Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.
 
+
<source lang="xml">
+
<?xml version="1.0"?>
+
<ServerResponse>
+
  <result>Failure</result>
+
</ServerResponse>
+
</source>
+
 
+
==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.
+
  
 
<source lang="python">
 
<source lang="python">
#!/usr/bin/python
+
#!/usr/bin/python3
  
import httplib
+
import http.client
import urllib
+
import urllib.parse
  
params = urllib.urlencode({'METHOD':'setaccount', 'FirstName':'Tyrion', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'})
+
params = urllib.parse.urlencode({
conn = httplib.HTTPConnection("localhost", 8003);
+
    'METHOD': 'setaccount',  
conn.request("POST", "/accounts", params)
+
    'FirstName': 'Tyrion',  
 +
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/accounts", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print response.read();
+
print(response.read().decode())
</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>
  
PrincipalID ist die eindeutige ID des Benutzers. Hier wird es verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben.
+
PrincipalID ist die eindeutige ID des Benutzers. Hier wird sie verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben.
  
Wenn alles gut geht, sollten Sie folgendes zurückkommen
+
Wenn alles gut läuft, erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 178: Line 126:
 
Beachten Sie, dass sich der Vorname jetzt von Jon zu Tyrion geändert hat.
 
Beachten Sie, dass sich der Vorname jetzt von Jon zu Tyrion geändert hat.
  
Wenn der Anruf fehlschlägt, erhalten Sie folgende Antwort
+
==setpassword==
  
<source lang="xml">
+
Eine Passwortänderung erfolgt über den Authentifizierungsservice und nicht über den Benutzerkontoservice. Die erforderlichen Parameter sind leider etwas anders als die des Benutzerkontoservices. In diesem Fall müssen wir einen Aufruf an http://<robust-services-adresse>/auth/plain mit METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <neues-passwort> machen. Hier ist ein Beispiel
<?xml version="1.0"?>
+
<ServerResponse>
+
  <result>Failure</result>
+
</ServerResponse>
+
</source>
+
 
+
==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
+
  
 
<source lang="python">
 
<source lang="python">
#!/usr/bin/python
+
#!/usr/bin/python3
  
import httplib
+
import http.client
import urllib
+
import urllib.parse
  
params = urllib.urlencode({'METHOD':'setpassword', 'PRINCIPAL' : '3a1c8128-908f-4455-8157-66c96a46f75e', 'PASSWORD':'bing'})
+
params = urllib.parse.urlencode({
conn = httplib.HTTPConnection("localhost", 8003);
+
    'METHOD': 'setpassword',  
conn.request("POST", "/auth/plain", params)
+
    'PRINCIPAL': '3a1c8128-908f-4455-8157-66c96a46f75e',  
 +
    'PASSWORD': 'bing'
 +
})
 +
headers = {"Content-type": "application/x-www-form-urlencoded"}
 +
conn = http.client.HTTPConnection("localhost", 8003)
 +
conn.request("POST", "/auth/plain", params, headers)
 
response = conn.getresponse()
 
response = conn.getresponse()
print response.read();
+
print(response.read().decode())
</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>
  
Dies zielt darauf ab, Wilma Flintstones Passwort auf bing zu setzen und sie mit der PrincipalID zu identifizieren, die wir zuvor erhalten haben.  
+
Dies soll das Passwort von Wilma Flintstone auf "bing" setzen, wobei sie mit der PrincipalID identifiziert wird, die wir zuvor erhalten haben.
  
Bei Erfolg wird dies zurückgegeben
+
Wenn erfolgreich, liefert der Aufruf
  
 
<source lang="xml">
 
<source lang="xml">
Line 233: Line 160:
 
</source>
 
</source>
  
Bei Misserfolg,
+
Bei einem Fehler erhalten Sie
  
 
<source lang="xml">
 
<source lang="xml">
Line 242: Line 169:
 
</source>
 
</source>
  
==Einen Benutzer löschen==
+
==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.
+
Dies ist derzeit wahrscheinlich nicht möglich. Oder besser gesagt, es wurde noch nicht getan und zurückgemeldet, ob alles noch funktioniert oder ob es viele Probleme gibt.
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.
+
Die normale Methode, einen Benutzer zu "löschen", besteht darin, seinen UserLevel auf -1 zu setzen. Dadurch wird verhindert, dass er sich anmelden kann.
  
 +
Wenn Sie einen Benutzer mit demselben Namen erstellen müssen, benennen Sie den gelöschten Benutzer zuerst um (z.B. in Wilma Flintstone_<RANDOM-UUID>), bevor Sie einen mit dem alten Namen erstellen.
  
 
[[Category:German Translations]]
 
[[Category:German Translations]]

Latest revision as of 02:15, 3 September 2024

Contents

[edit] Einleitung

Normalerweise werden Benutzer in OpenSimulator über den Befehl "create user" auf der Regionskonsole (in Standalone-Konfiguration) oder auf der ROBUST-Service-Konsole (in Grid-Konfiguration) erstellt. Benutzer können jedoch auch erstellt werden, indem ein XMLRPC-Aufruf direkt an den ROBUST-Service gemacht wird.

Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar und kann derzeit nur in der Grid-Konfiguration verwendet werden. In Standalone-Konfiguration können Benutzer über den speziellen "create user"-Aufruf im Modul RemoteAdmin erstellt werden.

[edit] Setup

Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. In der [UserAccountService]-Sektion der Robust.ini setzen Sie:

[UserAccountService] AllowCreateUser = true AllowSetAccount = true

und in der [AuthenicationService]-Sektion:

[AuthenticationService] AllowSetPassword = true

Bitte beachten Sie, dass dadurch der Aufruf auf den UserAccountServiceConnector und AuthenticationServiceConnector freigelegt wird, wie im ServiceConnectors-Parameter in der [Startup]-Sektion oben in der Datei aufgelistet. Der Standardport (8003) ist einer, der nicht für andere Benutzer freigegeben werden sollte. Für die Anmeldung an OpenSimulator müssen Sie nur den Port freigeben, auf dem der LLLoginServiceInConnector läuft (standardmäßig 8002).

Dies bedeutet auch, dass diese Funktionen derzeit nicht auf einem offenen Grid aktiviert werden sollten (einem Grid, auf dem nicht vertrauenswürdige Dritte Simulator verbinden können).

[edit] Standard-Avatareinträge

Wenn Sie möchten, dass ein neuer Benutzer den initialen minimalen Körperteil-/Kleidungssatz (Haut, Form, Augen, Haare, Hose, Hemd) erhält, der erforderlich ist, damit er nicht nur als Gaswolke erscheint, stellen Sie sicher, dass

[UserAccountService] CreateDefaultAvatarEntries = true

in Robust.ini gesetzt ist. Diese Einstellung ist in der Robust.ini.example von OpenSimulator 0.7.4 und später bereits auf true gesetzt.

[edit] Nutzung

[edit] createuser

Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'createuser', 
    'FirstName': 'Jon', 
    'LastName': 'Snow', 
    'Password': 'test', 
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/accounts", params, headers)
response = conn.getresponse()
print(response.read().decode())

PrincipalID ist die eindeutige ID des Benutzers.

Wenn alles gut läuft, erhalten Sie

<?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>

[edit] setaccount

Hier ist ein Beispiel für ein Python-Programm, um diesen Aufruf zu machen. Es wird angenommen, dass Ihre ROBUST-Services auf localhost laufen.

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'setaccount', 
    'FirstName': 'Tyrion', 
    'PrincipalID': '3a1c8128-908f-4455-8157-66c96a46f75e'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/accounts", params, headers)
response = conn.getresponse()
print(response.read().decode())

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

Wenn alles gut läuft, erhalten Sie

<?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.

[edit] setpassword

Eine Passwortänderung erfolgt über den Authentifizierungsservice und nicht über den Benutzerkontoservice. Die erforderlichen Parameter sind leider etwas anders als die des Benutzerkontoservices. In diesem Fall müssen wir einen Aufruf an http://<robust-services-adresse>/auth/plain mit METHOD = setpassword, PRINCIPAL = <principalID> und PASSWORD = <neues-passwort> machen. Hier ist ein Beispiel

#!/usr/bin/python3
 
import http.client
import urllib.parse
 
params = urllib.parse.urlencode({
    'METHOD': 'setpassword', 
    'PRINCIPAL': '3a1c8128-908f-4455-8157-66c96a46f75e', 
    'PASSWORD': 'bing'
})
headers = {"Content-type": "application/x-www-form-urlencoded"}
conn = http.client.HTTPConnection("localhost", 8003)
conn.request("POST", "/auth/plain", params, headers)
response = conn.getresponse()
print(response.read().decode())

Dies soll das Passwort von Wilma Flintstone auf "bing" setzen, wobei sie mit der PrincipalID identifiziert wird, die wir zuvor erhalten haben.

Wenn erfolgreich, liefert der Aufruf

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

Bei einem Fehler erhalten Sie

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

[edit] Benutzer löschen

Dies ist derzeit wahrscheinlich nicht möglich. Oder besser gesagt, es wurde noch nicht getan und zurückgemeldet, ob alles noch funktioniert oder ob es viele Probleme gibt.

Die normale Methode, einen Benutzer zu "löschen", besteht darin, seinen UserLevel auf -1 zu setzen. Dadurch wird verhindert, dass er sich anmelden kann.

Wenn Sie einen Benutzer mit demselben Namen erstellen müssen, benennen Sie den gelöschten Benutzer zuerst um (z.B. in Wilma Flintstone_<RANDOM-UUID>), bevor Sie einen mit dem alten Namen erstellen.

Personal tools
General
About This Wiki