Skip to main content
Skip table of contents

Zugriff über den User Identity Adapter

Mit dem User Identity Adapter lässt sich der Zugriff und die Bearbeitung von Controls und GridColumns über in Keycloak gespeicherte Benutzer beschränken.

Beispiele:

In einer Web App gibt es drei Keycloak-Benutzer:

  • Access: Zugriff auf allgemeine Inhalte

  • CEO: Zugriff auf Inhalte, die nur für den CEO sichtbar sein sollen

  • Admin: Zugriff auf Inhalte, die nur für den Administrator sichtbar sein sollen

Die Detail Component greift auf einen Technical Process (.wrf-Datei) zu, in dem der User Identity Adapter prüft, welcher Benutzer zurzeit angemeldet ist. Das auf den Adapter folgende Mapping prüft anschließend, auf welche Component der Benutzer Zugriff hat:

image-20240625-134720.png

Die Keycloak-Benutzer werden in den Eigenschaften (<Properties/>) der Detail Component angegeben:

XML
<?xml version="1.0" encoding="UTF-8"?>
<DetailComponent
	xmlns="http://softproject.de/webapp/1.0" process="AccessRights/LoadUserIdentityCard.wrf">
	<Properties>
		<Property name="ACCESS" type="Complex">
		<Property name="CEO" type="Boolean"/>
		<Property name="ADMIN" type="Boolean"/>
		</Property>
	</Properties>
...
</DetailComponent>

Mapping mit Prüfung der Zugriffsrechte:

XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="xs" version="2.0"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output media-type="text/xml" method="xml"/>
  <xsl:template match="/">
    <Ok>
      <ACCESS>
        <CEO>
          <xsl:choose>
            <xsl:when test="//Roles/Role = 'ceo'">true</xsl:when>
            <xsl:otherwise>false</xsl:otherwise>
          </xsl:choose>
        </CEO>
        <ADMIN>
          <xsl:choose>
            <xsl:when test="//Roles/Role = 'admin'">true</xsl:when>
            <xsl:otherwise>false</xsl:otherwise>
          </xsl:choose>
        </ADMIN>
      </ACCESS>
    </Ok>
  </xsl:template>
</xsl:stylesheet>
<!--Created by X4 Designer, Copyright © SoftProject GmbH. All rights reserved.-->
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.