UserManipulation/de
From OpenSimulator
(15 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | + | {{Quicklinks|UserManipulation}} | |
− | {{ | + | |
− | + | ||
− | Normalerweise werden Benutzer in OpenSimulator über den Befehl " | + | =Einleitung= |
− | Diese Funktion ist seit OpenSimulator 0.7.3 verfügbar | + | |
+ | 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. | ||
=Setup= | =Setup= | ||
− | Die Listener für einige der XMLRPC-Aufrufe auf ROBUST müssen explizit aktiviert werden. | + | 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 [AuthenicationService] | + | und in der [AuthenicationService]-Sektion: |
− | + | [AuthenticationService] | |
− | + | AllowSetPassword = true | |
− | Bitte beachten Sie, dass dadurch der Aufruf | + | '''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 | + | 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). |
− | ==Standard | + | ==Standard-Avatareinträge== |
− | Wenn Sie möchten, dass ein neuer Benutzer | + | 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 | + | 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. |
− | = | + | =Nutzung= |
− | == | + | ==createuser== |
− | Hier ist ein Beispiel | + | 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="python"> | <source lang="python"> | ||
− | #!/usr/bin/ | + | #!/usr/bin/python3 |
− | import | + | import http.client |
− | import urllib | + | import urllib.parse |
− | params = urllib.urlencode({'METHOD':'createuser', 'FirstName':'Jon', 'LastName':'Snow', 'Password':'test', 'PrincipalID':'3a1c8128-908f-4455-8157-66c96a46f75e'}) | + | params = urllib.parse.urlencode({ |
− | conn = | + | 'METHOD': 'createuser', |
− | conn.request("POST", "/accounts", params) | + | '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() | 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 | + | Wenn alles gut läuft, erhalten Sie |
<source lang="xml"> | <source lang="xml"> | ||
Line 72: | Line 80: | ||
</source> | </source> | ||
− | + | ==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. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Hier ist ein Beispiel | + | |
<source lang="python"> | <source lang="python"> | ||
− | #!/usr/bin/ | + | #!/usr/bin/python3 |
− | import | + | 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 = | + | '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> | ||
− | PrincipalID ist die eindeutige ID des Benutzers. Hier wird | + | PrincipalID ist die eindeutige ID des Benutzers. Hier wird sie verwendet, um den Benutzer zu identifizieren, den wir zuvor eingerichtet haben. |
− | Wenn alles gut | + | Wenn alles gut läuft, erhalten Sie |
<source lang="xml"> | <source lang="xml"> | ||
Line 123: | 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. | ||
− | + | ==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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Hier ist ein Beispiel | + | |
<source lang="python"> | <source lang="python"> | ||
− | #!/usr/bin/ | + | #!/usr/bin/python3 |
− | import | + | 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 = | + | '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> | ||
− | Dies | + | 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 | |
<source lang="xml"> | <source lang="xml"> | ||
Line 161: | Line 160: | ||
</source> | </source> | ||
− | Bei | + | Bei einem Fehler erhalten Sie |
<source lang="xml"> | <source lang="xml"> | ||
Line 170: | Line 169: | ||
</source> | </source> | ||
− | == | + | ==Benutzer löschen== |
− | Dies ist derzeit | + | |
− | + | 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 | + | |
− | 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
Languages: |
English Deutsch |
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.