Copyright ©
Mindbreeze GmbH, A-4020 Linz, .
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.
Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
Bei SAML (Security Markup Language) handelt es sich um einen XML-basierten Standard für Authentifizierung und Authorisierung zwischen Identity Provider (IdP, Hersteller von Assertions) und Service Provider (Assertion Konsumenten) in einer Security Domain. Fabasoft Mindbreeze Enterprise Services, wie Index- und Client Service, sind Service Provider.
Als Identity Provider wird bei Mindbreeze das Open Source Produkt Shibboleth, der Internet-2-Middleware Initiative eingesetzt. Folgend wird die Installation und Konfiguration von Shibboleth, sowie die SAML-Konfiguration in Fabasoft Mindbreeze Enterprise beschrieben.
Die Shibboleth Konfigurationsdateien befinden sich im Installationsverzeichnis unter conf. Um Shibboleth mit Fabasoft Mindbreeze InSpire zu verwenden müssen die Dateien relying-party.xml und handler.xml verändert werden. Die nächsten beiden Abschnitte erläutern die notwendigen Schritte.
Damit der IdP Authentifizierungsanfragen von Fabasoft Mindbreeze Enterprise Services annimmt, müssen die Metadaten zu den Services (Entity Descriptor) für den IdP erreichbar sein. Die Metadaten werden in einem XML-Dokument definiert. Der Entities Descriptor der Mindbreeze InSpire Services ist über den Fabasoft Mindbreeze Inspire Management Center, unter der URL <inspire_url>:8443/saml20/sp/entitiesdescriptor, erreichbar. In der Datei relying-party.xml der Shibboleth-Konfiguration muss dieser URL folgendermaßen eingetragen werden:
<MetadataProvider id="<provider_id>"
xsi:type="FileBackedHTTPMetadataProvider"
xmlns="urn:mace:shibboleth:2.0:metadata"
metadataURL="<mesmaster_url>/saml20/sp/entitiesdescriptor"
backingFile="<backing_file_path>"
/>
<mesmaster_url> muss durch die URL von Fabasoft Mindbreeze Enterprise Master ersetzt werden und <backing_file_path> gibt den Pfad an, wo die Metadaten für schnelleren Zugriff zwischengespeichert werden. Beachten Sie, dass in <provider_id> keine Leerzeichen oder auch andere spezielle Zeichen vorkommen dürfen. Nach der Konfiguration muss der Server neu gestartet werden. Ändert sich der Entity Descriptor am Fabasoft Mindbreeze Enterprise Master muss Shibboleth ebenfalls neu gestartet werden.
Zusätzlich muss in der Datei relying-party.xml das SAML2SSOProfil das Attribut encryptNameIds wie im folgenden Beispiel dargestellt auf "never" gesetzt werden:
<ProfileConfiguration xsi:type="saml:SAML2SSOProfile"
includeAttributeStatement="true" assertionLifetime="300000"
assertionProxyCount="0" signResponses="conditional"
signAssertions="never" encryptAssertions="conditional"
encryptNameIds="never" />
Shibboleth verwendet HTML Cookies für Single Sign On. Wird lediglich Fabasoft Mindbreeze Enterprise mit diesem Identity Provider betrieben, kann man diese Option ausschalten. Dadurch ist gewährleistet, dass die Gültigkeit einer Sitzung lediglich durch die Mindbreeze Client Service Sessiondauer gesteuert wird. Dazu müssen folgende Zeilen in handler.xml auskommentiert oder gelöscht werden:
<LoginHandler xsi:type="PreviousSession">
<AuthenticationMethod>
urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession
</AuthenticationMethod>
</LoginHandler>
Shibboleth verwendet in der Standardeinstellung eine generierte ID als Assertion Subject. Da einige Funktionen in Fabasoft Mindbreeze Enterprise (z.B. die Suche im Dateisystem) den Namen des angemeldeten Benutzers benötigen, wird Shibboleth so konfiguriert, dass dieser als Assertion Subject übergeben wird. Folgende Änderungen müssen dazu an attribute-resolver.xml und attribute-filter.xml vorgenommen werden:
<resolver:AttributeDefinition id="principal"
xsi:type="PrincipalName" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
<resolver:AttributeEncoder xsi:type="SAML2StringNameID"
xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
nameFormat="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
/>
</resolver:AttributeDefinition>
<AttributeFilterPolicy id="releaseTransientIdToAnyone">
<PolicyRequirementRule xsi:type="basic:ANY" />
<AttributeRule attributeID="principal">
<PermitValueRule xsi:type="basic:ANY" />
</AttributeRule>
</AttributeFilterPolicy>
Um formularbasierte Authentifizierung zu aktivieren muss der UsernamePassword-Handler in handler.xml konfiguriert sein.
<LoginHandler xsi:type="UsernamePassword"
jaasConfigurationLocation="file:///C:/Shibboleth-idp/conf/login.config">
<AuthenticationMethod>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</AuthenticationMethod>
</LoginHandler>
Der Handler erlaubt den Benutzern die Anmeldung über Anmeldeformular. Das Attribut jaasConfigurationLocation gibt die Konfigurationsdatei von Java Authentication and Auhtorization (JAAS) an. In dieser Konfigurationsdatei (C:/Shibboleth-idp/conf/login.config) muss das Kerberos Login Modul, wie in folgendem Beispiel, eingetragen werden:
ShibUserPassAuth {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab="true"
keyTab="C:\Shibboleth-IDP-2.1.5\mindidpsh2.keytab";
};
Der Name des Login Moduls muss "ShibUserPassAuth" lauten. Die keytab-Datei enthält die Anmeldedaten des Servicebenutzers von Shibboleth.
Zusätzlich müssen, bei Verwendung von Tomcat, in der Konfigurationsdatei <TOMCAT_HOME>/conf/catalina.properties folgende Zeilen hinzugefügt werden:
java.security.krb5.realm=<REALM>
java.security.krb5.kdc=<domain_controller>
<REALM> ist dabei durch den Kerberos REALM zu ersetzen und <domain_controller> durch den vollqualifizierten Domain Namen des Kerberos Domain Controllers (z.B. dc1.mydomain.com).
Die Validierung der Client-Zertifikate erfolgt über den Servlet-Container. Um das Assertion Subject zu bekommen, verwendet Shibboleth den RemoteUser Login-Handler. Dieser wird in handler.xml konfiguriert, z.B.:
<LoginHandler xsi:type="RemoteUser">
<AuthenticationMethod>
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
</AuthenticationMethod>
</LoginHandler>
Als Benutzername wird das Common Name (CN) Feld des Zertifikats verwendet. Zusätzlich muss der SSLAuthFilter im Servlet-Container eingespielt und konfiguriert werden. Kopieren Sie dazu das auf dem Installationsmedium unter Server/(CPU_ARCH)/prerequisites verfügbare SSLAuthFilter.jar-Archiv in das WEB-INF/lib-Verzeichnis der Shibboleth Web-Anwendung und fügen Sie folgende Zeilen in den entsprechenden Abschnitt von web.xml ein:
<filter>
<filter-name>SSLAuthFilter</filter-name>
<filter-class>
com.mindbreeze.tomcat.filters.ClientCertificateFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SSLAuthFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Außerdem muss der Standard-Connector von Tomcat umkonfiguriert werden. Das Attribute clientAuth muss von "want" auf "true" geändert und das truststoreAlgorithm-Attribut gelöscht werden. Nach den Änderungen sollte der Connector wir folgt aussehen:
<Connector port="8443" maxHttpHeaderSize="8192" maxSpareThreads="75"
scheme="https" secure="true" clientAuth="true"
SSLEnabled="true" sslProtocol="TLS"
keystoreFile="IDP_HOME/credentials/idp.jks" keystorePass="PASSWORD"
truststoreFile="IDP_HOME/credentials/idp.jks" truststorePass="PASSWORD"/>
Die für die Validierung verwendeten CA-Zertifikate müssen in den Truststore eingespielt werden. Verwenden Sie dazu z.B. das Programm keytool, das mit Java installiert wird:
keytool –importcert –alias <certificate_alias> -keystore <idp_keystore> -file <certificate file>
<certificate_alias> wird dem importieren Zertifikat als eindeutiger Name zugewiesen. Beim Aufruf des Kommandos muss das Keystore-Passwort eingegeben werden.
Um ein Zertifikat aus dem Keystore zu entfernen, führen Sie folgendes Kommando aus:
keytool –delete –alias <certificate_alias> -keystore <idp_keystore>
Zuletzt muss der Identity Provider neu gestartet werden.
Um SAML-basierte Authentifizierung für Benutzer aus einem LDAP Verzeichnis zu aktivieren, muss der Identity Provider entsprechend konfiguriert werden, dass er das Benutzername/Passwort Paar gegen den LDAP Server prüft.
Um einen LDAP Benutzer zu authentifizieren, wird ein spezieller Servlet-Filter benötigt (analog zum Szenario mit SSL Client-Side-Certificates in Kapitel ). Dieser Filter schickt dem Client eine HTTP BASIC Challenge und prüft die eingegebenen Daten mittels JAAS Login gegen einen LDAP Server. Ist diese Anmeldung erfolgreich, so wird dem Client eine Antwort mit dem eingegebenen Benutzernamen als "Assertion Subject" geschickt. Wie im obigen Szenario muss auch hier der RemoteUser Login Handler aktiviert werden.
Zur weiteren Konfiguration des Identity Provider sind folgende Schritte nötig:
Der Wert für das "remoteUser" Attribut, das vom Shibboleth RemoteUser Login Handler benötigt wird, wird direkt aus dem Benutzernamen der HTTP Basic Challenge übernommen. Dies wird von einem Servlet Filter namens BasicLDAPAuthFilter erledigt, der im Paket MindbreezeAuthenticationFilters.jar enthalten ist. Die Shibboleth-Servlet-Konfigurationsdatei web.xml muss entsprechend angepasst werden, so dass der oben genannte Filter in der normalen Filter Chain eingehängt wird. Folgende Zeilen werden hierfür in der Datei <tomcat_home>/webapps/idp/web.xml benötigt:
<filter>
<filter-name>BasicLDAPAuthFilter</filter-name>
<filter-class>
com.mindbreeze.tomcat.filters.BasicLDAPAuthFilter
</filter-class>
<init-param>
<param-name>LoginConfPath</param-name>
<param-value><JAAS configuration path></param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> BasicLDAPAuthFilter </filter-name>
<url-pattern>/Authn/*</url-pattern>
</filter-mapping>
Zusätzlich muss der Pfad zu einer JAAS Login-Konfigurationsdatei beim Parameter LoginConfPath eingestellt werden.
In der JAAS Login-Konfigurationsdatei (wie oben beschrieben) wird ein JAAS Login-Modul für den Identity Provider konfiguriert. Das Modul muss den Namen ShibUserPassAuth tragen, als Klasse für den LDAP Login kann com.sun.security.auth.module.LdapLoginModule verwendet werden. Eine Beispielkonfiguration sieht wie folgt aus:
ShibUserPassAuth {
com.sun.security.auth.module.LdapLoginModule required
userProvider="<ldap_url>”
useSSL="false"
userFilter="(&(cn={USERNAME})(objectClass=person))";
};
Als userProvider muss hier eine LDAP URL eingetragen werden, die auf die im LDAP verwalteten Benutzerobjekte zeigt. Ein Beispiel:
ldap://ldapserv.mydomain.com:389/ou=people,dc=myfolder,dc=mydomain,dc=com
Der Parameter userFilter spezifiziert einen Suchfilter um den Benutzereintrag im LDAP-Verzeichnis zu finden und wird verwendet, um den DN des Benutzers zu isolieren. Die Syntax ist analog zu LDAP Filter Strings (RFC 2254). Der Teilstring {USERNAME} wird hierbei durch den Benutzernamen, der beim Basic Dialog eingegeben wird, ersetzt, bevor der Filter angewendet wird.
Die Login-Klasse com.sun.security.auth.module.LdapLoginModule verwendet standardmässig SSL-verschlüsselte Verbindungen um sich am LDAP Server anzumelden. Sollte eine SSL-Verbindung nicht möglich sein, so kann man dies mit dem useSSL Parameter deaktivieren.
Nähere Informationen zur Konfiguration finden sich unter:
Mit Shibboleth 4.x ist es wichtig, dass das Attribut welches als SAML NameID verwendet wird, für die Mindbreeze InSpire Relying Party freigegeben ist. Dafür fügen Sie folgende Zeilen in die <idp_home>/conf/attribute-filter.xml Konfigurationsdatei ein:
<AttributeFilterPolicy id="mesuid">
<PolicyRequirementRule xsi:type="Requester" value="<mes_relying_party_id>" />
<AttributeRule attributeID="uid">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>
</AttributeFilterPolicy>
Ersetzen Sie "<mes_relying_party_id>" mit die SAML Entity ID des Mindbreeze InSpire Client Services. In diesem Beispiel wird das „uid“ Attribut als SAML Principal verwendet.
Für die freigegebene „uid“ Attribut muss noch ein NameID Generator definiert werden. In der Konfigurationsdatei <idp_home>/conf/saml-nameid.xml finden Sie das „<util:list id="shibboleth.SAML2NameIDGenerators">“ Element. Fügen Sie in die Liste ein
„shibboleth.SAML2AttributeSourcedGenerator“-Element ein mit folgenden Settings:
<util:list id="shibboleth.SAML2NameIDGenerators">
<ref bean="shibboleth.SAML2TransientGenerator" />
<!-- Uncommenting this bean requires configuration in saml-nameid.properties. -->
<!--
<ref bean="shibboleth.SAML2PersistentGenerator" />
-->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
p:attributeSourceIds="#{ {'uid'} }" />
</util:list>
Es wird hier als Quelle das vorher freigegebene „uid“ Attribut verwendet.
In <idp_home>/conf/relying-party.xml fügen Sie folgendes Element in die „shibboleth.RelyingPartyOverrides“ Liste ein:
<bean parent="RelyingPartyByName" c:relyingPartyIds="<mes_relying_party_id>">
<property name="profileConfigurations">
<list>
<bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />
</list>
</property>
</bean>
Ersetzen Sie "<mes_relying_party_id>" mit der SAML Entity ID des Mindbreeze InSpire Client Services.
Folgen Sie zunächst den Schritten im Abschnitt „Hochladen der IdP Metadaten“ und laden Sie den Entity Descriptor von Shibboleth (metadata/idp-metadata.xml) auf Ihre Mindbreeze InSpire Appliance. Nach dem Hochladen des Shibboleth Entity Descriptors starten sich die Mindbreeze InSpire Services automatisch neu. Bitte warten Sie kurz, bis der Entity Descriptor von Mindbreeze generiert wurde. Diesen können Sie dann unter <inspire_url>:8443/saml20/sp/entitiesdescriptor finden. Den Entity Descriptor können Sie anschließend auf Ihrem Shibboleth Server unter beispielsweise metadata/mindbreeze.xml hochladen. Letztendlich ist der Pfad zu dem Mindbreeze Entity Descriptor unter conf/metadata-providers.xml entsprechend zu setzen:
…
<MetadataProvider id="LocalMetadata" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/mindbreeze.xml"/>
…
Um SAML mit ADFS (Active Directory Federation Services) in Mindbreeze zu verwenden, müssen folgende Schritte durchgeführt werden:
Hier die Mindbreeze Service Provider Entities Descriptor Datei hochladen. Der Entities Descriptor der Mindbreeze InSpire Services ist über den Fabasoft Mindbreeze InSpire Management Center, unter der URL <inspire_host>:8443/saml20/sp/entitiesdescriptor, erreichbar wenn die SAML Konfiguration auf dem Mindbreeze InSpire Server fertig ist.
Setzen Sie einen Namen für die Relying Party. Wenn gewünscht ist, kann Multi-Faktor Authentisierung auch konfiguriert werden.
Setzen Sie die Berechtigungen auf die Relying Party auf „Alle Benutzer“ (Permit all users to access this relying party).
Hier wählen Sie „Transform an Incoming Claim“ aus. Geben Sie einen Namen für das Claim. Um die Konfiguration abzuschließen müssen Sie noch für „Outgoing claim type“ „Name ID“ angeben und für Outgoing name ID format“ „Unspecified“.
Für die Konfiguration von Microsoft Azure Active Directory als SAML-Identitätsprovider muss für den Mindbreeze InSpire Client Service eine Enterprise-Applikation erstellt werden.
Melden Sie sich beim Azure-Portal als Cloud Application Admin oder als Application Admin für Ihren Azure AD-Tenant an.
Navigieren Sie zu "Azure Active Directory" > "Enterprise applications" und fügen Sie eine neue Applikation hinzu, indem Sie auf die Schaltfläche "New application" klicken.
Wählen Sie " Non-gallery application " als Anwendungstyp, legen Sie den Namen der neuen Applikation fest und klicken Sie auf "Add".
Navigieren Sie zu “Manage” > “Single Sign-on” und wählen Sie dann "SAML", um eine SAML-basierte SSO für die erstellte Anwendung einzurichten.
Laden Sie nun die generierten SAML Federation Metadata XML für den IDP im Abschnitt "SAML Signing Certificate" herunter.
Installieren Sie die IDP-Metadaten in Mindbreeze wie im Abschnitt "Konfiguration von SAML in Mindbreeze" beschrieben und rufen Sie die SAML-Metadaten des Service Providers von der Mindbreeze InSpire-Appliance über den Link <inspire_url>:8443/saml20/sp/entitiesdescriptor ab
Wenn der Service Provider Metadaten File nur die Entity Descriptor eines Mindbreeze InSpire-ClientService enthält, kann die Metadatendatei des Dienstanbieters direkt hochgeladen werden, indem Sie auf "Upload metadata file" klicken.
Überprüfen Sie, ob die Einstellungen im Abschnitt "Basic SAML Configuration" nach dem Hochladen der Metadatendatei korrekt sind.
Wenn der Service Provider Metadaten File mehrere Entity Descriptoren für Mindbreeze InSpire-ClientServices enthält, müssen die "EntityID" und die "Assertion Consumer Service-URL" Parameter manuell von dem ClientService eingestellt werden, der dieser Enterprise Applikation zugeordnet ist.
Weisen Sie schließlich die Benutzer zu, die mit dieser Anwendung authentifiziert werden können. Navigieren Sie zu "Manage" > "Users and groups" im Applikation Menü.
Die Enterprise Applikation sollte damit bereit für die SAML-Authentifizierung mit einem Mindbreeze InSpire-ClientService sein.
Die Konfiguration von SAML in Mindbreeze erfolgt in vier Schritten:
Die Konfiguration erfolgt in der Registerkarte "Authentication".
Im Tab-Reiter Certificates ist es möglich, SSL Zertifikate hinzuzufügen. Das hinzuzufügende Zertifikat muss ein leeres "Import Password" haben und wird nach dem Hinzufügen in der Liste der Available SSL Certificates angezeigt.
Nach der Installation von Shibboleth liegt der Entity Descriptor des IdP im Installationsverzeichnis unter metadata/idp-metadata.xml. Dadurch können die Fabasoft Mindbreeze Enterprise Services auf den IdP zugreifen. Kontrollieren Sie vor dem Hochladen die Korrektheit der http(s)://host:port Einträge, diese werden bei der Installation von Shibboleth nicht immer korrekt angepasst. Beim Hochladen wird geprüft ob das Dokument dem SAML 2.0 Standard genügt. Nach erfolgreicher Prüfung erscheint "A valid SAML identity file is installed." bei "SAML ID status". Benutzen Sie die „Choose Cert“ Auswahlbox, um das SSL Zertifikat des entsprechenden Sibboleth Servers zu wählen (neue SSL Zertifikate können Sie in der Registerkarte „Certificates“ einspielen).
Anmerkung für Shibboleth 4.x:
Die IDP Metadaten für Shibboleth 4.x können mehrere Zertifikate enthalten die für Assertion Signierung oder Verschlüsselung verwendet werden können. Mindbreeze unterstützt nur jeweils ein Zertifikat für Signierung und Verschlüsselung. Es ist wichtig, dass die IDP Metadaten (idp-metadata.xml) vor dem Hochladen editiert werden. Dort müssen im IDPSSODescriptor-Element die KeyDescriptor-Einträge, die nicht für die Mindbreeze Relying Party verwendet sind, entfernt werden. Die verwendeten Zertifikate finden Sie unter shibboleth-idp/credentials. Bis auf die Zertifikate credentials/idp-encryption.crt (use =“encryption“) und credentials/idp-signing.crt (use=“signing“) sind die restlichen KeyDescriptor-Einträge aus dem idp-metadata.xml vor dem Hochladen auf Mindbreeze zu entfernen.
Anmerkung für Microsoft ADFS:
<IDPSSODescriptor protocolSupportEnumeration=“urn:oasis:names:tc:SAML:2.0:protocol“>
...
<KeyDescriptor use="signing">…</KeyDescriptor>
...
</IDPSSODescriptor>
Im Abschnitt "SAML Settings" können die Parameter "Session timeout" und "Metadata timeout" gesetzt werden. "Session timeout" legt die Lebensdauer einer SAML-Session in Minuten fest. Nach Ablauf dieser Zeit wird die Assertion erneuert. "Metadata timeout" dient dazu, die Anzahl der Tage fest, die die Metadaten der Service Provider für den Identity Provider gültig sind. Die Standardkonfiguration liegt bei fünf Minuten für "Session timeout" und sieben Tage für "Metadata timeout".
Diese Liste zeigt alle verfügbaren „Authenticator” IDs. Ein „Authenticator“ entspricht einem für die Authentifizierung verfügbaren Identity Provider Service. Verwenden Sie die „Certificate“ Auswahlbox, um das verwendete Zertifikat zu wählen.
Für Index Services und Client Services kann im Abschnitt "Enable/Disable SAML Authentication" die Verwendung von SAML über Checkboxen aktiviert werden. Wählen Sie für jedes aktivierte Client-Service in der Auswahlbox den entsprechenden „Authenticator“ aus.
Wenn für ein Client Service SAML Authentisierung aktiviert ist, muss der Parameter „External URL“ in die Client Service Konfiguration auf die externe URL des Client Services gesetzt sein. Der „External URL“ Parameter bestimmt die Basis URL für die SAML Service Provider Endpunkte.
Mindbreeze unterstützt die Konfiguration von Mindbreeze-Principals nach einer erfolgreichen SAML-Anmeldung mittels SAML-Attributen. Dadurch kann die Authentifizierung an Ihre individuellen Anforderungen angepasst werden. Wenn sich ein Benutzer am Client Service anmeldet, können zusätzliche Rollen oder Aliase in den Attributen der SAML-XML-Datei mitgeschickt werden.
Darüber hinaus ist es möglich, die Identität des suchenden Benutzers zu überschreiben. Mit Hilfe von Regex-Regeln kann sichergestellt werden, dass nur gewünschte Attribute und Attributwerte zu einer erfolgreichen Authentifizierung führen.
Es ist notwendig, den SAML IDP so zu konfigurieren, dass die gewünschten Rollen oder Aliase im saml:AttributeStatement Block der SAML-Antwort an den Mindbreeze Client Service enthalten sind.
Dabei werden auch mehrere Attributwerte pro Attribut, bzw. mehrere Attribute mit dem gleichen Namen unterstützt. Hier sehen Sie einen Auszug aus einer Beispiel-XML-Datei:
<saml:AttributeStatement>
<saml:Attribute Name="Principal"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">david.porter@mindbreeze.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="Role"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">mindbreeze_project_group</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="Role"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">mindbreeze_consulting_group</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="Alias"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">david.porter</saml:AttributeValue>
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:string">David Porter</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
Sie finden die Konfiguration der SAML-Attribut-Authentifizierung im Management Center Menüpunkt „Configuration“ im Tab „Client Service“ in der Sektion „SAML - Attribute-Based Principals Settings“.
Aktivieren Sie die Option „Configure Principals based on SAML Attributes“.
Mit der Einstellung „Required Attributes Patterns“ können Sie festlegen, welche Attribute und Attributwerte benötigt werden, um eine Authentifizierung als erfolgreich zu werten. Wenn nicht alle regulären Ausdrücke der „Required Attributes Patterns“ matchen, dann werden Requests strikt mit dem HTTP-Status-Code 403 beantwortet.
Die Option „SAML Identity Attribute Name“ bestimmt, welches Attribut für die Identität in der Mindbreeze InSpire Suche herangezogen wird. Dies überschreibt die Identität, die ansonsten über die SAML-Authentifizierung verwendet werden würde.
Falls es noch zusätzliche Aliase gibt, die in der Mindbreeze Suche als Principals verwendet werden sollen, konfigurieren Sie diese in „SAML Additional Principal Attribute Names“. Die Principal Attributes können mehrere oder einzelne Werte beinhalten.
Wenn Microsoft Entra ID als SAML Identity Provider verwendet wird, können die benutzerdefinierten Attribute für die SAML-Assertions wie folgt konfiguriert werden:
Weitere Claims können über " Add new claim " hinzugefügt werden. Einfache Benutzer-Attribute von Microsoft Entra Benutzern, wie E-Mail-Adresse, Name oder Nachname können durch das Auswählen aus der Liste der Quellattribute hinzugefügt werden. Für die erweiterte Claim-Konfiguration konsultieren Sie bitte die Dokumentation unter: https://learn.microsoft.com/en-us/entra/identity-platform/saml-claims-customization.
In der Mindbreeze InSpire Client Service Konfiguration können die konfigurierten Claims im Abschnitt "SAML Authentication Settings" als "SAML Additional Principal Attribute Names" und "SAML Identity Attribute Name" Einstellungen verwendet werden.
Wenn beispielsweise die Microsoft Entra ID Enterprise Application wie im obigen Beispiel konfiguriert ist und der Anwendungsfall erfordert, dass wir das Attribut „email address” (http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress) aus der SAML-Assertion als Benutzer-Principal verwenden, kann dies mit der folgenden Einstellung durchgeführt werden:
Einstellung | Wert |
SAML Identity Attribute Name | http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress |
Es kann auch ein Muster definieren werden, um den Attributwert des Attributs "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" zu überprüfen.