2019.06 2020.06

Managen der internen Rollen und Nutzer

Beschreibung der Möglichkeiten der Administration interner Rollen und Nutzer online und über das CLI.

Allgemeines

MyCoRe bietet ein komplexes System zum Laden und Bearbeiten von Rollen und Nutzern. Dies kann sowohl online über die Nutzung von Servlet-Schnittstellen wie auch offline via Kommandos erfolgen. Daneben ist es möglich externe Authentifizierungsmechanismen einzubenden, welche aber nicht auf dieser Seite erläutert werden sollen.

Initialisierung des Rollen- und Nutzersystems

Beim neu Anlegen einer Anwendung ist darauf zu achten, dass das Rollen- und Nutzersystem angelegt wurde. dies geschiet mit dem folgenden Kommando. Anschließend ist die Rolle admin und der Nutzer administrator mit dem Password alleswirdgut angelegt. Dieses sollte geändert werden!!!

init superuser
Das Kommando initialisiert das Benutzersystem.

Rollen

Die XML-Ausprägung von Rollen ist relativ simpel gehalten. Sie enthält nur den Namen der Gruppe und einige beschreibende Elemente.

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<role name="editor">
  <label xml:lang="de"
    text="Die Beispielrolle editor"
    description="Eine Rolle zur Beschreibung der editor Gruppe" />
  <label xml:lang="en"
    text="The demo editor role"
    description="A role demonstration for an editor group" />
</role>

Online-Administration

Alle Rollen in MyCoRe in einer spezielle Klassifikation mcr-roles gespeichert und nutzen damit die Funktionalitäten des Klassifiaktionssystems. Dies gilt auch für die Bearbeitung der Rollen. Hier kommt auch der Klassifikationseditor zu Einsatz.

Um die Administration der Rollen abzusichern, ist die Klassifikation mcr-roles über das Rechtesystem abgesichert. Für die Bearbeitung der Klassifikation mcr-roles sind daher Zugriffsrechte writedb und deletedb für diese Klassifikation in den ACL-Listen einzutragen. Hierbei ist die konkrete Ausprägung abhängig von der genutzten Zugriffs-Strategie.Beispielsweise könnte der Eintrag für die Strategie 2 wie folgend aussehen:

update permission writedb for id default_class with rulefile grant-admins.xml update permission deletedb for id default_class with rulefile grant-admins.xml

Nun kann der Klassifikationseditor für die Rollen mit /authorization/roles-editor.xml aufgerufen werden. Dieser Aufruf kann beispielweise in der Benutzernavigation bei entsprechender Berechtigung angeboten werden.

Kommandos

Über die MyCoRe Kommandozeile können auch alle administrativen Operationen für Rollen ausgeführt werden.

add roles from user file {0}
Das Kommando läde Rollen aus einem vorgegeben File {0}.
import role from file {0}
Das Kommando importiert eine Rolle aus einem vorgegeben File {0}.
list all roles
Das Kommando listet alle konfigurierten Rollen auf.
list role {0}
Das Kommando listet eine konfigurierte Rolle {0}.
assign user {0} to role {1}
Das Kommando weist einen Benutzer {0} eine Rolle {1} zu.
unassign user {0} to role {1}
Das Kommando entfernt einen Benutzer {0} von einer Rolle {1}.
delete role {0}
Das Kommando löscht eine Rolle.

Nutzer

Die Attribute von Benutzern des Systems unterteilen sich in drei Bereiche:

  1. Account-Informationen: dazu gehören ID, Passwort, Name, E-Mail-Adresse, ggf. Besitzer des Nutzers
  2. Rollenzugehörigkeiten: ein Nutzer kann beliebig vielen Rollen angehören, z.B. administrator und editor
  3. Attribute: hier können beliebige Eigenschaften des Nutzers abgelegt werden

