Single Sign-On einrichten - SAML

Die Security Assertion Markup Language 2.0 (SAML 2.0) ist eines der Protokolle, die von der Automation Engine für Single Sign-on unterstützt werden. Als Systemadministrator richten Sie SAML so ein, dass sie mit Ihrem System verwendet wird. Jeder in der Automation Engine definierten Abteilung kann ein SAML Identity Provider Ihrer Wahl zugewiesen werden. Die Automation Engine selbst agiert als Service Provider gegenüber dem SAML Identity Provider. Sobald eine Abteilung für SAML konfiguriert wurde, wird jeder Versuch, den Login-Typ Automation Engine zu verwenden, nicht mehr akzeptiert, und stattdessen muss der Login-Typ SAML verwendet werden. In diesem Fall ist das Feld Abteilung obligatorisch.

Nur Oracle-Datenbank: Um sicherzustellen, dass die JWP XML-Variablen korrekt verarbeiten, müssen Sie die Dateien orai18n.jar, xdb6.jar, xdb.jar und xmlparserv2.jar in den lib-Ordner des JWP kopieren. Die Dateien sind entweder Teil der Oracle-Datenbank oder können von der SQL Developer-Website heruntergeladen werden.

SAML konfigurieren

  1. Aktivieren Sie in Mandant 0 den Parameter SAML in der Variablen UC_SYSTEM_SETTINGS, siehe SAML. In diesem Schritt werden die Schlüssel *CONFIG und *SP in der Variablen UC_SAML_SETTINGS generiert und ausgefüllt.

    • Der *CONFIG-Schlüssel enthält eine XML-Datei mit vordefinierten Elementen, mit denen Sie verschiedene Einstellungen definieren können.

    • Der *SP -Schlüssel enthält die Metadaten, die es Ihnen ermöglichen, die Automation Engine als SAML Service Provider mit Ihrer Identity Provider-Anwendung einzurichten.

  2. Bearbeiten Sie in der Variablen UC_SAML_SETTINGS den XML-Inhalt des Schlüssels *SP und ersetzen Sie die drei _INSERT_-Werte, siehe UC_SAML_SETTINGS - Single Sign-on.

  3. (Optional) Im XML-Inhalt des *SP-Schlüssels können Sie Ihren SAML Identity Provider so konfigurieren, dass er mit der Automation Engine als Service Provider interagiert.

    Die Automation Engine ordnet den AE-Benutzernamen den Wert eines der folgenden Attribute der SAML-Antwort zu:

    • subject-id

      Format: urn:oasis:names:tc:SAML:2.0:attrname-format:uri

      Wenn dieses Attribut definiert ist, wird die eindeutige ID, die dem Zeichen @ vorangestellt ist, dem AE-Benutzernamen zugeordnet.

    • NameID

      Format: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

      Der hier definierte Wert wird dem AE-Benutzernamen zugeordnet, wenn kein Wert für subject-id definiert ist. Welcher Teil des Werts für die Zuordnung zum AE-Benutzernamen verwendet wird, hängt davon ab, wie der Wert definiert ist:

      • @-Zeichen: Wenn der Wert dieses Zeichen enthält, wird der Teil, dem es vorangestellt ist, für die Zuordnung verwendet.
      • \-Zeichen: Wenn der Wert dieses Zeichen enthält, wird der Teil, der darauf folgt, für die Zuordnung verwendet.
      • Wenn keines der Zeichen verwendet wird, wird der vollständige Wert dem AE-Benutzernamen zugeordnet.
    • aename

      Format: urn:oasis:names:tc:SAML:2.0:attrname-format:uri)

      Verwenden Sie dieses Attribut, wenn Sie weder subject-id noch NameID für Ihren Identity Provider verwenden können.

      Hinweis: Wenn dieser Wert definiert ist, wird er standardmäßig dem AE-Benutzernamen zugeordnet.

  4. In der Variablen UC_SAML_SETTINGS fügen Sie eine Abteilung als Schlüssel hinzu, indem Sie auf "Schlüssel hinzufügen" klicken und den heruntergeladenen XML-Inhalt des Identity Providers (IDPSSODescriptor) als Wert einfügen. Weitere Informationen finden Sie unter UC_SAML_SETTINGS - Single Sign-on.

    Verwenden Sie den Abteilungsnamen als Name/Wert für den neuen Schlüsseleintrag. Fügen Sie dann die XML-Metadaten vom SAML Identity Provider in das XML-Feld des neuen Eintrags ein.

     

    ... urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

    Sie können die Variable nach jedem neuen Schlüsseleintrag oder nach der Eingabe aller neuen Schlüssel speichern.

  5. (Optional) Stellen Sie sicher, dass Sie einen Benutzer für die Abteilung haben, die Sie in Schritt 4 als Schlüssel verwenden, in den Sie den Identity Provider-XML-Inhalt einfügen.

Nachdem in manuell installierten Systemen SAML erfolgreich konfiguriert wurde, können Sie Single Sign-on in Ihrer AWI-Instanz aktivieren. Setzen Sie dazu die Eigenschaft sso.saml.enabled in der Datei configuration.properties auf true. Weitere Informationen finden Sie unter configuration.properties – Lokales Setup konfigurieren.

Wenn Ihr System eine Automic Automation Kubernetes Edition ist, können Sie Single Sign-On aktivieren, indem Sie die Umgebungsvariable AUTOMIC_SSO_SAML_ENABLED in der Datei values.yaml vor der Installation auf true setzen. Sobald die Installation bereitgestellt ist, müssen Sie sie im Bereich awi-properties der ConfigMap aktivieren. Weitere Informationen finden Sie unter Container-basierte Systeme konfigurieren.

Hinweise:

  • Standardmäßig wird die Methode REDIRECT für die Bindung an den Identity Provider verwendet. Wenn POST verwendet werden soll, muss die REDIRECT-Bindung aus den Metadaten des Identity Providers (Schlüssel/Abteilungen) entfernt werden.
  • Um die Integrität von Meldungen sicherzustellen, wird empfohlen, die SAML-Antwort und die Assertion zu signieren. Es muss jedoch mindestens die SAML-Assertion signiert sein.
  • Wenn die Abteilungen für die Verwendung mit SAML konfiguriert sind, kann das Benutzerpasswort nicht mehr über die Dropdown-Liste im Menü oben rechts geändert werden. Sie müssen es über Ihren Identity Provider ändern. Auch das Ändern des Passworts im Benutzerobjekt hat keine praktische Wirkung. Es wird wieder wirksam, wenn SAML für die Abteilungen, zu denen der Benutzer gehört, entfernt wird, oder wenn SAML in der Variablen UC_SYSTEM_SETTINGS deaktiviert wurde. Weitere Informationen finden Sie unter SAML.
  • Das automatisch generierte x509-Zertifikat ist 20 Jahre lang gültig. Wenn Sie das Zertifikat erneuern möchten (x509-Zertifikat und privater Schlüssel), müssen Sie SAML in der Variablen UC_SYSTEM_SETTINGS deaktivieren und den Schlüssel *SP aus der Variablen UC_SAML_SETTINGS löschen. Nachdem das Zertifikat und der Schlüssel entfernt wurden, müssen Sie SAML in der UC_SYSTEM_SETTINGS-Variablen wieder aktivieren. Diese Aktion löst eine neue Schlüsselgenerierung aus, wodurch das alte X509-Zertifikat ungültig wird. Sie müssen dann den SAML-Identity Provider für alle aktivierten Abteilungen mit dem neuen x509-Zertifikat erneut konfigurieren. Weitere Informationen finden Sie unter SAML.

Beispiele für eine gültige SAML-Antwort

<saml2p:Response Destination="http://publicawihost/awi" ID="id290636362662992466264760" InResponseTo="a39679651-5ffd-48ea-9a59-bf1b9ad4b7f8" IssueInstant="2019-04-10T08:59:13.357Z" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"> <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://www.okta.com/exk1gximcianQOEbY0h8</saml2:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <ds:Reference URI="#id290636362662992466264760"> <ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <ds:DigestValue>CHD+p3Y2Fb2wMQZExoB9AB5murdi3c3ZdPOkvv65Yqs=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>...==</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>...</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"><saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></saml2p:Status> <saml2:Assertion ID="id29063636266376672635017193" IssueInstant="2019-04-10T08:59:13.357Z" Version="2.0" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://www.okta.com/exk1gximcianQOEbY0h8</saml2:Issuer> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <ds:Reference URI="#id29063636266376672635017193"> <ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <ds:DigestValue>4yc8XUmrGQuBMjupKPwBPTYgzDC/Yj84tySpSN4tQZ4=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>...==</ds:SignatureValue> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>...</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml2:Subject xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">AE_USERNAME</saml2:NameID> <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml2:SubjectConfirmationData InResponseTo="a39679651-5ffd-48ea-9a59-bf1b9ad4b7f8" NotOnOrAfter="2019-04-10T09:04:13.357Z" Recipient="http://publicawihost/awi"/></saml2:SubjectConfirmation> </saml2:Subject> <saml2:Conditions NotBefore="2019-04-10T08:54:13.357Z" NotOnOrAfter="2019-04-10T09:04:13.357Z"xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:AudienceRestriction> <saml2:Audience>http://publicawihost/SAML2</saml2:Audience> </saml2:AudienceRestriction> </saml2:Conditions> <saml2:AuthnStatement AuthnInstant="2019-04-10T08:59:13.357Z" SessionIndex="a39679651-5ffd-48ea-9a59-bf1b9ad4b7f8"xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> <saml2:AuthnContext> <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef> </saml2:AuthnContext> </saml2:AuthnStatement> </saml2:Assertion> </saml2p:Response>

 

<samlp:Response Destination="http://publicawihost/awi" ID="_6aed358d707b5a312dfb" InResponseTo="a4cabf300-c365-4bb9-8fb5-88786c90b778" IssueInstant="2019-04-10T09:08:49Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:dev-iv83r8oz.eu.auth0.com</saml:Issuer> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <Reference URI="#_6aed358d707b5a312dfb"> <Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>2nDFArabdm2Jfpb+08pmY95YaKE=</DigestValue> </Reference> </SignedInfo> <SignatureValue>...==</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>...</X509Certificate> </X509Data> </KeyInfo> </Signature> <samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status> <saml:Assertion ID="_Jr2Kdk5SGcvZ8HFbvs4mNikuLX4MqXW9" IssueInstant="2019-04-10T09:08:49.615Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> <saml:Issuer>urn:dev-iv83r8oz.eu.auth0.com</saml:Issuer> <saml:Subject> <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">ae_username@automic.com</saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData InResponseTo="a4cabf300-c365-4bb9-8fb5-88786c90b778" NotOnOrAfter="2019-04-10T10:08:49.615Z" Recipient="http://publicawihost/awi"/></saml:SubjectConfirmation> </saml:Subject> <saml:Conditions NotBefore="2019-04-10T09:08:49.615Z" NotOnOrAfter="2019-04-10T10:08:49.615Z"> <saml:AudienceRestriction> <saml:Audience>http://publicawihost/SAML2</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2019-04-10T09:08:49.615Z" SessionIndex="_Celn0TWdmITVRqMxGGxhZk4tjpMRe-0U"> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement><saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></saml:Assertion> </samlp:Response>

Beispiel für die Verwendung mit Okta-Anwendungen

Sie möchten Okta Apps verwenden, um sich direkt von einer verwandten Anwendung in Okta aus bei AWI anzumelden. Dazu müssen Sie sicherstellen, dass die Informationen, die im Feld SAML Aussteller-ID in den SAML-Einstellungen aller ihrer Mandanten (Apps) angegeben sind, auf dieselbe entityID verweisen, die für die Abteilung in der Variablen UC_SAML_SETTING in der Automation Engine definiert ist:

AE-Einstellungen:

SAML-Einstellungen (erweitert):

Weitere Informationen finden Sie unter UC_SAML_SETTINGS - Single Sign-on.

Siehe auch: