Inhalt/Content
Konfigurieren von Azure Active Directory
Der erste Schritt zur Umstellung auf SSO-Anmeldung mit SAML in iAGENT ist die Einrichtung einer Unternehmensanwendung im Azure Active Directory. Die wichtigsten Schritte sind im folgenden Dokument beschrieben:
https://learning.postman.com/docs/administration/sso/saml-in-azure-ad/
Die Benutzer, die sich in iAGENT anmelden können sollen, müssen der neu erstellten Enterprise Application als Benutzer hinzugefügt werden.
Als Standard-Antwort-URL sollte die Index-Seite des Agenten verwendet werden. Diese URL wird nur verwendet, wenn die Authentifizierungsanfrage keine AssertionConsumerServiceURL liefert. Die Authentifizierungsanfrage von einem iAGENT-System liefert immer eine AssertionConsumerServiceURL.
Folgende URLs sollten als Antwort-URLs gesetzt werden:
- Standard: https://<hostname>/agent/client/index.imail (Verwenden Sie index.jsp auf Entwicklersystemen. Die Standard-Antwort-URL darf keine Platzhalterzeichen enthalten)
- https://<Hostname>/agent/*
- https://<Hostname>/iMail/*
Die Platzhalter-URLs sind notwendig, um den iAGENT-Deeplink-Mechanismus zu unterstützen. Die Antwort-URL, die von der Authentifizierungsanfrage geliefert wird, kann eine beliebige gültige URL innerhalb eines iAGENT-Systems sein (um direkt eine bestimmte Ansicht zu öffnen).
Wenn Sie den Test-Button im Single-Sign-On Menü verwenden, sollten Sie auf die Login-Seite des iAGENT-Systems weitergeleitet werden. Bei diesem Test wird keine Anmeldung am iAGENT-System durchgeführt. Das Anzeigen der Anmeldeseite zeigt jedoch an, dass die Anfrage erfolgreich war.
Konfigurieren des iAGENT Systems
Zunächst einmal muss der Browser einen Internetzugang haben. Der Microsoft Login-Server (login.microsoftonline.com) muss erreichbar sein. Zusätzlich muss die SAML-Authentifizierung verfügbar sein (Projekt „ecom-saml-client“). Dazu müssen die notwendigen Bibliotheken bereitgestellt werden.
Hinzufügen der Abhängigkeiten in Eclipse
Um die benötigten Bibliotheken in einer Eclipse-Entwicklungsumgebung hinzuzufügen, muss die „build.custom.gradle“ der Projekte „ecom-iagent-eclipse-imail-agent“ und „ecom-iagent-eclipse-routing“ um folgende Abhängigkeit erweitert werden:
- runtime ‚com.novomind.ecom:ecom-saml-client:11.15.1‘
Anschließend müssen der Routing-Server und der Agent-Server gestoppt und neu deployed werden.
Bibliotheken zu einem installierten iAGENT-System hinzufügen
Die für eine SSO-Authentifizierung notwendigen Bibliotheken sind im iAGENT-Updater unter folgendem Pfad zu finden:
- common\standard\other\saml-client\lib\
Diese Bibliotheken müssen in folgende Verzeichnisse des installierten iAGENT-Systems kopiert werden:
- <iAGENT-Installation>/tomcat/webappsiMail/iMail/WEB-INF/lib/ (Routing-Process)
- <iAGENT-Installation>/tomcat/webappsiMailAgent/agent/WEB-INF/lib (SV-Process)
Anschließend müssen die Prozesse bzw. Dienste für das Routing und iAGENT neu gestartet werden.
Benutzer in iAGENT einrichten
Sie müssen im iAGENT-System Benutzer anlegen, die sich im Azure Active Directory befinden. Der Benutzername muss derselbe sein, der auch für die Anmeldung in Office365 verwendet wird (username@domain, zum Beispiel mmustermann@example.com). Zudem muss ein Admin-Benutzer angelegt werden, der sich mit SSO anmelden kann.
Bei Zugriffen mit System-Nutzern (wie von Apps oder REST API) muss am entsprechenden Nutzer zudem einer der folgenden Schlüssel auf den Wert DB gesetzt werden (Reiter Eigene Einstellungen in den Benutzereinstellungen):
- auth.type (für die Anmeldung auf Supervisor und Desk)
- auth.type.agent (für die Anmeldung auf Desk)
- auth.type.user (für die Anmeldung auf Supervisor)
Konfigurieren der SSO-Authentifizierung
Laden Sie zunächst die Federation Metadata XML von Ihrer konfigurierten Unternehmensanwendung herunter. Fast alle benötigten Informationen finden Sie in der Beschreibung.
Die Konfiguration muss in die Routing.conf-Datei des iAGENT-Systems eingefügt werden. Die Konfiguration bezüglich des SSO-Logins kann im laufenden iAGENT-System geändert werden.
Eine Beispielkonfiguration, die in die Routing.conf eingefügt wird, sieht wie folgt aus:
####################
## Teams Saml SSO ##
####################
#Turn on/off authentication
external.auth.enabled =
true
#Turn on/off authentication
for
agents
external.auth.agent.enabled =
true
#Turn on/off authentication
for
supervisors
external.auth.routing.enabled =
true
#Class implementing the authentication
external.auth.user.auth.
class
= com.novomind.ecom.saml.Authenticator
#Mapping of the received authentication properties to the username of the iAGENT-System. Without
this
maping an authentication will always fail. Make sure the received users are existing in the iAGENT-System.
external.auth.user.property.mapping = {username:
"nameid"
}
#Configuration of the actual authentication. In
this
case
a saml authentication. The authentication has been defined by following parameter
"external.auth.user.auth.class"
#Turn on/off saml authentication
external.auth.saml.enabled =
true
#Name of the identity provider. In
this
case
the Enterprise Application defined in the azure AD (
"Azure AD Identifier"
). This identifier will be used in the AuthRequest.
external.auth.saml.ip.identifier = https:
//sts.windows.net/bb3b64e1-cd0c-4d0c-a85b-fabcabfef245/
#URL the AuthRequest will be sent to. Can be found in the Single sign-on configuration of the Enterprise Application (
"Login URL"
).
external.auth.saml.ip.endpoint = https:
//login.microsoftonline.com/bb3b64e1-cd0c-4d0c-a85b-fabcabfef245/saml2
#Name of the Service Provider. Has been defined in the Single sign-on configuration of the Enterprise Application (
"Identifier (Entity ID)"
)
external.auth.saml.sp.identifier = https:
//novomind365.onmicrosoft.com/SSO
#Public key of the identity provider. Used
for
validating the signatures of the authentication response.
external.auth.saml.certificate.base64 = MIIC8DCCAdigAwIBAgIQX/61cnLjwoFEnlIiLnHL3DANBgkqhkiG9w0BAQsFADA0MTIwMAYDVQQDEylNaWNyb3NvZnQgQXp1cmUgRmVkZXJhdGVkIFNTTyBDZXJ0aWZpY2F0ZTAeFw0yMDAzMjYxNTQ4MDBaFw0yMzAzMjYxNTQ4MDBaMDQxMjAwBgNVBAMTKU1pY3Jvc29mdCBBenVyZSBGZWRlcmF0ZWQgU1NPIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaYHuJr1TB5NEEmuyTFRW54N6OyoNu7LuB3yVZEUspoxWX3SW1mzfJa1f4+WV9y9SXqehzxR1IdVUyubERmsSAVMBIBeEN/8fk17aTGi4+FaWH8S5OvYmI8V/HRXFcyJxXCCeY6pcRip7UEK4Y3AnNIAbEgxMNIx4LRemYtmYEOG2FD8Gjeu7C58VtOJsi5Z0AZHyK5rVed8Fm9qZBWr5NwOx500jTm1cAwdZS45+89l9nd6g1FNpNO58dExbiq1zbqs5UCcNyNP0Ga3k9ToL1QvFDNOQj7W/KTSwgCDhCN9WF3+889V2OUD0jcCUkBFH5iGsiFYJPSWK+6GoQQhjQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAJG9VslGHELW6o/gz/nHaVDF1/XXfRXlGaf/knI1dCjwPRoywjaDb3hIYW7gdhnYrhjsgl4Aszy8+voLUnf73Jh7w8Izcvy6fl05h1IfhTr4oVvLtuPB6AP3qsfG2zFRkx1teJd/DlCv9AGjr2A2d3iUL1GexwB/zC34V4RDZmU1PlkuR/lUx4NC+LlKBhdYlf0Irl5O6g2DkzC3YB1/nwGcG5trsNdNsifl/8pJkJUnYKpD4DFgGGBZSrFmWaWmcCI8P0Mm2txMPa988KGWcbclP2AV26/q/nR2x45KDkZC4LFKQE1ahErD5m6/da1icKHICi/ldLfg49DMK++YcV
#Turn on/of validation of time based constraints in the authentication response. Validation time based constraints often leads to problems. Time based constraints will be ignored
if
set to
true
.
external.auth.saml.assertion.time.disable =
true
Die folgenden Konfigurationseigenschaften müssen angepasst werden:
- extern.auth.saml.sp.identifier
- external.auth.saml.ip.identifier
- external.auth.saml.ip.endpoint
- external.auth.saml.certificate.base64
- external.auth.show.login.mask
external.auth.saml.sp.identifier ist in der Single Sign-On-Konfiguration der Enterprise Application zu finden („Identifier (Entity ID)“).
external.auth.saml.ip.identifier ist in der Single-Sign-On-Konfiguration der Unternehmensanwendung zu finden („Azure AD Identifier“). Er kann auch in der Federation-Metadaten-Xml-Datei gefunden werden (Element „EntityDescriptor“ → Attribut „entityID“).
external.auth.saml.ip.endpoint ist in der Single Sign-On Konfiguration der Enterprise Application zu finden („Login URL“). Das folgende Element muss sich in der xml-Datei befinden. Normalerweise wird es irgendwo am Ende der Datei platziert.
<SingleSignOnService Binding=
"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location=
"https://login.microsoftonline.com/bb3b64e1-cd0c-4d0c-a85b-fabcabfef245/saml2"
/>
Der Wert des Attributs „Location“ muss als Wert verwendet werden.
Der Wert für die Eigenschaft external.auth.saml.certificate.base64 ist auch in den Verbands-Metadaten xml zu finden. Folgender Beispielinhalt enthält den erforderlichen öffentlichen Schlüssel im base64-Format. Kopieren Sie einfach den Textinhalt des Elements „X509Certificate“.
<KeyInfo>
<X509Data>
<X509Certificate>MIIC8DCCAdigAwIBAgIQX/61cnLjwoFEnlIiLnHL3DANBgkqhkiG9w0BAQsFADA0MTIwMAYDVQQDEylNaWNyb3NvZnQgQXp1cmUgRmVkZXJhdGVkIFNTTyBDZXJ0aWZpY2F0ZTAeFw0yMDAzMjYxNTQ4MDBaFw0yMzAzMjYxNTQ4MDBaMDQxMjAwBgNVBAMTKU1pY3Jvc29mdCBBenVyZSBGZWRlcmF0ZWQgU1NPIENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaYHuJr1TB5NEEmuyTFRW54N6OyoNu7LuB3yVZEUspoxWX3SW1mzfJa1f4+WV9y9SXqehzxR1IdVUyubERmsSAVMBIBeEN/8fk17aTGi4+FaWH8S5OvYmI8V/HRXFcyJxXCCeY6pcRip7UEK4Y3AnNIAbEgxMNIx4LRemYtmYEOG2FD8Gjeu7C58VtOJsi5Z0AZHyK5rVed8Fm9qZBWr5NwOx500jTm1cAwdZS45+89l9nd6g1FNpNO58dExbiq1zbqs5UCcNyNP0Ga3k9ToL1QvFDNOQj7W/KTSwgCDhCN9WF3+889V2OUD0jcCUkBFH5iGsiFYJPSWK+6GoQQhjQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAJG9VslGHELW6o/gz/nHaVDF1/XXfRXlGaf/knI1dCjwPRoywjaDb3hIYW7gdhnYrhjsgl4Aszy8+voLUnf73Jh7w8Izcvy6fl05h1IfhTr4oVvLtuPB6AP3qsfG2zFRkx1teJd/DlCv9AGjr2A2d3iUL1GexwB/zC34V4RDZmU1PlkuR/lUx4NC+LlKBhdYlf0Irl5O6g2DkzC3YB1/nwGcG5trsNdNsifl/8pJkJUnYKpD4DFgGGBZSrFmWaWmcCI8P0Mm2txMPa988KGWcbclP2AV26/q/nR2x45KDkZC4LFKQE1ahErD5m6/da1icKHICi/ldLfg49DMK++YcV
</X509Certificate>
</X509Data>
</KeyInfo>
Indem external.auth.show.login.mask auf false gesetzt wird, wird die Login-Maske für iAGENT abgeschaltet.