SAML 2.0

Vorbereitung

Vor Konfigurationsbeginn von SAML 2.0 als Single Sign-On Methode (im folgenden SSO) sollten ein paar Vorbereitungen getroffen werden.

Identity Provider

Für die Konfiguration von SAML 2.0 ist es notwendig die Metadaten des Identity Providers (im folgenden IdP) zu ermitteln. Die Metadaten werden im XML-Format bereitgestellt und enthalten Informationen über die Kommunikation zum IdP.

Beispiel einer Idp metadata.xml:

<?xml version="1.0"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="http://localhost:8666/simplesaml/saml2/idp/metadata.php">
  <md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
     <ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJALmVVuDWu4NYMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYxMjMxMTQzNDQ3WhcNNDgwNjI1MTQzNDQ3WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzUCFozgNb1h1M0jzNRSCjhOBnR+uVbVpaWfXYIR+AhWDdEe5ryY+CgavOg8bfLybyzFdehlYdDRgkedEB/GjG8aJw06l0qF4jDOAw0kEygWCu2mcH7XOxRt+YAH3TVHa/Hu1W3WjzkobqqqLQ8gkKWWM27fOgAZ6GieaJBN6VBSMMcPey3HWLBmc+TYJmv1dbaO2jHhKh8pfKw0W12VM8P1PIO8gv4Phu/uuJYieBWKixBEyy0lHjyixYFCR12xdh4CA47q958ZRGnnDUGFVE1QhgRacJCOZ9bd5t9mr8KLaVBYTCJo5ERE8jymab5dPqe5qKfJsCZiqWglbjUo9twIDAQABo1AwTjAdBgNVHQ4EFgQUxpuwcs/CYQOyui+r1G+3KxBNhxkwHwYDVR0jBBgwFoAUxpuwcs/CYQOyui+r1G+3KxBNhxkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAAiWUKs/2x/viNCKi3Y6blEuCtAGhzOOZ9EjrvJ8+COH3Rag3tVBWrcBZ3/uhhPq5gy9lqw4OkvEws99/5jFsX1FJ6MKBgqfuy7yh5s1YfM0ANHYczMmYpZeAcQf2CGAaVfwTTfSlzNLsF2lW/ly7yapFzlYSJLGoVE+OHEu8g5SlNACUEfkXw+5Eghh+KzlIN7R6Q7r2ixWNFBC/jWf7NKUfJyX8qIG5md1YUeT6GBW9Bm2/1/RiO24JTaYlfLdKK9TYb8sG5B+OLab2DImG99CJ25RkAcSobWNF5zD0O6lgOo3cEdB/ksCq3hmtlC/DlLZ/D8CJ+7VuZnS1rR2naQ==</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:KeyDescriptor use="encryption">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJALmVVuDWu4NYMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYxMjMxMTQzNDQ3WhcNNDgwNjI1MTQzNDQ3WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzUCFozgNb1h1M0jzNRSCjhOBnR+uVbVpaWfXYIR+AhWDdEe5ryY+CgavOg8bfLybyzFdehlYdDRgkedEB/GjG8aJw06l0qF4jDOAw0kEygWCu2mcH7XOxRt+YAH3TVHa/Hu1W3WjzkobqqqLQ8gkKWWM27fOgAZ6GieaJBN6VBSMMcPey3HWLBmc+TYJmv1dbaO2jHhKh8pfKw0W12VM8P1PIO8gv4Phu/uuJYieBWKixBEyy0lHjyixYFCR12xdh4CA47q958ZRGnnDUGFVE1QhgRacJCOZ9bd5t9mr8KLaVBYTCJo5ERE8jymab5dPqe5qKfJsCZiqWglbjUo9twIDAQABo1AwTjAdBgNVHQ4EFgQUxpuwcs/CYQOyui+r1G+3KxBNhxkwHwYDVR0jBBgwFoAUxpuwcs/CYQOyui+r1G+3KxBNhxkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAAiWUKs/2x/viNCKi3Y6blEuCtAGhzOOZ9EjrvJ8+COH3Rag3tVBWrcBZ3/uhhPq5gy9lqw4OkvEws99/5jFsX1FJ6MKBgqfuy7yh5s1YfM0ANHYczMmYpZeAcQf2CGAaVfwTTfSlzNLsF2lW/ly7yapFzlYSJLGoVE+OHEu8g5SlNACUEfkXw+5Eghh+KzlIN7R6Q7r2ixWNFBC/jWf7NKUfJyX8qIG5md1YUeT6GBW9Bm2/1/RiO24JTaYlfLdKK9TYb8sG5B+OLab2DImG99CJ25RkAcSobWNF5zD0O6lgOo3cEdB/ksCq3hmtlC/DlLZ/D8CJ+7VuZnS1rR2naQ==</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="http://localhost:8666/simplesaml/saml2/idp/SingleLogoutService.php"/>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://localhost:8666/simplesaml/saml2/idp/SSOService.php"/>
  </md:IDPSSODescriptor>
</md:EntityDescriptor>

Als Binding für SingleSignOnService wird HTTP-POST vorausgesetzt

Service Provider

Entity ID und Basis URL

Vor Einrichtung sollte mit der entsprechenden SAML Abteilung (i.d.R auch zuständig für den IdP) abgeklärt werden, wie die Entity ID des Portals heißen soll und wie die Basis URL lauten wird. Gewöhnlich wird als Entity ID einfach "portal" und als Basis URL die Root Domain des Tools gewählt. Sollte es zur Entity ID und Basis URL keine Richtlinien geben, können Sie beides einfach festlegen.

Zertifikat

Um die Kommunikation zwischen dem Portal und dem IdP zu sichern kann im Portal ein Zertifikat hinterlegt werden. Das Zertifikat sollte vor der SSO Konfiguration beschafft werden und in p12-Keystoreformat vorliegen. Passend zum p12-Keystore wird das Keystorepasswort und der Key Alias benötigt.

Übermittlung Loginname

Die Übermittlung des Loginnamen durch eine SAML-Antwort ist nicht eindeutig. Daher muss geklärt werden wie der Loginname zu ermitteln ist. Im Regelfall wird der Loginname in das NameID-Feld des Subject-Tags der SAML Antwort geschrieben. Ist dem nicht so, muss geklärt werden wie der Name des Assertion-Feldes lautet, in dem der Loginname steht.

Konfiguration

Die zuvor ermittelten Daten werden nun im Portal unter Administration → Single Sign-On Konfiguration → Tab SAML 2.0 eingetragen.

Identity Provider

Die Metadaten des IdP können auf zwei Arten eingetragen werden:

  1. Als Text in das "Metadaten" Textfeld kopieren
  2. Als XML Datei über das Feld "Metadata XML Datei" auswählen und über den Button "SAML 2.0 IdP-Metadaten hochladen" in das Metadaten Feld einfügen

Service Provider

Entity ID und Basis URL

Tragen Sie die festgelegte Entity ID in das Feld "Entity ID" und die festgelegte Basis URL in das Feld "Basis Url" ein.

Sollten das Portal über verschiedene URLs sowohl über das Inter- als auch das Intranet erreichbar sein, können noch alternativen zu den beiden Feldern angegeben werden: "alternative Entity ID" und "alternative Basis Url". Hier wird beim Loginaufruf geprüft, ob die aufgerufene URL mit der "alternative Basis Url" als Präfix übereinstimmt. Wenn dem so ist, wird für den SAML-Aufruf die "alternative Entity ID" und "alternative Basis Url" verwendet, ansonsten die original Entity ID.

Zertifikat

Im Abschnitt "KeyStore" wird, sofern gewünscht, das Zertifikat konfiguriert. Wählen Sie im Feld "Datei" die zu verwenden p12-Datei aus und laden Sie diese über den Button "SAML 2.0 SP-KeyStore hochladen" hoch. Geben Sie anschließend in das Feld "KeyStore Passwort" das Passwort und in das Feld "Key Alias" den Alias ein.

Metadaten

Nachdem Sie alle Daten für den Service Provider eingegeben und den Dialog gespeichert haben, können Sie die Metadaten des Service Providers exportieren.

Klicken Sie dazu einfach auf den Button "SAML 2.0 SP Metadaten". Daraufhin wird ein neuer Browser Tab geöffnet. Den Inhalt des neuen Tabs können Sie kopieren und ihrer SAML Abteilung zur Einspielung übergeben.

Benutzereinstellungen

Im Abschnitt "Benutzereinstellungen" können die folgenden Einstellungen vorgenommen werden:

  1. Mapping Loginname
    1. "Subject-NameID entspricht Loginname": Wenn der Loginname aus dem NameID-Feld des Subject-Tags ermittelt werden soll, so muss hier der Haken gesetzt werden.
    2. "Assertion Loginname": Wenn das Subject-NameID-Feld nicht dem Loginnamen entspricht, muss hier der Name des Assertion-Tags angeben, in dem der Loginname übermittelt wird.
  2. Automatische Benutzeranlage
    1. Soll ein Benutzer automatisch im System angelegt werden, kann im Feld "Benutzer bei erfolgreicher Anmeldung automatisch im System anlegen" ein Haken gesetzt werden.
    2. Wenn a) zutrifft, kann im Feld "Benutzer als archiviert anlegen" festgelegt werden, ob ein automatisch angelegter Benutzer direkt im System eingeloggt oder erstmal archiviert wird.
    3. Assertion Mapping (optional)
      1. "Vorname": Name des Assertion-Tags, das den Vornamen des Benutzers enthält. Der Wert wird beim automatischen Anlegen in die Detailinformationen des Benutzers geschrieben.
      2. "Nachname": Name des Assertion-Tags, das den Nachnamen des Benutzers enthält. Der Wert wird beim automatischen Anlegen in die Detailinformationen des Benutzers geschrieben.
      3. "E-Mail Adresse": Name des Assertion-Tags, das die E-Mail Adresse des Benutzers enthält. Der Wert wird beim automatischen Anlegen in die Detailinformationen des Benutzers geschrieben.

Aktivierung

Nachdem die Konfiguration vollständig durchgeführt wurde und die Metadaten des Service Providers erfolgreich im IdP hinterlegt wurden, kann SAML 2.0 als SSO aktiviert werden. Wählen Sie dazu in der Dropdown-Box "Single Sign-On Typ" oberhalb des "SAML 2.0" Tabs den Eintrag "SAML 2.0" aus und speichern Sie den Dialog.