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>

Beispiele

Die folgenden Beispiele beziehen sich auf Drittanbieterprodukte, deren Installations-, Upgrade- oder Wartungsprozesse nicht von Broadcom durchgeführt werden. Aus diesem Grund sind keine ausführlichen Anweisungen in der Produktdokumentation enthalten, da sie sich jederzeit ändern können. Weitere Informationen finden Sie auf den Websites der einzelnen Anbieter.

Verwenden von Auth0 als SAML Identity Provider (IdP)

Das folgende Beispiel zeigt, wie Sie Auth0 als SAML IdP für SSO bei Automic Automationeinrichten können:

  1. Erstellen Sie ein Auth0-Konto unter https://auth0.com/
  2. Erstellen Sie unter BenutzerverwaltungBenutzer einen oder mehrere AE-Benutzer.
    • Dieser Benutzername muss mit dem Benutzernamen in AE (ohne Abteilung) übereinstimmen. Alternativ können Sie die E-Mail-Adresse für die Zuordnung des AE-Benutzernamens verwenden. Stellen Sie in diesem Fall sicher, dass Sie den ersten Eintrag im Bereich "Einstellungen" unter nameIdentifierProbes (siehe unten) entfernen.
    • Erstellen Sie einen Benutzer mit E-Mail-Adresse.
    • Bearbeiten Sie unter DetailsName den Benutzer und ändern Sie seinen Namen in den erforderlichen AE-Namen.
  3. Erstellen Sie in AnwendungenAnwendungen eine Anwendung und geben Sie ihr einen Namen, wie z. B. AE
    • Ignorieren Sie den Teil Anwendungstyp auswählen und klicken Sie auf Erstellen.
    • Wählen Sie Add-ons in der Titelleiste und SAML2 Web App.
    • Wählen Sie EinstellungenCallback-URL für die Anwendung und geben Sie die URL ein, unter der Ihr AWI erreichbar ist (z. B. http://localhost:8080/awi/, mit einem Schrägstrich (/) am Ende)
    • Ersetzen Sie den Inhalt des Felds Einstellungen durch Folgendes, und speichern Sie Ihre Änderungen:
    • {
      "nameIdentifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
      "nameIdentifierProbes": [
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
      "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
      ],
      "mappings": {},
      "createUpnClaim": false,
      "passthroughClaimsWithNoMapping": false,
      "mapUnknownClaimsAsIs": false,
      "mapIdentities": false,
      "signatureAlgorithm": "rsa-sha256",
      "signResponse": true
      }

    • Schließen Sie die Ansicht nicht, wählen Sie in der Titelleiste Nutzung aus, und laden Sie die Identity-Provider-Metadaten (XML-Datei) herunter.

  4. Setzen Sie in Automic Automation die Variable UC_SYSTEM_SETTINGS von Mandant 0 den SAML-Schlüssel auf Y (Ja).
  5. In den UC_SAML_SETTINGS von Mandant 0:
    • Erstellen Sie einen Abteilungsschlüssel, indem Sie auf "Schlüssel hinzufügen" klicken (z. B. AUTH0), und verwenden Sie die heruntergeladene Metadaten-XML-Datei für den Wert.
    • Suchen Sie in den *SP-Schlüsselmetadaten den Wert _INSERT_ und ersetzen Sie ihn dreimal durch die URL, über die Ihr AWI erreichbar ist (z. B . http://localhost:8080/awi/). Diese URL muss mit der in Auth0 festgelegten Callback-URL für Anwendungen identisch sein.
    • Wichtig! Auth0 unterstützt das Signieren entweder der gesamten Antwort ODER der Assertion, aber nicht beides. Standardmäßig erwartet die AE, dass beide signiert sind, aber mindestens die Antwort. Die oben beschriebenen Auth0-Einstellungen zeigen, dass der Parameter signResponse auf true gesetzt ist, was sicherstellt, dass die Antwort signiert wird. Passen Sie diese Einstellung auch in den *SP-Metadaten an:
    • <md:EntityDescriptor .....">
      <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="false"

  6. Aktivieren Sie die SAML-Anmeldung im AWI. Öffnen Sie die Datei configuration.properties, und fügen Sie sso.saml.enabled=true hinzu.
  7.  Melden Sie sich bei Ihrem Automic Automation-System an. Wählen Sie als Login-Typ SAML aus; als Abteilung verwenden Sie Auth0, wie zuvor in der UC_SAML_SETTINGS definiert.
    • Sie sollten zum IdP umgeleitet werden, wo Sie sich einmal mit den in den Benutzereinstellungen definierten Zugangsdaten authentifizieren müssen.
    • (Optional) Ist die Multifaktor-Authentifizierung aktiviert und ist die App Auth0 Guardian auf Ihrem Mobiltelefon installiert, sollten Sie eine Authentifizierungsanfrage auf dem mobilen Gerät erhalten haben. Bestätigen Sie diese.
    • Der IdP gibt jetzt eine SAML-Assertion zurück. Wenn der von auth0 zurückgegebene Benutzername mit einem Benutzer in der AE mit der Abteilungs-AUTH0 übereinstimmt, sollte die Antwort erfolgreich validiert werden und Sie werden angemeldet.
    • Die folgende Anmeldeanforderung wird automatisch verarbeitet. Sie brauchen Ihre Zugangsdaten nicht erneut einzugeben.

Verwenden von Okta Apps

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.

Verwenden von SAML mit Azure Active Directory (AD)

Stellen Sie sicher, dass Sie Folgendes in der UC_SAML_SETTINGS von Mandant 0 definieren:

  • Setzen Sie in den Metadaten des *CONFIG-Schlüssels disableRequestedAuthnContext auf true. Wenn diese Variable auf "true" gesetzt ist, wird RequestedAuthnContext der SAML-AuthnRequest-Anforderung nicht an Ihren Identity Provider gesendet.

    <disableRequestedAuthnContext>true</disableRequestedAuthnContext>

  • Setzen Sie in den Metadaten des *SP-Schlüssels AuthnRequestsSigned und WantAssertionsSigned auf false.

    <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol

Weitere Informationen finden Sie in der MS Azure-Konsole, wie unter https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-saml-claims-customization beschrieben. Suchen Sie den Abschnitt "NameID format" (Namens-ID-Format) und ändern Sie "Windows Domain Qualified Name" (Qualifizierter Windows-Domänenname) in "Unspecified" (Nicht angegeben).

Wichtig! Löschen Sie immer den Browserverlauf (Cache/Cookies).

Siehe auch: