Qualität und Services - Pünktlich und zuverlässig liefern Qualitätssicherung von morgen Microservices: Architektur agil skalieren - SOAPARK

Die Seite wird erstellt Georg Blank
 
WEITER LESEN
Qualität und Services - Pünktlich und zuverlässig liefern Qualitätssicherung von morgen Microservices: Architektur agil skalieren - SOAPARK
www.bt-magazin.de   1.2015 Heft 20                                     € 4,90

                            Qualität und Services
                                                                 Pünktlich und zuverlässig liefern
                                                                 Qualitätssicherung von morgen
                                                                 Microservices: Architektur agil
                                                                 skalieren

©iStockphoto.com/tapilipa
Qualität und Services - Pünktlich und zuverlässig liefern Qualitätssicherung von morgen Microservices: Architektur agil skalieren - SOAPARK
SAML

Single Sign-On (SSO) mit SAML implementieren

Anwendungssicherheit
mit SAML
Unsere Welt ist seit Jahren durch eine wachsende Flut an Software geprägt.
Große Unternehmen nutzen heute insbesondere Webapplikationen, um schnel-
ler und flexibler auf die Anforderungen der Märkte zu reagieren. Viele davon sind
zu unverzichtbaren Bausteinen der Geschäftsprozesse geworden. Aus diesem
Grund sind Interoperabilität und Integration von großer Wichtigkeit. Internet- und
Cloud-Architekturen tragen dazu bei, dass man fast von jedem Punkt der Erde
Zugriff auf diese Applikationen erhält. Doch damit steigt auch das Risiko von un-
berechtigtem Zugriff und Missbrauch.

AUTOREN: MAMOON YUNUS UND DR. DIRK KRAFZIG

Die typische Herangehensweise an die nötigen Schutz-         Schwachpunkt. Mit der wachsenden Anzahl an öffentlich
maßnahmen ist meist simpel. Jede Anwendung erhält eine       zugänglichen Applikationen steigt die Wahrscheinlich-
Login-Maske, die Benutzername und Kennwort abfragt.          keit für Sicherheitslücken. Gelingt es einem Angreifer,
Obwohl dies auf den ersten Blick eine logische und einfa-    eine dieser Anwendungen zu kompromittieren, so ist die
che Methode zu sein scheint, ist sie in der Praxis mit ho-   Sicherheit aller Anwendungen gefährdet.
hem Aufwand verbunden und kann zu unvermeidbaren
Sicherheitslücken führen. Indem man den einzelnen Ap-        FEDERATED IDENTITY MANAGEMENT
plikationen aufbürdet, Benutzeridentitäten zu speichern      Die daraus folgenden Herausforderungen führen ge-
und diese unter Umständen mit anderen Benutzerdaten-         radewegs zu Lösungsansätzen, die sich einer Disziplin
banken zu synchronisieren, schafft man einen eklatanten      bedienen, die unter der Bezeichnung Federated Identity
                                                             Management (FIdM) unterschiedliche Standards und
     Artikelserie                                            Vorgehensweisen umfasst. FIdM verwendet standardi-
                                                             sierte Policies und Protokolle, um einzelnen Benutzern
     Teil 1: Anwendungssicherheit mit SAML –                 den Zugriff auf verschiedene Anwendungen zu ermög-
             Eine Einführung                                 lichen, wenn diese von unterschiedlichen Systemen be-
     Teil 2: Implementierung von SAML SSO in der Praxis      reitgestellt werden. Ein besonderer Vorteil von FIdM ist
                                                             es, dass Geschäftspartner gegenseitig auf Anwendungen

56     bt | 1.2015                                                                                   www.bt-magazin.de
Qualität und Services - Pünktlich und zuverlässig liefern Qualitätssicherung von morgen Microservices: Architektur agil skalieren - SOAPARK
zugreifen können, ohne dafür Benutzerdatenbanken
austauschen zu müssen. Dabei ist das Single Sign-On
ein angenehmes Nebenprodukt. Single Sign-On (SSO)
ist die Fähigkeit von Benutzern, sich mit einem Satz an
Anmeldedaten in mehrere Anwendungen einzuloggen.
    Obwohl es zahlreiche Standards wie OAuth, OpenID
oder proprietäre Lösungen für FIdM gibt, setzt sich Se-
curity Assertion Markup Language (SAML) als die viel-
seitigste und am meisten genutzte Lösung durch.
    Dieser Artikel beschreibt, was SAML ist, zeigt ihre
Vorteile und Funktionsweise auf und wie SAML ein-
gesetzt werden kann, um Single Sign-On (SSO) sowie
Limitationen von SAML zu implementieren, sowie Li-
mitationen von SAML.

WAS IST SAML?
SAML wurde vom OASIS Security Services Technical
Committee (SSTC) definiert. Es ist ein XML-basiertes
Framework, das verwendet werden kann, um Benutzer
zu authentisieren und autorisieren sowie Attribute und
Privilegien von Benutzern zu kommunizieren. Dabei ist       Abb. 1: Konzepte von SAML
es nicht notwendig, dass kritische Daten wie zum Bei-
spiel Kennworte oder Benutzerkennungen zwischen An-         Schutzmaßnahmen konzentrieren müssen. SAML bietet
wendungen ausgetauscht werden. Der SAML-Standard            seinerseits einen hohen Grad an Schutz durch die Ver-
ist durch mehrere Iterationen gegangen und wird heute       wendung von Public-Key-Infrastrukturen (PKI).
als ein stabiles, erprobtes und reifes Framework angese-        Viele Anwender halten die Benutzerfreundlichkeit
hen. Die erste Version von SAML, V1.0, wurde im No-         für eine der größten Stärken von SAML. SAML kann
vember 2002 veröffentlicht. Die aktuelle Version, V2.0,     Eigenschaften und Rechte von Benutzern an einen Ser-
stammt von März 2005. Die letzten freigegebenen Än-         vice Provider (einer Anwendung) sicher weitergeben.
derungen am Standard (Errata) stammen von Mai 2012.         Dazu verwendet SAML so genannte Assertions, eines
                                                            der stärksten Konzepte aus dem SAML-Standard. As-
DIE VORTEILE VON SAML                                       sertions ermöglichen es dem Identity Provider (Benut-
SAML ist in großen Unternehmen vor allem aus drei           zerdatenbank), detaillierte Informationen über Benutzer
Gründen beliebt: Es ist standardisiert, sicher und ermög-   bereitzustellen, insbesondere zur Art der Zugriffsrechte,
licht eine einfache Handhabung durch Benutzer.              die Benutzer auf verschiedene Anwendungen haben.
    Durch die Standardisierung ermöglicht SAML die In-
teroperabilität verschiedener Anwendungen unabhängig        WIE FUNKTIONIERT SAML?
von der eingesetzten Technologie. Es ermöglicht offene      Um die Funktionsweise von SAML zu verstehen, müs-
Architekturen und Identity Federation, ohne dass die        sen drei Parteien eingeführt werden: Benutzer, Identity
Nachteile von geschlossenen, proprietären und hersteller-   Provider (IdP) und Service Provider (SP). Der Benutzer
spezifischen Lösungen in Kauf genommen werden müs-          repräsentiert die Person, die eine Anwendung verwen-
sen, oder dass ein Integrationsmehraufwand entsteht.        den möchte. Der Service Provider repräsentiert die An-
    Besonders bei unternehmenskritischen Anwendungen        wendung, die der Benutzer verwenden will. Der Service
ist Sicherheit das A und O. SAML kann dafür eingesetzt      Provider wird häufig auch als SAML Relying Party be-
werden, eine zentrale Authentifizierung zu implementie-     zeichnet, da der Service Provider auf die Inhalte vertraut,
ren. Dabei kann eine zentrale Benutzerdatenbank ver-        die ihm über SAML bereitgestellt werden. Der Identity
wendet werden, die in höchstem Maße abgesichert wird.       Provider speichert die Information über den Benutzer
Originäre Benutzerdaten können hinter der Firewall ver-     (z. B. Benutzername, Kennwort, x.509, Rollen etc.) und
bleiben, während SAML Benutzeridentitäten verifiziert.      wird häufig auch als SAML Asserting Party bezeichnet.
Das bedeutet, dass Anwendungen keine Benutzerdaten              Das SAML-Framework beherbergt vier wichtige
speichern oder synchronisieren müssen. Das wieder-          Konzepte: Assertions, Protokolle, Bindings und Profile
um bedeutet, dass es weniger Orte gibt, auf die sich die    (Abb. 1).

