2021.06 2025.06

Access Key Manager

Dieses Kapitel stellt mit dem Access Key Manager eine Oberfläche zur Verwaltung von Zugriffsschlüsseln vor.

Access Key Manager ab LTS 2025.06

Ab LTS 2025.06 steht der Access Key Manager als Vue-Anwendung in mycore-acl bereit. Die eigentliche Komponente wird als npm-Paket @mycore-org/vue-access-key-manager bereitgestellt und kann damit auch in anderen Anwendungen verwendet werden. mycore-acl bindet das Paket ĂĽber Glue-Code (src/main/vue/access-key-manager2) ein, der Konfiguration, Ăśbersetzungen und Routing ĂĽbernimmt, beim Maven-Build gebaut und mit dem Modul ausgeliefert wird. Die Verwaltung erfolgt ĂĽber die REST-API V2, die erforderlichen Rechte sind unter Berechtigungen beschrieben. Die Anwendung wird ĂĽber das MCRVueRootServlet eingebunden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<servlet>
  <servlet-name>AccessKeyManager</servlet-name>
  <servlet-class>org.mycore.webtools.vue.MCRVueRootServlet</servlet-class>
  <init-param>
    <param-name>heading</param-name>
    <param-value>component.acl.accesskey.frontend.title.main</param-value>
  </init-param>
  <init-param>
    <param-name>properties</param-name>
    <param-value>MCR.ACL.AccessKey.Strategy.AllowedSessionPermissionTypes</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>AccessKeyManager</servlet-name>
  <url-pattern>/access-key-manager/*</url-pattern>
</servlet-mapping>

Der Manager kann fĂĽr alle ZugriffsschlĂĽssel oder fĂĽr eine bestimmte Referenz aufgerufen werden. FĂĽr eine bestimmte Referenz werden die verfĂĽgbaren Typen ĂĽber availablePermissions ĂĽbergeben:

  • /access-key-manager/admin/
  • /access-key-manager/admin/<reference>
  • /access-key-manager/<reference>?availablePermissions=<permissions>, z.B. availablePermissions=read,writedb

Access Key Manager bis LTS 2024.06

Allgemeines

Für die Verwaltung von Zugriffsschlüsseln steht mit dem Access Key Manager eine Web Component in deutscher und englischer Sprache bereit. Damit lassen sich Zugriffsschlüssel betrachten, hinzufügen, aktualisieren und löschen. Die Web Componente unterstützt das Format vollständig mit allen Eigenschaften. Zusätzlich sind Information wie der Ersteller, das Erstelldatum, der letzte Änderer und das Datum der letzten Änderung sichtbar. Die Zugriffsschlüssel werden initial sortiert anhand der letzten Änderung absteigend sortiert ausgegeben. Für die Einbindung sind dennoch diverse Voraussetzungen notwendig. Die Web Component besitzt keinen Shadow DOM, somit werden übergeordnete Styles übernommen. Abbildung 1 zeigt einen Screenshot der eingebundenen Web Component.

Abbildung 1: Screenshot der Access Key Manager Web Component

Voraussetzungen

Voraussetzungen fĂĽr die Nutzung sind die Einbindungen von accessKeyManager.js, Vue.js V2 und Bootstrap V4. Kurzerhand kann die Web Component anschlieĂźend ĂĽber <access-key-manager /> im HTML eingebunden werden, ein nutzbares Template steht bereit.

Konfiguration

Die Verwaltung geschieht ĂĽber die REST-API V2, die Autorisierung geschieht ĂĽber JWT. DafĂĽr ist die Web Component auf die WebApplicationBaseURL angewiesen, die im Javascript Global Namespace respektive window Objekt unter webApplicationBaseURL verfĂĽgbar sein muss:

1
2
3
<script>
  const webApplicationBaseURL = <!--WebApplicationBaseURL-->;
</script>

Die Id eines zu verwaltenden Objekts sollte grundsätzlich im Query-String der Seite, die die Component einbindet, mit objectID verfügbar sein, beispielsweise <WebApplicationBaseURL>/accesskeys/manager.xml?objectID=<Id>.
Achtung: Die Id muss eine achtstellige Zahl sein, sonst können möglicherweise Probleme auftreten. Alternativ kann die Id dennoch im window Objekt unter objectID gesetzt werden:

1
2
3
<script>
  const objectID = <!--Id-->;
</script>

Achtung: Bei einem Derivat muss analog zu einem Objekt zusätzlich die Id des Parent Objekts angegeben werden mit parentID im Query-String oder window Objekt: <WebApplicationBaseURL>/accesskeys/manager.xml?objectID=<Id>&parentID=<Parent>.

Optional kann die Sprache explizit ĂĽber currentLang im window Objekt eingestellt werden, ansonsten wird die Sprache als Fallback auf dem HTML oder der Browser-Umgebung abgeleitet. Der Manager steht in de (Deutsch) und en (Englisch) zur VerfĂĽgung:

1
2
3
<script>
  const currentLang = <!--{de, en}-->;
</script>

Standardmäßig nimmt der Manager an, dass der temporärer Zugriff möglich ist und zeigt bei der Erstellung eines Zugriffsschlüssel die URL für den direkt Zugriff an. Um dies zu deaktivieren, kann muss im window Objekt accessKeySession auf "false" gesetzt werden:

1
2
3
<script>
  const accessKeySession= "false";
</script>