Rollen in Keycloak
Diese Dokumentation ist für B2B Administratoren vorgesehen
Rollen-Management
Das Rollenmanagement in Keycloak kann über die Seite Rollen durchgeführt werden. Sie können die Rollen über das Menü auf der linken Seite aufrufen, wie Sie in der Abbildung unten sehen können. Bitte stellen Sie sicher, dass Sie sich im richtigen Realm (hier b2b-qa) befinden.
Standard-Rollen
Die Registerkarte Default Roles kann verwendet werden, um Rollen zur Liste der Realm-Standardrollen hinzuzufügen, wie im Screenshot unten gezeigt. Sobald sich eine Rolle in der Liste der Realm-Standardrollen befindet, wird sie automatisch jedem neuen Benutzer zugewiesen, der in diesem Realm angelegt wird.
Ansichts- und Suchrollen
Die Liste der verfügbaren Rollen ist weiter unten auf dieser Seite zu sehen.
Der Benutzer kann Rollen anhand des Rollennamens suchen, wie in der Abbildung unten gezeigt.
Rollen hinzufügen
Der Benutzer kann neue Rollen hinzufügen, indem er auf die Schaltfläche Add Role (Rolle hinzufügen) in der oberen rechten Ecke der Rollentabelle klickt. Siehe Screenshot unten.
Rolle hinzufügen: Der Benutzer kann den Rollennamen und seine Beschreibung hinzufügen und auf die Schaltfläche “Speichern” klicken, wie im Screenshot unten gezeigt.
Rollen bearbeiten
Der Benutzer kann Rollen bearbeiten, indem er auf die Schaltfläche Edit rechts unter den Aktionsspalten in der Rollentabelle klickt. Siehe Screenshot unten.
Der Benutzer kann die Rollenbeschreibung bearbeiten. (Die Funktion “Composite Roles” wird nicht verwendet)
Der Benutzer kann auch die an diese Rolle gebundenen Benutzer anzeigen. Siehe Screenshot unten.
Rollen löschen
Der Benutzer kann jede beliebige Rolle löschen, indem er in der Rollentabelle in der Spalte Aktionen auf die Schaltfläche Delete klickt, wie in der Abbildung unten dargestellt.
Wenn Sie auf Löschen klicken, wird ein Bestätigungsdialogfeld angezeigt, um das Löschen zu bestätigen. Der Benutzer kann auf “Delete” klicken, um die Rolle zu löschen, oder auf “Cancel”, um zurückzugehen.
Liste der verfügbaren Rollen
Dies sind die verfügbaren Rollen im B2B-, und FSS-Bereich mit ihren kurzen Beschreibungen
Rolle | Description |
---|---|
b2bbp | Standardrolle für den Zugriff auf das B2B-Backend. Wird für die meisten Aufgaben in B2B-UI & B2B-Admin-UI benötigt. |
B2B-Dashboard | So greifen Sie auf die Dashboard-Seite in der B2B-UI zu |
B2B-Edijson-Read | Rolle um (via OAuth2) die Nachrichten im edi-json Format oder deren json Meta-Daten abrufen zu können |
B2B-Edijson-Write | Rolle um (via OAuth2) Nachrichten im edi-json Format zum (ausgehenden) Versand in die B2B zu geben |
B2B-MessageMonitor-Read | So greifen Sie auf den B2B Messagemonitor in der B2B-UI zu inkl. den Schaltflächen zum CSV/ZIP Herunterladen |
B2B-MessageMonitor-TechnicalDetails | So greifen Sie auf die technischen Details einer Nachricht im B2B Messagemonitor zu |
B2B-MessageMonitor-Write | So greifen Sie auf die Schaltflächen zum Tabelle anpassen, Statusänderung und direkte Neustart-Aktionen zu |
B2B-MpidEditor-Read | Um lesen Zugriff auf den MPID Editor zu erhalten |
B2B-MpidEditor-Write | Um auf die Schaltflächen zum Erstellen, Löschen, Ändern von E-Mails und Synchronisieren von allen Daten im MPID Editor zuzugreifen |
B2B-MpidEditor-Write-ContactData | Um auf die Schaltflächen zum Erstellen, Ändern, Löschen und Herunterladen von Martpartner-Kontaktdaten im MPID Editor zuzugreifen |
B2B-SystemSwitch | So erhalten Sie Zugriff auf das Systemweichen-Modul in der B2B-UI |
B2B-SystemSwitchAdmin | Um Kanalfilter zu haben und die Kanalspalte im Systemweichen-Modul anzuzeigen |
B2B-ManualMarketCommunication | So greifen Sie auf das Modul Manuelle Marktkommunikation in der B2B-UI zu |
B2B-General | Bereitstellung des Zugriffs auf alle Funktionen in B2B-UI, die nicht durch eine andere spezifische Rolle geschützt sind (sollte nur in Ausnahmefällen zum Einsatz kommen) |
FSS-CertificateManager-Read | Um Zertifikate im Fastlane Security Server anzuzeigen |
FSS-CertificateManager-Write | Um zusätzliche Aktionen wie Hinzufügen, Aktualisieren und Löschen im Fastlane Security Server durchzuführen |
FSS-RuleManager-Read | So zeigen Sie sich das Regelwerk im Fastlane Security Server an |
FSS-RuleManager-Write | Um zusätzliche Aktionen wie Hinzufügen, Aktualisieren und Löschen im Rregelwerk des Fastlane Security Servers durchzuführen |
FSS-Crl | Um Zugang zum Herunter-, oder Hochladen von Sperrlisten im Fastlane Security Server zu erhalten |
FSS-Message | Zum Schutz des Zugriffs auf Prozesse wie Ver-/Entschlüsselung/Signieren/Verifizieren auf die E-Mail-Nachrichten, AS/2-Nachrichten und AS/4-Nachrichten im Fastlane Security Server. Diese Rolle wird nur vom Server, nicht jedoch von Menschen benötigt. |
FSS-SystemInfo | Zeigt erweiterte Informationen über das FSS Backend in der VersionsInfo der FSS-UI an. |
CERT-MANAGER-WRITE | Upload von LDIF verpackten Zertifikaten über den Certificate-Manager. |
B2BAdmin-Dashboard | So greifen Sie auf die Dashboard-Seite in der B2B-Admin-UI zu |
B2BAdmin-Customizing | Für Admin UI, um die Administrationsseite sichtbar zu machen |
B2BAdmin-LockTables | Erlaubt den Zugriff auf die LockTables (lesend & schreibend) |
B2BAdmin-QueueMonitor-Read | Erlaubt es die Queue zu inspizieren |
B2BAdmin-QueueMonitor-Write | Erlaubt es, Queue Einträge neuzustarten |
B2BAdmin-CommunicationRelations-Read | Erlaubt lesenden Zugriff auf die Kommunikationsbeziehungen (AS2) |
B2BAdmin-CommunicationRelations-Write | Erlaubt das Bearbeiten von Kommunikationsbeziehungen (AS2) |
B2BAdmin-SystemInfo | So erhalten Sie Zugang um Systeminformationen anzuzeigen |
B2BAdmin-SystemErrors-Read | Systemfehler können angezeigt werden |
B2BAdmin-SystemErrors-Write | Systemfehler können gelöscht werden |
B2B-Errors | So greifen Sie auf die Fehlerliste in der Navigationsleiste zu (für Admins interessant) |
RevisionManager-Read | Erlaubt lesenden Zugriff auf Revisionsdaten |
RevisionManager-Write | Erlaubt das Bearbeiten von Revisionsdaten |
B2B-UserMessages-Read | Erlaubt dem Benutzer UserMessages zu empfangen |
B2B-UserMessages-MarkRead | So können Usermessages als gelesen markiert werden. (Wird ab dem Dez-2020-Release nicht mehr benötigt) |
B2B-UserMessages-Write | Gestattet den Zugriff zur UserMessages Administration |
B2B-IndexManagement | Ermöglicht den Zugriff auf das IndexManagement (dieses unterstützt nur lesenden Index-Zugriff) |
B2BPortal-UI | Erlaubt den Zugriff auf die Portal-UI |
Liste der verfügbaren Rollen in AS4
Dies sind die verfügbaren Rollen im AS4 mit ihren kurzen Beschreibungen
Rolle | Description |
---|---|
AS4-TENANT-READ | Lesender Zugriff auf die Mandanten. |
AS4-TENANT-WRITE | Schreibender Zugriff auf die Mandanten: erstellen, bearbeiten, löschen |
AS4-PARTNER-READ | Lesender Zugriff auf alle Partneradressen-Relationen |
AS4-PARTNER-WRITE | Schreibender Zugriff auf die Partneradressen-Relationen: erstellen, bearbeiten, löschen |
AS4-PATHSWITCH-READ | Lesender Zugriff auf Pathswitch Requests und Confirmations |
AS4-PATHSWITCH-WRITE | Erlaubt einen Pathswitch Request zu erstellen. |
AS4-MESSAGE-READ | Lesender Zugriff auf Business Messages und Receipts. |
AS4-MESSAGE-WRITE | Erlaubt Business Messages und Receipts zu löschen. |
AS4-CSR-READ | Erlaubt es, CSRs zu downloaden. |
AS4-CSR-WRITE | Erlaubt es, CSRs, Schlüsselpaare und Zertifikate zu generieren, zu erneuern oder zu sperren. |
AS4-CRL-READ | Erlaubt es, den Sperrlistenstatus für Zertifikate zu updaten. |
Weitere Rollen
Rolle | Description |
---|---|
FSS-CertificateManager-SMPKI-Read | Diese Rolle darf im Kontext von AS4/B2B NICHT vergeben werden. Sie dient der Kompatibilität zu MBSE. |
Benutzerbindung mit Rollen
Die Benutzer in keycloak können an eine bestimmte Rolle oder mehrere Rollen gebunden sein. Der Benutzer kann auf die Benutzerliste über das Menü auf der linken Seite zugreifen, wie in der Abbildung unten dargestellt.
Der Benutzer kann nach einem bestimmten Benutzer suchen oder auf “View all users” klicken, um Benutzer in der Tabelle anzuzeigen. Bitte sehen Sie sich den untenstehenden Screenshot an, um ein Beispiel zu sehen.
Der Benutzer kann auf die Schaltfläche “Edit” unter der Spalte Actions in der Benutzertabelle klicken, um eine Rolle für diesen Benutzer hinzuzufügen oder zu entfernen. Siehe Screenshot unten.
Rolle zum Benutzer hinzufügen: Der Benutzer kann zur Registerkarte “Role mappings” gehen (wie im Screenshot unten gezeigt) und in der Registerkarte Available Roles die Rolle auswählen, die hinzugefügt werden muss, und auf die Schaltfläche “Add selected” klicken, um sie hinzuzufügen.
Rolle vom Benutzer entfernen: In ähnlicher Weise kann ein Benutzer die Rolle von dem Benutzer entfernen, indem er eine Rolle in den * *Assigned Roles** auswählt und dann auf die Schaltfläche “Remove selected” klickt. Siehe Bildschirmfoto unten.
Gruppen
Die verfügbaren Rollen können gruppiert werden, und es kann eine Rollengruppe erstellt werden, die einem Benutzer zugewiesen wird. Dies ist nützlich, um Zeit zu sparen, wenn die gleichen Rollen mehreren Benutzern wiederholt zugewiesen werden.
Der Benutzer kann auf die Gruppenseite über das Menü auf der linken Seite zugreifen, wie in der Abbildung unten gezeigt. Der Benutzer kann dann auf die Schaltfläche “New” klicken, um eine Gruppe mit der/den darin enthaltenen Rolle(n) zu erstellen.
Gruppe erstellen: Der Benutzer kann den Namen der Gruppe festlegen und auf “Save” klicken.
Der Benutzer wird zu diesem Bildschirm umgeleitet, wo er dann zur Registerkarte “Role Mappings” navigieren und die Rollen zur Gruppe hinzufügen kann.
Gruppe löschen: Der Benutzer kann jede beliebige Gruppe auf der Seite Gruppenliste löschen. Siehe Screenshot unten. Bitte beachten Sie, dass jeder Benutzer, der an diese Gruppe gebunden ist, automatisch freigegeben wird.
Binden der Rollengruppe an den Benutzer: Ein Benutzer kann an eine beliebige Gruppe gebunden werden, indem er auf die Seite Benutzer geht und zur Registerkarte “Groups” wechselt, um die Gruppe wie in der Abbildung unten gezeigt, einzustellen.
Vererbung von Rollen über Gruppenhierarchie: Rollen lassen sich über eine Gruppenhierarche vererben. Nach Anlegen mehrerer Gruppen können diese mit Cut und Paste einander zugeordnet werden. Wird ein Benutzer an eine Ebene der Gruppenhierarchie gebunden, erhält er alle Rollen aus allen übergeordneten Gruppen. Die aktiven Rollen sind im jeweiligen Benutzer unter Role Mappings in der Liste “Effective Roles” ersichtlich.
Mandanten in Keycloak
Attribute der Mandanten
Die Mandanten können in der Keycloak Benutzerkonfiguration als Attribut festgelegt werden. Die Mandantenfilterung kann verwendet werden, um den Zugriff auf Systeme einzuschränken, auf die der Benutzer zugreifen kann. Diese Filterung auf bestimmte Mandanten kann in Modulen vorgenommen werden, indem das Benutzerattribut in der keycloak Benutzerkonfiguration als Attribut eingerichtet wird.
B2B
Das im B2B zu verwendende Mandantenattribut ist tenants. Wenn das Attribut vorhanden ist, werden die Daten im Modul auf das System beschränkt, das an diesen Mandant gebunden ist. Die Zuordnung von Mandant zu System wird in den B2B Extensions vorgenommen.
Der Name der Extension lautet TENANTS und die Konfiguration erfolgt im Inhalt.
Beispielwerte der Zuordnung von Mandanten zu einem System in der Extension:
- NETZBETREIBER=99007700000002
- LIEFERANT=9912345678798094,9912345678798095,991234567878798096
Wie Sie oben sehen können, können einem Mandant mehrere Systeme Kommagetrennt zugeordnet werden. Die Systeme sind Komma-separiert anzugeben. (Es dürfen keine 2 Kommas direkt aufeinander folgen. Außerdem darf der Wert nicht mit einem Komma beginnen.)
Schauen wir uns nun die Anwendungsfälle an.
Mit tenants = all können Benutzer auf alle Systeme zugreifen. Wenn der Benutzer ein Attribut als Tenants = all gesetzt hat, kann er also alle Nachrichten in der B2B-UI für alle Systeme sehen. Ein Beispiel finden Sie im folgenden Screenshot.
In ähnlicher Weise kann das Attribut tenants auf einen einzigen Mandanten gesetzt werden, um den Datenzugriff für diesen Benutzer nur für diesen Mandanten einzuschränken.
B2B-UI: Der Datenzugriff für den Benutzer kann für Nachrichten den MPID Editor eingeschränkt werden. Beispiel für das Setzen eines Mandantenattributs: Dadurch werden die Daten im Nachrichtenmonitor auf das System beschränkt, das zu * *NETZBETREIBER** gehört.
Einige Richtlinien:
- Wenn der Benutzer keinen Mandanten zugewiesen hat, aber die Mandantenfilterung aktiv ist (die Extension TENANTS existiert), kann der Benutzer NICHTS sehen
- Wenn (der Benutzer keinen Mandanten hat und) die Mandantenfilterung nicht aktiv ist (die Extension TENANTS existiert nicht), kann der Benutzer alles sehen
- Wenn der Benutzer einen Mandanten hat, der nicht Teil der Extension TENANTS ist, kann der Benutzer nichts sehen.
Mandant general
Es gibt Nachrichten, die keinem Mandanten zugeschrieben werden können. Dazu gehören z.B. Jobnachrichten, dass bestimmte Jobs ausgeführt wurden.
Diese Nachrichten können dem User angezeigt werden, indem dem User zusätzlich der Mandant all
zugewiesen wird.
Ein User der all
Nachrichten sehen kann, kann also die Jobnachrichten ALLER Mandanten sehen, und sollte entsprechend vom Unternehmen
berechtigt sein, mandantenübergreifend zu arbeiten.
Falls ILNs in der Extension TENANTS nicht gepflegt wurden, handelt es sich um eine Fehlkonfiguration der B2B. Diese fehlenden ILNs können
ebenfalls von einem User mit dem all
Attribute gesehen werden.
AS4
Die Mandantenkonfiguration für AS4 erfolgt analog zur B2B. Da das AS4-System jedoch keinen Zugriff auf die B2B Extension hat, sind als
Tenant-Attribut in Keycloak schlicht MPIDs (oder alternativ all
) anzugeben.
FSS
Das im FSS zu verwendende Mandantenattribut ist fss_tenants. Die Zuordnung des Clients zum System erfolgt im FSS table client.
Ähnlich wie bei B2B sind die Daten im Modul auf das System beschränkt, das an diesen Client gebunden ist, wenn das Attribut vorhanden ist. Wenn das Attribut jedoch nicht konfiguriert ist, sucht FSS nach tenants und lädt die entsprechenden Daten, die an den Client gebunden sind.
FSS-UI: Beispiel für das Setzen eines FSS-Mandantenattributs: Dadurch werden die Daten der Zertifikate und die Regeln eingeschränkt.
Einige Richtlinien:
- Wenn der Benutzer die Rolle eines Administrators hat, kann er jedes Zertifikat unabhängig vom Attribut der Mandanten sehen.
- Wenn fss_tenants vorhanden ist, wird dieses Attribut genutzt.
- Wenn fss_tenants nicht konfiguriert ist, wird das Attribut tenants genutzt.
- Wenn das Attribut des Mandanten undefiniert oder ungültig ist, kann der Benutzer nur “undefinierte” Zertifikate und Regeln sehen. Dies ist das Standardverhalten wenn die Mandantenfilterung nicht genutzt wird.
- Wenn kein Attribut fss_tenants und tenants vorhanden ist, kann der Benutzer nur “undefinierte” Zertifikate und Regeln anzeigen.
- Mit fss_tenants = all können Benutzer auf alle Systeme zugreifen.
- Wenn fss_tenants ist nicht konfiguriert ist und tenants = all gilt, können Benutzer auf alle Systeme zugreifen.
Tenant Mapper
Der Tenant Mapper muss für jede Keycloak-Client-Applikation, welcher die Mandantenfilterung unterstützen soll, auf der Client-Konfiguration Seite eingestellt werden. Aktuell sind das insbesondere b2b-functional-ui & fss-ui.
B2B
Gehen Sie zur Seite Client und wählen Sie z.B. den Client b2b-functional-ui (analog auch für alle anderen Clients).
Gehen Sie dann zur Registerkarte Mapper und klicken Sie auf Create, wie unten im Bildschirmfoto gezeigt.
Fügen Sie den Mapper mit den folgenden Werten hinzu, wie in der Abbildung unten gezeigt.
FSS
Gehen Sie zur Seite Client und wählen Sie den Client fss-ui aus.
Gehen Sie dann zur Registerkarte Mapper und klicken Sie auf Create, wie unten im Bildschirmfoto gezeigt.
Fügen Sie den Mapper mit den folgenden Werten hinzu, wie in der Abbildung unten gezeigt.
Mandanten über Gruppen
Falls Sie die Mandanten nicht direkt den Usern, sondern Gruppen zuweisen möchten, und User mehreren Gruppen zugehörig sein sollen, ist das folgende Vorgehen anzuwenden:
Ähnlich wie Rollen können Mandantenattribute Gruppen zugewiesen werden. Das tenants
Attribut gilt dann für die User mit entsprechender
Gruppe. Durch diese Einstellungen werden Attribute mehrerer Gruppen aggregiert und die User sehen mehrere Mandanten.
Beispiel: der User Müller kann Nachrichten von Netz & Lief sowie allgemeine Nachrichten sehen, da er selber über das
Mandantenattribut tenants=general
verfügt und zusätzlich den Gruppen NETZ & LIEF zugeordnet ist, welche jeweils über die
Attribute tenants=netz
& tenants=lief
verfügen.
Für dieses Feature müssen für jede UI im Keycloak Tenant-Mapper
die Eigenschaften Multivalued
und Aggregate attribute values
aktiviert werden.
Clients
Clients im Keycloak sind Browser-Anwendungen oder Webdienste, die ein Login (genauer ein Token) anfordern können. Auch Applikationen, die per Keycloak abgesichert angesprochen werden, sind als Client im Keycloak zu konfigurieren. Zu jedem Client lässt sich aus Keycloak eine keycloak.json exportieren. Diese ist an geeigneter Stelle an der jeweiligen Applikation zu hinterlegen. Genauere Details folgen im Kontext der Applikationen. Manchmal müssen die Daten der keycloak.json auch in eine andere Form gebracht werden, z.B. eine application.yml.
Die derzeit konfigurierten Clients sind die neuen Mikro-Frontends und ihre jeweiligen Backends, die den keycloak.json benötigen, sind wie folgt
Client | Frontend/Backend |
---|---|
admin-ui | Microfrontend |
b2b-functional-ui | Microfrontend |
fss-ui | Microfrontend |
b2b-tomcat-war | Backend |
fss | Backend |
Keycloak Konfiguration
Die Datei keycloak.json ist die Datei, die benötigt wird, um die Konfiguration im Mikro-Front-End für die Verbindung zum keycloak-Server zur Authentifizierung und Autorisierung mit bestimmten Einstellungen vorzunehmen. Diese kann vom Keycloak-Server exportiert werden.
keycloak.json exportieren
Die Datei keycloak.json kann vom Keycloak-Server über die Clients-Seite exportiert werden. Siehe Bildschirmfoto unten. Wählen Sie den Client aus, für den Sie die Datei keycloak.json exportieren möchten.
Navigieren Sie zur Registerkarte Installation und wählen Sie die Format Option:Keycloak OIDC JSON.
Sie können die Vorschau der Datei keycloak.json sehen, wie im Bildschirmfoto unten gezeigt. Klicken Sie auf die Download-Schaltfläche, um diese als Json-Datei zu exportieren.
keycloak.json importieren
Die keycloak.json wird vom Mikro-Frontend benötigt, um eine Verbindung mit dem keycloak-Server zur Authentifizierung und Autorisierung herzustellen. Um diese Datei zu erhalten, lesen Sie bitte den Abschnitt keycloak.json exportieren in diesem Kapitel.
Sobald Sie diese Datei erhalten haben, legen Sie sie im Projektverzeichnis des Mikro-Frontends ab: microfrontend-deployment/assets/config
The basic template for the keycloak.json file looks like this:
{“auth-server-url”: “https://
“realm”: “
“disableAuth”: false,
“resource”: “b2b-functional-ui”
}
Anmerkung: Die bestehende Eigenschaft “disableAuth”: false in der keycloak.json sollte weiterhin beibehalten werden.
keycloak.json sollte eine Ressource (Client-ID) enthalten, die genau der auf dem keycloak-Server festgelegten entspricht. Beispiel:
“resource”: “b2b-functional-ui”
Wenn diese Eigenschaft nicht enthalten ist, wird auf die im Code festgelegten Standardwerte zurückgegriffen:
admin-ui
user-messages-ui
b2b-functional-ui
fss-ui
revisionInfo-ui
portal-ui
index-management-ui
View Me Edit Me