www.bt-magazin.de                                                                                      bt | 1.2015   57
SAML ermöglicht das Anmelden bei
mehreren Anwendungen zugleich.
Assertions                                                   In anderen Anwendungsfällen würde man dazu ausge-
Eine SAML-Assertion ist eine XML-Struktur, die Ei-           feiltere Verfahren anwenden bzw. die Person, die die-
genschaften des Benutzers enthält. SAML-Assertions           se Prüfung durchführt, speziell ausbilden. Sobald der
werden durch den Identity Provider erstellt und vom          Personalausweis als gültig anerkannt ist, wertet der Ki-
Service Provider konsumiert. SAML-Assertions und die         osk die Inhalte (Assertions) des Ausweises aus, um zu
Kontextinformationen erlauben es dem Service Provi-          entscheiden, ob der Benutzer Alkohol erwerben darf.
der, Entscheidungen über Gewährung oder Ablehnung            Dabei wird das Foto herangezogen, um Benutzer und
von Zugriffswünschen eines authentifizierten Benutzers       SAML-Token einander zuzuordnen. Zudem wird das
zu treffen.                                                  Geburtsdatum überprüft, um letztendlich die Autorisie-
    Bevor SAML-Assertions konsumiert werden, über-           rungsentscheidung zu treffen.
prüft der Service Provider die digitale Signatur (DSIG),
um die Integrität und Authentizität des SAML-Tokens          Protokolle
zu verifizieren. Sobald der SAML-Token verifiziert ist,      Häufig werden die Assertions vom Identiy Provider
analysiert der Service Provider den Inhalt und trifft ent-   als Reaktion einer Anfrage durch den Service Provider
sprechende Entscheidungen über Zugriffe. Es gibt drei        erstellt. Solche Frage/Antwort-Muster werden SAML-
Typen von SAML-Assertions:                                   Protokolle genannt. Im Standard gibt es sechs fest defi-
                                                             nierte SAML-Protokolle, um unterschiedliche Aktionen
• Authentication Statements: Authentication Statements       durchzuführen:
  informieren den Service Provider darüber, dass der Be-
  nutzer durch den Identity Provider authentifiziert wur-    • Authentication Request Protocol: Das Authentication
  de, wann die Authentifizierung stattfand und welche          Request Protocol wird verwendet, um Assertions über
  Methode dazu angewandt wurde. Das Authentication             den Benutzer vom Identity Provider zu erhalten. Ziel
  Statement kann zusätzliche Information über den Be-          ist es, einen Security Context mit dem Service Provider
  nutzer im Kontext der Authentifizierung enthalten.           zu etablieren. Dieses Protokoll wird im weit verbreite-
• Attribute Statements: Mit Attribute Statements liefert       ten Web Browser SSO Profile verwendet.
  der Service Provider Informationen über spezifische,       • Single Logout Protocol: Das Single Logout Protocol
  den Benutzer identifizierenden Attribute.                    erlaubt es, alle Sessions eines Benutzers zu terminie-
• Authorization Decision Statements: Authorization             ren. Das Logout kann durch den Benutzer, den Service
  Decision Statements liefern Informationen darüber,           Provider oder den Identity Provider eingeleitet wer-
  welche Ressourcen ein Benutzer verwenden darf.               den. Beispielsweise kann das Single Logout Protocol
                                                               vom Service Provider nach einem Timeout der Benut-
Hier eine kleine Analogie zur Illustration der Konzep-         zersession verwendet werden (Szenario: Benutzer geht
te: Eine Person möchte eine Flasche Schnaps an einem           in die Mittagspause).
Kiosk kaufen. In dem Beispiel ist die Person, die den Al-    • Assertion Query and Request Protocol: Das Assertion
kohol erwerben möchte, der Benutzer. Der Kiosk ist der         Query and Request Protocol definiert Nachrichten-
Service Provider, der Wohnort der Person, die den Per-         typen und Verarbeitungsregeln, um bereits bekannte
sonalausweis herausgegeben hat, der Identity Provider          Assertions per Referenz abzufragen oder über Such-
und der Personalausweis entspricht dem SAML-Token.             parameter nach Assertions zu suchen.
Wie bereits erwähnt, muss der Service Provider die Si-       • Artifact Resolution Protocol: Das Artifact Resolution
gnatur des SAML-Tokens prüfen, bevor er den Inhalt             Protocol ermöglicht es, Referenzen auf SAML-Nach-
konsumiert. Das entspricht einer Prüfung, ob der Per-          richten zu versenden, statt die Nachrichten selbst zu
sonalausweis keine Fälschung und nicht abgelaufen ist.         übermitteln. Mit diesem Protokoll werden sehr kleine
Diese Prüfung führt der Kiosk (Service Provider) bzw.          SAML-Artifacts via SAML-Binding anstelle einer grö-
der Verkäufer im Kiosk durch scharfes Hinsehen aus.            ßeren SAML-Nachricht verwendet. Das Protokoll stellt

