Ab Intrexx Version 12.0.0: Anmeldeinformationsspeicher (Credential Store)
Der Anmeldeinformationsspeicher (Credential Store) ist ein sicherer zentraler Speicher mit einem eigenen Namensraum. Sie finden ihn im Modul "Integration" links unterhalb des Eintrags "Verbindungsdatenverwaltung".
Hier können Anmeldeinformationen (Credentials), die in Prozessen verwendet werden, unabhängig von den Prozessen gespeichert und zur Laufzeit zur Verfügung gestellt werden.
Der Credential Store ist Voraussetzung für die Verwaltung von Prozessen in öffentlichen Git-Repositorys sowie für die Weitergabe von Prozessen an Dritte. Er ermöglicht eine verbesserte Staging-Umgebung vom Test- zum Produktionsbereich.
Im rechten Bereich werden die im Portal definierten Credentials mit Namen, Beschreibung und Datum der letzten Änderung aufgelistet.
Oben rechts finden Sie die Schaltfläche "Anmeldeinformation hinzufügen". Ein Klick darauf öffnet einen Dialog, über den neue Credentials erstellt werden können.
Credential erstellen
Der Name des Credentials muss eindeutig sein und darf nur folgende Zeichen enthalten: [a-z][A-Za-z0-9]*.
Das Passwort entspricht dem Wert des Credentials.
Bei Bedarf kann hier auch eine Beschreibung eingetragen werden.
Klicken Sie "OK", um die Änderungen zu speichern und den Dialog wieder zu schließen.
Anmeldeinformation bearbeiten"
Öffnet einen Dialog, in dem die Daten des aktuell in der Liste markierten Credentials bearbeitet werden können.
Credential bearbeiten
Der Name des Credentials kann nicht geändert werden. Passwort und Beschreibung können bearbeitet werden. Klicken Sie "OK", um die Änderungen zu speichern und den Dialog wieder zu schließen. Die Änderungen werden dabei sofort übernommen und stehen zur Laufzeit von Prozessen zur Verfügung.
Anmeldeinformation entfernen
Löscht das aktuell in der Liste markierte Credential. Beim Entfernen wird geprüft, ob das ausgewählte Credential in Prozessen verwendet wird. Wenn ja, wird entsprechend abfragt, ob das Credential dennoch gelöscht werden soll.
Verwendung in Intrexx anzeigen
Öffnet einen Dialog, in die Prozesse angezeigt werden, die das Credential verwenden.
Verwendung in Intrexx
Hier wird geprüft, in welchen Prozessen das ausgewählte Credential verwendet wird. Die gefundenen Prozesse werden in einer Liste angezeigt.
Klicken Sie "OK", um die Änderungen zu speichern und den Dialog wieder zu schließen.
Aktualisieren
Über das Hauptmenü "Anmeldeinformationsspeicher / Aktualisieren" oder die entsprechende Schaltfläche in der Symbolleiste kann die Credentialliste neu vom Server geladen werden.
credentialstore.cfg
Alle Credentials werden in der XML-Datei "credentialstore.cfg" im Portalverzeichnis "internal/security/credentialstore" gespeichert. Hier ein Beispiel:
<?xml version="1.0" encoding="UTF-8"?>
<credentials xmlns="http://schemas.intrexx.com/intrexx/2024/credential-store/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.intrexx.com/intrexx/2024/credential-store/ http://schemas.unitedplanet.de/intrexx/2024/package/de/uplanet/lucy/server/credentialstore/cfg/res/credentialstore.xsd">
<credential name="exchangeOnline" lastModified="2024-03-11T15:39:35.690Z" value="ixape-v1:58C100AF640BE086AFCCFF866ECA5405EF4325DF">
<description>Client Secret für Exchange Online</description>
</credential>
<credential name="imapServer" lastModified="2024-03-11T16:14:19.615Z" value="ixape-v1:1D9640EF237F1AFA2EADF6DF3AF253D3ED4EEAC2BD1911039E383E63FF02F8">
<description>Passwort für Standard-IMAP-Server</description>
</credential>
<credential name="imapServerTest" lastModified="2024-03-13T15:49:02.189Z" value="ixape-v1:58C100AF640BE086AFCCFF866ECA5405EF4325DF">
<description>Passwort für den Test-IMAP-Server</description>
</credential>
</credentials>
Credentials in Prozesselementen
Im Modul "Prozesse" können in den Eigenschaften von Prozesselementen Credentials an verschiedenen Stellen ausgewählt und auch neu erzeugt und im Credential Store aufgenommen werden. Das Passwort kann alternativ auch direkt im Prozess gespeichert werden.
Credentials werden im BeanProperty in der Form "urn:credentialStore:credentialName" gespeichert, wobei "credentialName" der Name des Cedentials ist, der im Credential Store vergeben wurde.
IMAP-Ereignisquelle (Typ "Standard IMAP")
Bei der IMAP-Ereignisquelle kann das Passwort in den Eigenschaften des Elements auf dem Reiter "E-Mail-Server" festgelegt werden.
Wenn Sie auf den nach unten gerichteten kleinen
Pfeil rechts neben dem Schlüsselsymbol
klicken, wird ein Menü geöffnet, in dem Sie auswählen können, ob das Passwort mit dem Prozess gespeichert (Standard) oder aus dem
Anmeldeinformationsspeicher bezogen werden soll.Wenn Sie "Aus Anmeldeinformationsspeicher" auswählen, ändert sich das
Schlüsselsymbol
und das Eingabefeld für das Passwort wird zur Auswahlliste, aus der Sie das gewünschte Credential auswählen können. Im Prozess wird dann der Name des Credentials gespeichert.
Wenn Sie direkt auf das Schlüsselsymbol klicken, wird ein Dialog geöffnet, in dem bestehende Credentials bearbeitet und auch neue Credentials angelegt werden können.
Anmeldeinformation auswählen
Hier werden alle bestehenden Credentials aufgelistet. Mit Klick auf
"Anmeldeinformation hinzufügen" können von hier aus neue
Credentials erstellt und bestehende Credentials
bearbeitet werden.
IMAP-Ereignisquelle (Typ "Exchange Online")
Hier kann statt des Passworts das Anwendungsgeheimnis (Client Secret) auf die selbe Weise festgelegt oder ausgewählt werden wie bei der IMAP-Ereignisquelle mit dem Typ "Standard IMAP".
Generische Elemente
Beim Bearbeiten eines Properties gibt es die Möglichkeit, mit Klick auf
"Wert aus Anmeldeinformation einfügen" ein Credential auszuwählen, wenn das Property vom Typ "String" ist und in der Runtimeklasse beim Setter und Getter des Bean-Properties die Annotation "@SecurityCredential" gesetzt ist.
@SecurityCredential
public String getPassword()
{
return m_strPassword;
}
@SecurityCredential
public void setPassword(String p_strPassword)
{
m_strPassword = p_strPassword;
}
Reiter "Expert"
Die Verwendung von Credentials über den Reiter "Expert" in den Eigenschaften von Prozesselementen funktioniert analog zur Vorgehensweise bei Generischen Elementen.
Groovy API
Für den Zugriff auf den Credential Store gibt es das Kontextobjekt "g_credentials". Weitere Informationen finden Sie hier.
Sicherheit
Für die Sicherheit des Credential Stores gibt es folgende Maßnahmen:
-
Die Werte der Credentials werden obfuskiert in der "credentialstore.cfg" gespeichert.
-
Rechteprüfung: Benutzer benötigen zum Hinzufügen, Bearbeiten oder Entfernen von Credentials das Portalrecht "Sicherheitseinstellungen verwalten".
-
Eingeschränkter Transport zwischen Client und Server: Die Werte der Credentials werden nur beim Hinzufügen oder Bearbeiten vom Client zum Server transportiert. Umgekehrt werden keine Werte vom Server zum Client transportiert.
-
Beim Prozessexport werden nur die Namen der Credentials exportiert, keine Werte. Während oder nach dem Prozessimport können die Werte durch den Benutzer neu gesetzt werden, wenn das erforderliche Portalrecht vorhanden sind.
-
Beim Portalexport werden in der Standardeinstellung die Werte der Credentials aus der credentialstore.cfg entfernt. Nach dem Portalimport können die Werte durch den Benutzer neu gesetzt werden, wenn das erforderliche Portalrecht vorhanden sind.
Veröffentlichung von Prozessen
Prüfung auf undefinierte Credentials
Vor dem Veröffentlichen eines Prozesses wird geprüft, ob die im Prozess verwendeten Credentials im Portal definiert sind. Dabei werden die Bean Properties der Elemente, sowie die Groovy-Skripte geprüft.
In einem Prozess können undefinierte Credentials vorkommen - z.B. wenn ein importierter Prozess ein Credential enthält, das im aktuellen Portal nicht vorhanden ist. Wenn es im Prozess undefinierte Credentials gibt, dann wird ein entsprechender Hinweis angezeigt, in dem auch auf mögliche Probleme beim Veröffentlichen oder bei der Ausführung des Prozesses hingewiesen wird. Der Benutzer hat die Möglichkeit, das Veröffentlichen fortzusetzen oder abzubrechen.
In den Eigenschaften der Elemente werden undefinierte Credentials mit dem Zusatz (undefiniert) gekennzeichnet (Ausnahme: Generische Elemente und Reiter "Expert").
Hinweise-Tab
Zusätzlich zur Hinweismeldung werden im Bereich "Hinweise" die betreffenden Elemente und ggf. Groovy-Skript-Dateien aufgelistet. Das Warndreieck zeigt bei Mauskontakt die Beschreibung des Eintrags an.
Mit Doppelklick auf ein Element wird dieses auf der Arbeitsfläche hervorgehoben.
Auch Groovy-Skript-Dateien können angezeigt werden können. Beim Doppelklick auf den entsprechenden Eintrag öffnet sich der Skripteditor. Der Cursor springt in die Zeile der ersten Verwendung eines undefinierten Credentials.
metaCredential.xml
Beim Veröffentlichen werden die im Prozess verwendeten Credential-Namen in die neue Datei "metaCredential.xml" im Prozessverzeichnis geschrieben. Die Credential-Namen werden aus der Datei "model.xml", sowie aus Dateien mit der Endung ".groovy" gesammelt.
<meta xmlns="http://schemas.intrexx.com/intrexx/2024/meta/credential/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.intrexx.com/intrexx/2024/meta/credential/ http://schemas.unitedplanet.de/intrexx/2024/package/de/uplanet/lucy/credentialstore/meta/res/metacredential.xsd">
<credential name="imapServer"/>
<credential name="imapServerTest"/>
<credential name="myCredential"/>
</meta>
Prozessimport
Wenn in mindestens einem der für den Import ausgewählten Prozesse ein Credential verwendet wird, dann wird im Import-Assistenten die neue Seite "Anmeldeinformationen" angezeigt.
Hier werden die Namen der Credentials aus den ausgewählten Prozessen angezeigt. Quelle der Namen ist jeweils die Datei "metaCredential.xml".
Klicken Sie in der ersten Spalte der Credential-Liste auf "Info", um anzuzeigen,
in welchen Prozessen das Credential verwendet wird. In der zweiten Spalte wird der Credential-Name angezeigt.
In der dritten Spalte finden Sie ein Kontrollkästchen, über das ein Credential neu angelegt werden kann, falls es im Zielportal noch nicht vorhanden ist.
Anmeldeinformation konfigurieren
Mit Klick auf "Anmeldeinformation konfigurieren" wird ein Dialog geöffnet,
über den das neue Credential konfiguriert werden kann. Bei Neuanlage muss das Credential konfiguriert werden, d.h. es muss ein Passwort vergeben werden. Der Name des Credentials muss eindeutig sein und darf nur folgende Zeichen enthalten: [A-Za-z][A-Za-z0-9]*. Optional kann auch eine Beschreibung eingetragen werden.
Wenn das Kontrollkästchen gesetzt und das neue Credential konfiguriert ist, dann wird es beim Importvorgang dem Credential Store hinzugefügt.
Für die Neuanlage von Credentials wird das Portalrecht "Sicherheitseinstellungen verwalten" benötigt.
In der vierten Spalte wird angezeigt, ob es eine Zuordnung für das Credential aus dem Credential Store des Portals gibt. Die Zuordnung erfolgt automatisch, wenn im Portal ein Credential mit demselben Namen wie im Importpaket vorhanden ist. Eine Zuordnung mit einem anderen Namen ist nicht möglich, da die Verwendung in Groovy-Skripten nicht zu 100% ermittelt werden kann und daher eine Anpassung des Namens nicht in jedem Fall möglich wäre.
Alternativ können fehlende Credentials auch sofort zum Credential Store des Portals hinzugefügt werden. Öffnen Sie dazu den Credential Store über die Schaltfläche "Anmeldeinformationsspeicher öffnen". Weitere Informationen dazu finden Sie hier.
Beim Beenden des Dialogs werden die Zuordnungen zum Portal aktualisiert.
Wenn nicht alle Credentials zugeordnet sind oder die Neuanlage von Credentials nicht vollständig konfiguriert ist, wird bei Klick auf "Weiter" eine Hinweismeldung angezeigt. Der Import kann auf Nachfrage trotzdem fortgesetzt werden.
Portalexport
Mit der Einstellung "Anmeldeinformationsspeicher leeren" werden die Werte (Passwörter) der Credentials in der Datei "internal/security/credentialstore/credentialstore.cfg" im Portalexport entfernt und damit auch nicht übernommen. Vorhandene Credentials werden dann nur mit Namen und Beschreibung exportiert. Das hat den Vorteil, dass die Credentials mit Namen und Beschreibung nach dem Portalimport noch im Credential Store vorhanden sind und pro Credential auch angezeigt werden kann, in welchen Prozessen diese verwendet werden.
Hier die Datei "credentialstore.cfg" nach dem Portalexport mit aktivierter Option:
<?xml version="1.0" encoding="UTF-8"?>
<credentials xmlns="http://schemas.intrexx.com/intrexx/2024/credential-store/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.intrexx.com/intrexx/2024/credential-store/ http://schemas.unitedplanet.de/intrexx/2024/package/de/uplanet/lucy/server/credentialstore/cfg/res/credentialstore.xsd">
<credential name="exchangeOnline" lastModified="2024-03-11T15:39:35.690Z">
<description>Client Secret für Exchange Online</description>
</credential>
<credential name="imapServer" lastModified="2024-03-11T16:14:19.615Z">
<description>Passwort für Standard-IMAP-Server</description>
</credential>
<credential name="imapServerTest" lastModified="2024-03-13T15:49:02.189Z">
<description>Passwort für den Test-IMAP-Server</description>
</credential>
</credentials>
Namen und Beschreibung der Credentials bleiben erhalten, so dass nach dem Portalimport nur die Werte neu gesetzt und nicht alle Credentials neu angelegt werden müssen. Dadurch bleibt auch der Bezug zu den Prozessen erhalten, so dass man sich z.B. die Verwendung des Credentials im Credential Store anzeigen lassen kann. In der Standardeinstellung ist die Einstellung "Anmeldeinformationsspeicher leeren" gesetzt.
Allgemeine Informationen zum Thema "Portalexport" finden Sie hier.
Portalexport per Script
-
Linux: $INTREXX_HOME/bin/linux/exportportal.sh
-
MaxosX: $INTREXX_HOME/bin/macosx/exportportal.sh
-
Windows: %INTREXX_HOME%/bin/windows/exportportal.bat
USAGE: portalexport [options] Options: --destination=<destination> destination directory, Default is <IntrexxDir>/export. --format=<format> output format. Possible values are zip, tar, tgz and plain. Default format is zip. --ignoreNoExport Ignore the .noexport flag in folders --cleanMailConfig Clear mail configuration --exportPassword Database passwords will exported. On default no database passwords will exported. --exportCredentialStore Expors the credentials store with passwords. On default the credential store will exported without passwords. --exportTrustStore The certificate store will be exported. On default the original credential store from the blank portal will exported. --skipFiles Skip files of data groups --optimize Use speed optimized data format --compress Compress database exports --verbose Verbose mode --silent Silent mode
Portalimport
Beim Portalimport wird die Datei "credentialstore.cfg" wie im Portalexport vorhanden in das Portal übernommen. Bei fehlenden Werten wird im Credential Store ein Warndreieck bei dem jeweiligen Credential angezeigt. Außerdem wird im Bearbeiten-Dialog auf den fehlenden Wert hingewiesen. Das Passwort kann dort neu gesetzt werden.
In den Eigenschaften von Elementen werden Credentials ohne Wert mit dem Zusatz "(ohne Passwort)" gekennzeichnet - mit Ausnahme von generischen Elementen und auf dem Reiter "Expert".