Mit der Eigenschaft locked kann man festlegen, ob der Nutzer seine Daten selber ändern darf oder nicht. Ist locked auf true gesetzt, dürfen alle Daten geändert werden. Setzt man den Wert auf false , darf der Nutzer nur sein Passwort ändern. Alle anderen Daten sind geschützt und können nur vom Administrator geändert werden.

Die Nutzer werden in der Datenbank abgespeichert, die XML-Repräsentation eines Benutzerobjektes zeigt das folgende Codebeispiel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<user locked="false" name="editorTest" realm="local">
  <owner name="administrator" realm="local" />
  <realName>Testnutzer - Bearbeiter</realName>
  <eMail>mailadresse@des-nutzers.de</eMail>
  <lastLogin>2014-11-14T16:50:07Z</lastLogin>
  <roles>
    <role name="editor" />
  </roles>
  <attributes>
    <attribute name="sex"         value="male" />
    <attribute name="institution" value="Bibliothek der Beispieluniversität" />
    <attribute name="street"      value="Musterstraße 1" />
    <attribute name="city"        value="Musterort" />
    <attribute name="postalcode"  value="12345" />
    <attribute name="tel"         value="+49 111 222 3333" />
  </attributes>
  <password hashType="sha1" hash="passwdsalt" />
</user>

Online-Administration

Für die Verarbeitung der Nutzerdaten ist das MCRUserServlet zuständig. Der Parameter 'action' bestimmt, was getan werden soll. Mögliche Werte sind show , save , delete , password (ggf. mit Angabe der 'id' als zweiten Parameter). Standardmäßig wird die Aktion search aufgerufen, diese listet alle Nutzer im System auf.

Für die Online-Arbeit muss der ausführende Nutzer das Privileg administrate-users haben. Um neue Benutzer anzulegen ist weiterhin das Privileg create-users erforderlich.

Die mycore-user2-Komponente stellt verschiedene Editoren für den Umgang mit dem Nutzer bereit, die in der folgenden Übersicht beschrieben werden:

Datei Beschreibung Beispielaufruf
new-user.xed Erfassungsmaske zur Erstellung eines neuen Nutzers authorization/new-user.xed?action=save
action=show Nutzerdaten anzeigen servlets/MCRUserServlet?action=show&id=editorTest
change-user.xed Daten eines Nutzers ändern authorization/change-user.xed?action=save&id=editorTest
change-password.xed Passwort des angegebenen Nutzers ändern authorization/change-password.xed?action=password&id=editorTest
XSL.step=confirmDelete Löschen des Nutzers mit Sicherheitsabfrage servlets/MCRUserServlet?action=show&id=editorTest&XSL.step=confirmDelete

Kommandos

Über die MyCoRe Kommandozeile können auch alle administrativen Operationen für Nutzer ausgeführt werden.

export all users to directory {0}
Das Kommando exportiert alle Nutzerdaten als XML-File in das Verzeichnis {0}.
import all users from directory {0}
Das Kommando importiert alle Nutzerdaten XML-Files aus dem Verzeichnis {0}.
update all users from directory {0}
Das Kommando aktualisiert alle Nutzerdaten aus den XML-Files aus dem Verzeichnis {0}.
list all users
Das Kommando listet alle vorhandenen Nutzer aus.
list user {0}
Das Kommando listet den Benutzer {0} aus.
import user {0} from File {1}
Das Kommando importiert einen Benutzer aus dem XML-File {1}.
export user {0} to file {1}
Das Kommando exportiert die Benutzerdaten in ein XML-File {1}.
set password for user {0} to {1}
Das Kommando setzt das Password für den Nutzer neu.
enable user {0}
Das Kommando setzt den Benutzer {0} auf 'enabled'. Der Benutzer kann sich einloggen.
disable user {0}
Das Kommando setzt den Benutzer {0} auf 'disabled'. Der Benutzer kann sich nicht mehr einloggen.
delete user {0}
Das Kommando löscht den Benutzer {0}.