58   bt | 1.2015                                                                                     www.bt-magazin.de
Abb. 2: Schematischer Ablauf von SSO

  auch die Möglichkeit bereit, die Referenz aufzulösen     WIE WIRD SAML FÜR SSP VERWENDET?
  und die Originalnachricht zu erhalten. Das Protokoll     SAML ermöglicht es Benutzern, mehrere Anwendun-
  wird verwendet, wenn die Nachrichtengröße kritisch       gen mit einem einzigen Satz an einmalig eingegebenen
  ist oder wenn man die SAML-Nachrichten über einen        Anmeldedaten zu verwenden. Dadurch wird die Be-
  separaten sicheren Kanal transportieren möchte.          nutzung der Anwendungen einfacher und geschäftli-
• Name Identifier Management Protocol: Das Name            che Transaktionen können reibungslos und effizienter
  Identifier Management Protocol ermöglicht es, den        durchgeführt werden. Schon heute wird SSO bereits
  Wert oder das Format eines Identifiers, der mit einem    häufig eingesetzt: Sei es, dass wir Onlinebanking ma-
  Benutzer verknüpft ist, zu verändern. Die Anfrage        chen, mobile Applikationen nutzen oder auf einer
  kann vom Service Provider oder vom Identity Provider     Webseite nach komplexen und verschachtelten Infor-
  ausgelöst werden.                                        mationen suchen.
• Name Identifier Mapping Protocol: Das Name Identi-          Wenn sich beispielsweise ein Bankkunde über die
  fier Mapping Protocol ermöglicht es dem Service Pro-     Website seiner Bank einloggt, wird er im technischen
  vider in einem Integrationsszenario, einen Identifier    Sinn regelmäßig unterschiedliche Applikationen ver-
  für einen Benutzer beim Identity Provider abzufragen,    wenden, um auf seine Sparkonten, Kreditkarteninfor-
  um auf einen weiteren Service Provider zuzugreifen.      mationen, die Öffnungszeiten seiner Filiale u. v. m.
                                                           zugreifen zu können. Verschiedene Bankprodukte
Bindings                                                   (wie Sparkonto oder Kreditkarte) werden in der Regel
SAML-Bindings legen fest, wie die Nachrichten im Rah-      durch unterschiedliche Backend-Systeme unterstützt.
men der SAML-Protokolle transportiert werden. Typi-        Um dem Kunden eine benutzerfreundliche Bedienung
scherweise werden SAML-Protokolle über SOAP oder           der Website zu ermöglichen, müssen die verschiedenen
HTTP transportiert.                                        Anwendungen ohne Medienbrüche zusammenarbeiten.
                                                           Folglich ist ein sicheres Verfahren erforderlich, dass es
Profile                                                    dem Benutzer nach dem Login ermöglicht, die Daten aus
SAML-Profile bündeln Assertions, Protokolle und Bin-       unterschiedlichen Anwendungen bequem aufzurufen.
dings für spezifische Anwendungsfälle. Eines der am häu-   Und genau das ermöglicht SAML.
figsten verwendeten SAML-Profile ist das Web Browser          Betrachten wir die einzelnen Schritte, die es erfordert,
SSO Profile.                                               um ein SAML-Token zu generieren und es anschließend

www.bt-magazin.de                                                                                     bt | 1.2015   59
dazu zu verwenden, Zugriff auf eine Anwendung zu er-        • PKI und CPU: Die in den SAML-Assertions einher-
halten. Abbildung 2 zeigt die grundlegenden Schritte,         gehende Vertrauensstellung zwischen Identity und
wie SSO mit SAML funktioniert:                                Service Provider setzt die Verarbeitung von digitalen
                                                              Signaturen voraus. Das erfordert neben dem Fach-
1. Authentifizierung des Benutzers gegen den Identity         wissen seitens der Entwickler eine entsprechende
   Provider unter Verwendung von Einzelfaktor oder            CPU-Bandbreite und ein funktionierendes Schlüssel-
   Mehrfaktorauthentifizierung.                               management im Rahmen einer PKI.
2. Der Identity Provider gibt ein SAML-Token mit
   den Assertions an den Benutzer heraus. In mobilen        Legacy-Anwendungen mit SAML auszustatten, kann
   Endgeräten und Webbrowsern wird SAML oft mit             zeitaufwändig und kostspielig sein. Aus diesem Grund
   BASE64 in die HTML-Response eingebettet.                 werden häufig API-Gateways eingesetzt, die diese Prob-
3. Der Browser des Benutzers wird vom Identity Provi-       leme out of the box lösen. Dadurch wird vermieden, dass
   der zum Service Provider weitergeleitet. Der Brow-       bestehende Anwendungen auf Codeebene verändert wer-
   ser des Benutzers stellt seine Anfrage an den Service    den müssen, und trotzdem ein zukunftsweisender Ansatz
   Provider mit dem eingebetteten SAML-Token. Der           basierend auf SAML SSO vorangetrieben werden kann.
   Service Provider prüft das SAML-Token und seinen
   Inhalt, um die Zulässigkeit der Anfrage basierend        Links & Literatur
   auf der Vertrauensstellung mit dem Identity Provi-       [1] Security Assertion Markup Language (SAML) 2.0 Technical
   der zu klären. Der Service Provider stellt den Zugriff       Overview: https://www.oasis-open.org/committees/download.
                                                                php/11511/sstc-saml-tech-overview-2.0-draft-03.pdf
   auf die verschiedenen Onlinebankinganwendungen           [2] SAML Executive Overview:https://www.oasis-open.org/
   basierend auf den SAML-Assertions, die im Token              committees/download.php/11785/sstc-saml-exec-overview-
   enthalten sind, bereit.                                      2.0-draft-06.pdf
                                                            [3] Advantages of SAML: http://saml.xml.org/advantages-saml
In der Praxis gibt es zwei Spielarten, nämlich „Service
Provider initiated SAML“ und „Identity Provider initi-
ated SAML“. Diese unterscheiden sich darin, ob der Be-
nutzer den allerersten Request an den Identity Provider                            Mamoon Yunus
oder den Service Provider sendet. Auf dieses und viele
weitere Details werden wir in der nächsten Ausgabe mit                             ist CEO von Crosscheck Networks, ei-
                                                                                   nem führenden Technologieanbieter für
dem Artikel „Implementierung von SAML SSO in der                                   Cloud- und Web-Services-Infrastruktu-
Praxis“ eingehen.                                                                  ren. Als SOA Pionier und Gründer von
   SAML SSO ermöglicht Benutzern das Verwenden                                     Forum Systems hat er wichtige Tech-
mehrerer Anwendungen ohne Medienbrüche. Zudem                                      niken für XML Appliances patentieren
kann mit SAML SSO vermieden werden, dass die teil-                                 lassen. Er besitzt zwei Abschlüsse
                                                                                   vom MIT. InfoWorld hat ihn 2004 als
nehmenden Anwendungen größeren Änderungen unter-
                                                                                   einen von vier „Up and coming CTOs
zogen werden müssen, um sich der SAML-Technologie                                  to watch“ ausgezeichnet.
anzupassen.

LIMITATIONEN VON SAML                                                              Dr. Dirk Krafzig
Obwohl SAML eine der populärsten Methoden für SSO                                   ist Gründer von SOAPARK. Als Spre-
ist, gibt es doch einige Herausforderungen bei der Im-                              cher auf Konferenzen und Autor von
plementierung von SAML-basierten Lösungen – insbe-                                  Artikeln und Büchern gilt Dr. Krafzig
sondere bei der Anbindung von Legacy-Anwendungen:                                   als ein Protagonist der serviceori-
                                                                                    entierten Architektur (SOA) und hat
                                                                                    maßgeblich zu der Begriffsbildung in
• Endpunkte mit SAML ausstatten: Um SAML-Assertions                                 diesem Bereich beigetragen. Insbe-
  zu konsumieren, muss die entsprechende Technologie                                sondere die SOA-Fallstudien mit der
  bereitstehen, die es ermöglicht, die XML-Strukturen                               Deutschen Post, Credit Suisse, Ha-
  des SAML-Tokens zu dekodieren, die jeweils relevan-                               lifax Bank of Scotland und Winter-
                                                              thur Versicherung in seinem Bestseller „Enterprise SOA“
  ten Aspekte zu parsen und anschließend rollenbasiert
                                                              haben viel Aufmerksamkeit auf sich gezogen. Derzeit ar-
  Entscheidungen über den Zugriff zu treffen. Das kann        beitet Dr. Krafzig in einem strategischen SOA-Programm
  schwierig sein, wenn diese Aufgaben in die Hand der         bei einem Mobilfunkanbieter an dem Thema Security.
  Entwickler der Legacy-Backends gelegt werden.

60   bt | 1.2015                                                                                          www.bt-magazin.de
Sie können auch lesen