Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit

Die Seite wird erstellt Florian Pfeiffer
 
WEITER LESEN
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Erarbeitung einer API-Strategie für einen
 Krypto-Finanzdienstleister
 Bachelorarbeit

 Gianni Rüegg
 gianni.rueegg@stud.hslu.ch

 Hochschule Luzern
 Departement Informatik
 BSc Wirtschaftsinformatik

 Experten:
 Prof. Dr. Tim Weingärtner
 Dr. Thomas Weigold

 3. Januar, 2022
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

Bachelorarbeit an der Hochschule Luzern – Informatik

Titel: Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister

Student: Gianni Rüegg

Studiengang: BSc Wirtschaftsinformatik

Abschlussjahr: 2022

Betreuungsperson: Prof. Dr. Tim Weingärtner

Experte: Dr. Thomas Weigold

Auftraggeber: Markus Perdrizat

Codierung / Klassifizierung der Arbeit:
☒ Öffentlich (Normalfall)
☐ Vertraulich

Eidesstattliche Erklärung
Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig und ohne unerlaubte fremde Hilfe
angefertigt habe, alle verwendeten Quellen, Literatur und andere Hilfsmittel angegeben ha be,
wörtlich oder inhaltlich entnommene Stellen als solche kenntlich gemacht habe das
Vertraulichkeitsinteresse des Auftraggebers wahren und die Urheberrechtsbestimmungen der
Hochschule Luzern respektieren werde.

Ort / Datum, Unterschrift _____________________________________________________

 Seite 2 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

Abgabe der Arbeit auf der Portfolio Datenbank:
Bestätigungsvisum Studentin/Student
Ich bestätige, dass ich die Bachelorarbeit korrekt gemäss Merkblatt auf der Portfolio Datenbank
abgelegt habe. Die Verantwortlichkeit sowie die Berechtigungen habe ich abgegeben, so dass ich
keine Änderungen mehr vornehmen kann oder weitere Dateien hochladen kann.

Ort / Datum, Unterschrift _____________________________________________________

Verdankung
Vielen Dank an Dr. Prof. Tim Weingärtner für die Unterstützung und spannenden Diskussionen
während der Arbeit. Ein weiterer Dank geht an den Auftraggeber, Markus Perdrizat, der mich
immer wieder mit hilfreichen Feedbacks unterstützt und weitergebracht hat. Ebenfalls danke ich
Thomas Rüegg und Martin Dolder für die sorgfältige Korrektur der Arbeit.

Ausschliesslich bei Abgabe in gedruckter Form:
Eingangsvisum durch das Sekretariat auszufüllen

Rotkreuz, den ____________________ Visum: ____________________

Hinweis: Die Bachelorarbeit wurde von keinem Dozierenden nachbearbeitet. Veröffentlichungen
(auch auszugsweise) sind ohne das Einverständnis der Studiengangleitung der Hochschule Luzern
– Informatik nicht erlaubt.

Copyright © 2022 Hochschule Luzern – Informatik

Alle Rechte vorbehalten. Kein Teil dieser Arbeit darf ohne die schriftliche Genehmigung der
Studiengangleitung der Hochschule Luzern – Informatik in irgendeiner Form reproduziert oder in
eine von Maschinen verwendete Sprache übertragen werden.

 Seite 3 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

Abstract
Die noch junge Krypto-Finanzbranche ist schnelllebig und entwickelt sich in hohem Tempo weiter.
Mit der steigenden Nutzerzahl von Kryptowährungen werden auch die Anforderungen an
Dienstleister in diesem Bereich immer grösser. Bitcoin Suisse ist ein führender Krypto-
Finanzdienstleister in der Schweiz und bietet heute ihren Kunden verschiedene Services wie
Brokerage, Staking, Custody, Lending oder Payments an. Um neue Kundensegmente, wie etwa
Banken oder Vermögensverwalter, mit diesen Krypto-Dienstleistungen zu bedienen, sollen neue
Kanäle zur Datenübermittlung bereitgestellt werden. Die Arbeit verfolgt das Ziel, eine API -
Strategie zu entwickeln, die dem Unternehmen das Wachstum im B2B- und B2B2C-Bereich
ermöglicht. Dabei soll ein Strategiedokument erstellt werden, welches Vorgaben und Standards
definiert, was Bitcoin Suisse in Zukunft bei der Entwicklung von externen APIs beachten sollte. Das
Dokument soll sowohl organisatorische wie auch technische Aspekte der API-Entwicklung
abdecken und intern als Leitfaden für verantwortliche Personen dienen. Das Strategiedokument
soll dabei Produkt-agnostisch und sowohl für bestehende wie auch zukünftige Produkte gültig
sein.

Das Ergebnis der Arbeit ist ein mehr als zwanzig Seiten langes Strategiedokument für Bitcoin
Suisse. Es wurde sowohl vom Auftraggeber als auch ersten Stakeholdern validiert und Feedback
eingeholt. Die wichtigsten Punkte bezüglich der Entwicklung von externen APIs sind darin
beschrieben. Die Entscheidungen darin wurden mehrheitlich aus Erkenntnissen der
Literaturrecherche, externen Interviews und Fachdiskussionen mit Stakeholdern getroffen. Das
Dokument enthält ebenfalls die Hypothese für die drei Punkte Brokerage, Staking und Custody,
wo konkrete Empfehlungen für die nächsten Schritte beschrieben werden. Für die Trading API
wurde eine Gap-Analyse durchgeführt, welche als direkte Handlungsempfehlung für das Team
vorgeschlagen wurde.

Nebst dem Strategiedokument wurden dem Unternehmen eine vollständige Customer Jour ney
Map mit zwei Personas (Software-Architekt und Product Manager) abgegeben. Sie beschreibt die
wichtigsten Nutzungsphasen, beginnend mit der «Wahrnehmung» bis hin zur «Auflösung der
Partnerschaft», welche eine Kundin/ein Kunde während der Produktnutzung durchläuft.

Zusätzlich wurde ein Prototyp entwickelt: eine Webapplikation, die die OpenAPI-Spezifikation
einer Dummy-API anzeigt. Die Spezifikation wird automatisch generiert und vom Frontend
konsumiert. In der Dokumentation sind die verfügbaren Endpoints zu sehen, entsprechende
Request/Response Models werden angezeigt und welche HTTP-Status-Codes ein Endpoint
zurückgibt.

 Seite 4 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

Inhaltsverzeichnis
1 Einleitung .................................................................................................................... 7
 1.1 Problemstellung .......................................................................................................... 7
 1.2 Fragestellungen ........................................................................................................... 7
 1.3 Ziel .............................................................................................................................. 7
 1.4 Relevanz ...................................................................................................................... 8
 1.5 Abgrenzung ................................................................................................................. 8
2 Stand der Forschung ..................................................................................................... 9
 2.1 Product Mindset.......................................................................................................... 9
 2.1.1 Business Ziele definieren ................................................................................. 9
 2.1.2 Das API-Produkt-Team ................................................................................... 10
 2.2 Die drei Säulen einer erfolgreichen API-Strategie ...................................................... 11
 2.2.1 Outside-in-Ansatz .......................................................................................... 11
 2.2.2 Time to Market.............................................................................................. 12
 2.2.3 Iterative Weiterentwicklung .......................................................................... 13
 2.3 KPIs definieren und etablieren .................................................................................. 13
 2.4 Security ..................................................................................................................... 15
 2.4.1 Häufige Sicherheitslücken und Schwachstellen .............................................. 16
 2.4.2 Best Practises für API-Security ....................................................................... 17
 2.5 Authentifizierung und Autorisierung ......................................................................... 18
 2.5.1 OAuth 2.0 mit OpenID Connect ..................................................................... 18
 2.5.2 Basic Authentication ...................................................................................... 19
 2.5.3 Bearer Authentication ................................................................................... 19
 2.6 Technologie ............................................................................................................... 20
 2.6.1 REST .............................................................................................................. 20
 2.6.2 WebSockets ................................................................................................... 20
 2.7 Performance ............................................................................................................. 21
 2.7.1 Caching ......................................................................................................... 21
 2.7.2 Skalierung ..................................................................................................... 21
 2.7.3 Performance trifft auf Security ...................................................................... 23
 2.8 Dokumentation und Zugänglichkeit ........................................................................... 23
 2.8.1 Manuelle Dokumentation .............................................................................. 23
 2.8.2 Automatisierte Dokumentation ..................................................................... 23
 2.9 Versionierung ............................................................................................................ 24
3 Stand der Technik bei Bitcoin Suisse ............................................................................ 26
 3.1 Produkte ................................................................................................................... 26
 3.2 Externe APIs .............................................................................................................. 26
 3.3 Eingesetzte Technologiestandards ............................................................................. 27
 3.4 Dokumentation ......................................................................................................... 27
 3.5 Organisationsstruktur................................................................................................ 27
 3.6 Demo / Sandbox Umgebung ...................................................................................... 27
4 Ideen und Konzepte .................................................................................................... 28
 4.1 Blueprint ................................................................................................................... 28
 4.2 Customer Journey Map mit Personas ........................................................................ 28
 4.3 Gap-Analyse .............................................................................................................. 28
 4.4 Hypothese ................................................................................................................. 28
 4.5 Prototyp für eine API-Dokumentation ....................................................................... 29
5 Methoden .................................................................................................................. 29
 5.1 Vorgehen .................................................................................................................. 29
 5.2 Literaturrecherche .................................................................................................... 31
 5.3 Interviews ................................................................................................................. 31
 5.4 Workshops ................................................................................................................ 31

 Seite 5 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

 5.5 Konkurrenzanalyse .................................................................................................... 32
6 Realisierung ............................................................................................................... 33
 6.1 Aufnahme der Kundenbedürfnisse durch Interviews ................................................. 33
 6.2 Erarbeitung des Blueprints ........................................................................................ 34
 6.2.1 Vision und Ziele ............................................................................................. 34
 6.2.2 Organisation und Verantwortung .................................................................. 35
 6.2.3 Beginn mit MVPs ........................................................................................... 35
 6.2.4 API-Guidelines ............................................................................................... 36
 6.3 Hypothese ................................................................................................................. 40
 6.3.1 Trading .......................................................................................................... 41
 6.3.2 Staking .......................................................................................................... 41
 6.3.3 Custody ......................................................................................................... 42
 6.4 Ausarbeitung der Customer Journey Map .................................................................. 43
 6.4.1 Erstellung der Personas ................................................................................. 43
 6.4.2 Definition der Phasen .................................................................................... 45
 6.4.3 Beschreibung der Phasen .............................................................................. 46
 6.4.4 Customer Journey Map.................................................................................. 47
 6.5 Gap-Analyse .............................................................................................................. 48
 6.6 Entwicklung des Prototypen ...................................................................................... 49
 6.6.1 Evaluation des Tools ...................................................................................... 49
 6.6.2 Entwicklung der Web-Applikation .................................................................. 49
 6.6.3 Entwicklung der Dummy-API ......................................................................... 50
 6.6.4 Dokumentation ausbauen ............................................................................. 51
 6.6.5 Reflexion zum Prototyp ................................................................................. 52
 6.6.6 Abbildung Entwickler-Portal .......................................................................... 53
7 Evaluation und Validation ........................................................................................... 54
 7.1 Interne Validierung ................................................................................................... 54
 7.2 Externe Validierung ................................................................................................... 55
 7.3 Zusammenfassung ..................................................................................................... 56
8 Ausblick ..................................................................................................................... 56
9 Anhänge .................................................................................................................... 57
 9.1 Aufgabenstellung ...................................................................................................... 57
 9.2 Interviews ................................................................................................................. 58
 9.2.1 Genereller Fragebogen .................................................................................. 58
 9.2.2 Einführung..................................................................................................... 58
 9.2.3 Interview 1 (Kundenbedürfnisse) ................................................................... 59
 9.2.4 Interview 2 (Kundenbedürfnisse) ................................................................... 60
 9.2.5 Interview 3 (Kundenbedürfnisse) ................................................................... 61
 9.2.6 Interview 4 (Validierung) ............................................................................... 63
 9.3 Zeitplan ..................................................................................................................... 65
 9.4 Prototyp .................................................................................................................... 66
 9.5 Customer Journey Map & Personas ........................................................................... 66
 9.6 Rate Limiting – Beispiel ............................................................................................. 66
10 Abbildungsverzeichnis ................................................................................................ 68
11 Tabellenverzeichnis .................................................................................................... 68
12 Literaturverzeichnis .................................................................................................... 68

 Seite 6 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

1 Einleitung
1.1 Problemstellung
Unternehmen, die schon länger operativ tätig sind, blicken oft auf Jahre mit grossen
Veränderungen zurück. Dies trifft vor allem auf Unternehmen zu, welche in der noch jungen
Krypto-Finanzbranche tätig sind. 2009 entstand mit dem Bitcoin auch die Krypto-Finanzbranche.
Die Massenadaption fand aber erst einige Jahre später, ab 2017, mit dem Aufkommen vieler
weiterer Kryptowährungen statt. Durch die Schnelllebigkeit dieser noch jungen Branche ist eine
ständige Anpassung notwendig. Mit der steigenden Nutzerzahl von Kryptowährungen sind auch
die Anforderungen an die entsprechenden Dienstleister stark gestiegen.
Bitcoin Suisse (BTCS) ist seit 2013 auf dem Markt tätig und bietet verschiedenste Dienstleistungen
im Bereich der Kryptowährungen an. Dazu gehören Prime Brokerage, Staking, Pay, Lending und
Custody für Privatkunden und institutionelle Kunden in der Schweiz und weltweit. Diese
Dienstleistungen sind heute auf Privatkunden ausgelegt und wurden ausgehend von einem
persönlichen Beratungsansatz und viel manueller Arbeit entwickelt. Durch das anschliessende
Wachstum kamen später eine Online-Plattform und eine Mobile App dazu. Diese ermöglichen es
den Kunden, die Dienstleistungen im Self-Service zu beziehen. BTCS möchte im B2B-Bereich stark
wachsen und dazu ihre Dienstleistungen an institutionelle Kunden über APIs1 zugänglich machen.
Obwohl heute schon viele interne APIs eingesetzt werden, gibt es keine globale Firmenstrategie
in Bezug auf externe APIs.

1.2 Fragestellungen
Um die obige Problemstellung zu behandeln, befasst sich diese Arbeit mit folgenden
Fragestellungen:
 ▪ Welche Kundenbedürfnisse bestehen im Markt in Bezug auf externe APIs?
 ▪ Wie kann der Einstieg in die Nutzung unserer APIs für externe Entwickler möglichst einfach
 gestaltet werden?
 ▪ Wie kann sichergestellt werden, dass unsere APIs aktuellen Sicherheitsstandards folgen?
 ▪ Wie kann erreicht werden, dass verschiedene APIs über mehrere Produkte hinweg
 konsistent bleiben und die Bedürfnisse der einzelnen Produkt-Teams abdecken?

1.3 Ziel
In dieser Arbeit wird aufgezeigt, wie ein etabliertes Unternehmen im Bereich API eine neue
strategische Richtung einschlagen kann. Ziel dabei ist es, den Prozess und die Methodik zu
reflektieren, die für das Erreichen einer erfolgreichen API-Strategie notwendig sind. Die Arbeit soll
die wichtigsten Erkenntnisse aus der Forschung und Literatur widerspiegeln, welche als grosse
Stütze für eine passende API-Strategie dienen können.

11
 https://en.wikipedia.org/wiki/API

 Seite 7 von 70
Erarbeitung einer API-Strategie für einen Krypto-Finanzdienstleister - Bachelorarbeit
Hochschule Luzern
 Department Informatik

1.4 Relevanz
Um die Jahrtausendwende begann sich die API-Economy zu bilden. Heute führende Unternehmen
wie Salesforce oder eBay begannen ihren Nutzern und Kunden APIs anzubieten. 2002 gründete
Amazon das Cloud-Unternehmen Amazon Web Services, das zu den führenden Cloud-
Unternehmen gehört. Mit dem Aufkommen der Soziale Medien wie Facebook oder Twitter einige
Jahre später, unterstützten auch sie die Verbreitung von APIs mit der Bereitstellung von
Schnittstellen, die erste Interaktionen mit ihren Plattformen ermöglichten (Lane, 2019). Knapp
zwei Dekaden später, sind gemäss Akamai API-Aufrufe für 83% des globalen Internetverkehrs
zuständig2.
Dieses Wachstum spiegelt sich auch in
erfolgreichen Unternehmen wider. So hat das
API-First3-Unternehmen «Stripe» kürzlich in einer
Serie-H-Finanzierung weitere USD 600 Millionen
eingenommen und wird neu mit einem
Marktwert von USD 95 Milliarden bewertet4. Das
für das Unternehmen in Zukunft auch der Krypto-
Finanzmarkt von strategischer Bedeutung ist,
zeigt eine Nachrichtenmeldung, in der Stripe den
Aufbau eines neuen Krypto-Teams für ihre
Payments-Lösung ankündigt5.
 Abbildung 1: Bewertung von Stripe, Source: crunchbase.com

Folglich soll diese Arbeit aufzeigen, auf welche Art und Weise ein Einstieg in diese Welt gelingen
könnte. Die Erkenntnisse der Arbeit sollen für andere Unternehmen einen möglichen Lösungsweg
für ein ähnliches Ziel aufzeigen. Dadurch sollen viele FinTechs oder auch etablierte Finanzanbieter
in der Schweiz profitieren können.

1.5 Abgrenzung
Diese Arbeit fokussiert auf die Beschreibung und Ausarbeitung der API-Strategie. Eine effektive
Umsetzung dieser Strategie erfolgt zu einem späteren Zeitpunkt. Es werden keine APIs entwickelt,
da dies den Rahmen der Arbeit sprengen würde.
Da die Strategie auf bestehende Produkte und Dienstleistungen abzielt, ist die Definition eines
Erlösmodells nicht Teil dieser Arbeit. Entsprechende Erlösmodelle wurden schon zu einem
früheren Zeitpunkt definiert und sollen in dieser Form übernommen werden. Die aus der Strategie
zu entstehenden APIs dienen als zusätzlichen Kanal und müssen nicht eigenständig monetarisiert
werden.
Wie in der Problemstellung beschrieben, setzt BTCS schon heute viele verschiedene interne APIs
ein. Die Definition einer Strategie für diese internen APIs ist nicht Teil dieser Arbeit. Sie fokussiert
sich komplett auf externe APIs.

2
 https://www.akamai.com/newsroom/press-release/state-of-the-internet-security-retail-attacks-and-api-traffic
3
 https://swagger.io/resources/articles/adopting-an-api-first-approach/
4
 https://news.crunchbase.com/news/under-the-hood-a-closer-look-at-stripe-the-most-highly-valued-venture-backed-private-
 company-in-the-us/
5
 https://cointelegraph.com/news/stripe-builds-new-crypto-team-for-payments-three-years-after-dropping-bitcoin

 Seite 8 von 70
Hochschule Luzern
 Department Informatik

2 Stand der Forschung
In diesem Abschnitt wird beschrieben, welche Vorgehensweisen und Themenbereiche für eine
erfolgreiche API-Strategie von Bedeutung sind.

2.1 Product Mindset
Spricht man von einer API (Application Programmable Interface), handelt es sich um ein
technisches Werkzeug, wie Software miteinander kommuniziert und Daten ausgetauscht werden
können. Obwohl dies eine technische Komponente darstellt, wäre es falsch, diese nur als solche
zu betrachten (Apigee, 2018). Vielmehr sollte eine API ein konkretes Produkt darstellen, welches
eine bestimmte Dienstleistung erbringt. Dies kann sowohl intern wie auch extern sein:
 ▪ Intern: Die eigenen Entwickler verwenden diese API, um eine Applikation oder einen
 Service für interne Prozesse abzubilden.
 ▪ Extern: Kunden benutzen die API, um ein Produkt oder Service in ihre Systeme zu
 integrieren, ohne dabei mit einer Weboberfläche zu interagieren.
In beiden Fällen hat die konsumierende Partei gewisse Bedürfnisse und muss über die
Funktionsweise der API informiert werden. Um an dieser Stelle ein gutes Benutzererlebnis zu
schaffen und die Kundenbedürfnisse abzudecken, sollte eine API als ein Produkt angesehen
werden.
Unternehmen, die ihre APIs als Produkt behandeln, haben typischerweise ein erfolgreicheres API-
Programm (Apigee, 2018). Anstatt die API in einem einmaligen Projekt zu entwickeln, wird ein
voller Product Life Cycle definiert und es werden Langzeit-Roadmaps erstellt. Dabei wird die API
immer weiterentwickelt und an neue Businessanforderungen angepasst. Dadurch wird die
Produktivität von internen und externen Entwicklern gesteigert und der potenzielle Mehrwert
einer API wahrscheinlicher erreicht.
Ein wichtiger Teil eines Product Mindset ist das Design der API (Apigee, 2018). Das Design kann
eine grosse Auswirkung auf die später Benutzung haben und entscheidet auch über die
Erweiterbarkeit in der Zukunft. Würde eine API nur als einmaliges Projekt angesehen werden, so
würden allenfalls die Dokumentation, Versionierungskonzepte oder Sicherheitsaspekte aussen
vorgelassen werden. Häufig werden APIs so designt, dass sie bestimmte Projektanforderungen
erfüllen. Dies könnte dazu führen, dass die API an vielen Stellen angepasst werden müsste, um
zukünftige Use Cases zu unterstützen.

2.1.1 Business Ziele definieren
Erfolgreiche APIs verfolgen idealerweise bestimmte Business Ziele. Bevor eine API entwickelt wird,
sollten einige Fragen beantwortet werden (Jacobsen, Brail, & Woods, 2011):
 ▪ Was ist der Businessnutzen dieser API?
 ▪ Was wollen wir damit erreichen und welches Problem lösen wir?
 ▪ Welche Opportunitäten ergeben sich dabei?
Geeignete Business Ziele allein genügen aber nicht. So muss eine gemeinsame Vision für die API
geschaffen werden. Es sollte von Anfang an definiert werden, was das Endziel der API ist (Jacobsen,
Brail, & Woods, 2011). Für Bitcoin Suisse könnte folgendes Statement ein Beispiel für ein Vision
sein: «In drei Jahren wollen wir durch unsere APIs der führende Anbieter von Krypto-
Finanzdienstleistungen im B2B-Bereich sein». Solche Aussagen schaffen gemeinsames Verständnis
und man arbeitet auf dasselbe Ziel hin. Auch andere fundamentale Fragen sind frühzeitig zu klären.
Welche nächsten Schritte müssen wir tätigen, um unsere Ziele erreichen zu können (Jacobsen,
Brail, & Woods, 2011)? Woran wird der Erfolg des Produktes gemessen?

 Seite 9 von 70
Hochschule Luzern
 Department Informatik

Je nach Betrachtungsweise könnten dies unterschiedliche Kriterien sein. So kann die API einen
Erfolg sein, wenn …
 ▪ … dadurch mehr Umsatz erzielt wird.
 ▪ … viele Entwickler und Kunden sie einsetzen.
 ▪ … sie stabil läuft und wenig Ausfälle aufweist.
 ▪ … dadurch mehr Menschen auf der Welt den Zugang zu Kryptowährungen ermöglicht.
Je früher also ein gemeinsames Verständnis über diese Punkte geschaffen wird, desto
unwahrscheinlicher sind spätere Konflikte oder Überraschungen.

2.1.2 Das API-Produkt-Team
Nachdem eine Vision entstanden ist, ist es die Aufgabe des Product Managers die Vorteile der API
an Entwickler, Kunden und Business Stakeholders verständlich zu machen. Wenn es anschliessend
um die Umsetzung geht, sollte diese in einem Team mit unterschiedlichen Rollen stattfinden
(RedHat, 2019). Der Product Manager ist für die Strategie und die Erreichung der Business Ziele
verantwortlich. Es gibt Software-Architekten, die technologische Best Practices und Standards
vorgeben. Diese werden anschliessend von Entwicklern umgesetzt und von einem Betriebsteam
betrieben. Auch (Apigee, 2018) sieht diese Rollen als Notwendigkeit an und ergänzt das API-Team
noch durch weitere Personen:
 • Der API-Evangelist vertritt die Konsumenten der API und muss daher auch die genauen
 Bedürfnisse der Entwickler kennen. Er hat die Verantwortung für die Dokumentation und
 stellt sicher, dass genügend Informationen zur Nutzung der API vorhanden sind. Der API-
 Evangelist kümmert sich um interne und externe Entwickler und nimmt damit oft auch die
 Rolle des Community Managers ein.
 • Der API-Champion ist das Gegenstück zum API-Evangelist und stellt sicher, dass der
 Informationsaustausch zu Business und Management stattfindet. Er hat ein technisches
 Verständnis und ermittelt durch Auswertung den Mehrwert der API, welcher direkten
 Einfluss auf die Businessziele hat.
Werden mehrere APIs über eine Organisation entwickelt, sollte nicht einfach das Team
vergrössert, sondern die Anzahl an API-Teams erhöht werden (Gartner, 2021). Dabei entsteht ein
zusätzliches Team, das API-Platform-Team, welches für die API-Strategie zuständig ist und
produktübergreifende Standards definiert:

Abbildung 2: API Platform Team, eigene Darstellung adaptiert von (Gartner, 2021)

 Seite 10 von 70
Hochschule Luzern
 Department Informatik

2.2 Die drei Säulen einer erfolgreichen API-Strategie
Ein erfolgreiches API-Produkt wird durch eine ausgereifte API-Strategie getrieben. Nebst dem
Product Mindset stellen für (Apigee, 2018) drei Punkte die wichtigsten Säulen einer API-Strategie
dar: Eine erfolgreiche Strategie setzt den Kundenfokus an vorderster Stelle und deckt durch eine
Outside-in-Vorgehensweise die Kundenbedürfnisse optimal ab. Durch MVPs soll eine niedrige
Time-to-Market erreicht werden und das Produkt soll durch ständiges Feedback Sammeln und
Lernen in Iterationen fortlaufend weiterentwickelt werden.

2.2.1 Outside-in-Ansatz
Der Outside-in-Ansatz stellt die Kunden ins Zentrum. Die API-Strategie wird von Daten und nicht
von internen Annahmen getrieben. Dadurch werden gezielt Kundenbedürfnisse erfüllt, da die zu
lösenden Paint Points der Kunden schon identifiziert wurden. So wird gezielt daraufhin gearbeitet,
diese Kundenprobleme zu lösen – immer mit der Benutzerfreundlichkeit im Fokus.
Das Gegenteil wäre ein Inside-out-Ansatz. Dieser wird von der Überzeugung geleitet, dass die
inneren Stärken und Fähigkeiten eines Unternehmens zum Erfolg des Produktes führen
(Ozeritskaya, 2015). Häufig wird dabei auf bereits verfügbare IT-Ressourcen zurückgegriffen oder
es werden Annahmen über Kundenverhalten und -bedürfnisse getroffen.

Abbildung 3: Inside-out vs. Outside-in, eigene Darstellung adaptiert von (Halldórsson, 2018)

Vergleicht man die beiden Ansätze, liegt der wesentliche Unterschied bei der Abstrahierung der
internen Systemlandschaft. Da diese grundsätzlich für einen Kunden nicht relevant sind, fokussiert
sich der Outside-in-Ansatz also auf die Kundenbedürfnisse.
«Oft neigen wir dazu, unsere Daten zu nehmen und sie unseren Partnern oder Kunden zur
Verfügung zu stellen. Im einfachsten Fall ist dieser Ansatz kaum mehr als ein RESTful 6-Wrapper für
bestehende Datenbanktabellen. Das Problem ist, dass dies schnell zu APIs führen kann, die
geschwätzig (zu viele API-Aufrufe für ein einfaches Ergebnis), aufgebläht (übermäßige
Datenmenge) oder verwirrend (erfordert Insiderwissen über ihre Geschäftslogik) sind. Bei einem
Outside-in-Paradigma wird das API-Design auf die Anwendungsfälle der Verbraucher ausgelegt
und nicht auf die Struktur der Daten im eigenen System» (jeofoyster, 2017).

6
 https://en.wikipedia.org/wiki/Representational_state_transfer

 Seite 11 von 70
Hochschule Luzern
 Department Informatik

Die beste Art dem Risiko eines Inside-out-Mindsets entgegenzuwirken, sei, direkt mit Kunden zu
sprechen (Olsen, 2015). Durch die Aufnahme der Kundenbedürfnisse können klare Probleme
identifiziert und beschrieben werden. Anschliessend formulieren Product Teams ihre Hypothesen
und bitten um Kundenfeedback zu frühen Designideen, um diese zu validieren.

2.2.2 Time to Market
Als zweite Säule steht die Entwicklung von Minimum Viable Products (MVPs 7), um die Zeit bis zur
Markteinführung zu reduzieren (Apigee, 2018). Anschliessend kann das Produkt weiterentwickelt
werden, sobald weiteres Kundenfeedback eintrifft. Es soll nicht das Ziel sein, ein ganzes Produkt
zu designen und zu entwickeln, welches die kompletten Businessnutzen von Beginn weg abdeckt.
Dies würde zu lange dauern und ein zu hohes Risiko darstellen (Olsen, 2015). Oft ist es so, dass
der komplette Nutzen eines Produktes zu Beginn gar noch nicht erkennbar ist und neue Use Cases
erst zu einem späteren Zeitpunkt folgen. Diese Vorgehensweise ermöglicht es Unternehmen, mit
mehreren Ideen zu experimentieren und anschliessend, sobald erste Daten vorhanden sind, die
vielversprechenden Bereiche der API weiter auszubauen und andere vielleicht nicht weiter zu
betreiben (Apigee, 2018).
Kosteneinsparungen sind ein weiterer Faktor eines MVPs. Man verringert das Risiko, initial etwas
«Falsches» zu bauen, was gar nicht den Anforderungen der Kunden entspricht. Würde man von
Beginn an das ganze Produkt fertigentwickeln, könnte es sein, dass man grosse Teile des Produktes
nochmals neu entwickeln müsste und dadurch viel Zeit und Geld verliert. Ein weiterer Vorteil eines
MVPs ist die Validierung der Nachfrage am Markt (Clearbridge Mobile, o. D.). So kann es zwar sein,
dass man mit seinem Produkt die richtigen Bedürfnisse stillt, es aber schon einen Konkurrenten
gibt, der die Kundebedürfnisse des Marktes bereits abdeckt.
Minimum Viable Products sind auch ein guter Zeitpunkt, um über Priorisierung zu sprechen.
Schliesslich hat man sich dazu entschieden, nicht alle Features anzubieten und gewisse
Bedürfnisse bewusst nicht abzudecken. Wie aber kann die Entscheidung getroffen werden,
welches die richtigen Funktionalitäten für den MVP sind und welche zu einem späteren Zeitpunkt
umgesetzt werden sollen?
Ein Ansatz wäre, die aufgenommen Kundenbedürfnisse in konkrete Features aufzuteilen. Diese
könnten dann nach dem Mehrwert, den sie für den Kunden generieren, entsprechend priorisiert
werden. Dieser Schritt mache zwar Sinn, sollte jedoch gemäss in einem zweiten Durchgang auch
der Aufwand berücksichtigt werden (Olsen, 2015). Bis anhin wurde nur der Mehrwert für die
Kunden berücksichtigt, nicht jedoch den Entwicklungsaufwand für die einzelnen Features. Dieser
kann durch die Berechnung des Returns on Investments (ROI) miteinbezogen werden.

 − ä 
 = =
 
Obwohl diese Formel oft für finanzielle Investitionen und mit monetären Beträgen (z. B. CHF)
verwendet wird, kann sie auch für die Produktentwicklung eingesetzt werden. Dort wird die
Investition nicht in Geld angegeben, sondern in Entwickleraufwand in Tagen oder Wochen. Die
Rentabilität wird als generierten Mehrwert angegeben. Durch die Eingabe dieser Werte kann so
der ROI pro Feature oder Idee berechnet werden und kann anschliessend für die Priorisierung
verwendet werden. Eine reine Priorisierung nach ROI macht aber eher wenig Sinn, da die Kunden
einen gewissen Funktionsumfang im MVP erwarten. Es kann sein, dass dabei einige Features mit
niedrigem ROI vorkommen. Diese Berechnung dient also als Unterstützung und nicht als strikte
Vorgabe für eine Priorisierung.

7
 https://en.wikipedia.org/wiki/Minimum_viable_product

 Seite 12 von 70
Hochschule Luzern
 Department Informatik

2.2.3 Iterative Weiterentwicklung
In der dritten Säule der API-Strategie wird die Weiterentwicklung des API-Produkts durch
Iterationen beschrieben (Apigee, 2018). Damit ist gemeint, dass das Produkt ständig den gleichen
Prozess durchläuft. Es werden neue Hypothesen aufgestellt, neue Designs erstellt, User-Tests
durchgeführt und daraus Schlüsse gezogen.

Abbildung 4: Iterative and Incremental development model, Source: (Kakarla, 2019)

2.3 KPIs definieren und etablieren
In Kapitel 2.1.1 haben wir uns gewissen Fragen gestellt. Die API soll ein Business-Ziel erreichen.
Die API soll ein Problem lösen. Wie erkennen wir aber nun, ob wir unsere Ziele erreicht haben und
ob die API wirklich ein Problem gelöst hat? Genau hier kommen Key Performance Indicators (KPIs)
oder Leistungskennzahlen zum Zug. Diese helfen uns, anhand von Daten zu messen, ob unser
Produkt erfolgreich ist oder nicht. Gemäss (APImetrics, 2021) hat die Definition von KPIs eine
grosse Auswirkung auf das Produkt, die Benutzer und Partner. Was könnten aber potenzielle API
KPIs darstellen? Hergeleitet werden nachfolgend einige davon beschrieben (Moesif, 2021):

Uptime
Die Uptime ist sicher eine der grundlegendsten Metriken. Sie beschreibt, wie erreichbar oder
verfügbar ein Service ist. Es wird gemessen, wie viele Stunden oder Tage ein Service pro Jahr
ausgefallen ist. Hat eine API eine Uptime von 99%, so war sie während einem Jahr für 3.65 Tage
nicht verfügbar. Eine höhere Uptime von 99.9% würde nur noch einen Ausfall von 8.8 Stunden pro
Jahr erlauben. Populäre APIs wie zum Beispiel die Google Maps API oder die Google Search API
erreichen sogar regelmässig eine Uptime von 100% (TechCrunch, 2011). LMAX Digital, ein
führender Institutional Crypto Currency Exchange, hat bei institutionellen Marktteilnehmern eine
Umfrage durchgeführt. Auf die Frage, welches die drei wichtigsten Faktoren bei der Auswahl eines
Handelspartners für Kryptowährungen seien, antworteten knapp 70% mit «Verlässlichkeit der
Technologie wie z. B. Verfügbarkeit» (Arcane Research, 2021). Es war die häufigste Antwort von
allen, was zeigt, dass eine hohe Uptime eine wichtige Komponente des Produktes sein sollte.

Anzahl von Requests / Benutzung
Zu wissen, wie häufig eine API verwendet wird, ist ebenfalls eine grundlegende Metrik. Anhand
dieser Zahl können viele weitere Produktbereiche verbessert werden. Liegt die Benutzung unter
den Erwartungen, könnte es einen spezifischen Grund dafür geben. Ist die Funktionsweise nicht

 Seite 13 von 70
Hochschule Luzern
 Department Informatik

genügend beschrieben? Ist die Performance nicht gut genug und Kunden meiden deswegen die
Nutzung der API? Auch im Fall einer häufigen Nutzung hilft die Anzahl der Requests,
Entscheidungen zu treffen. Steigt die Zahl stetig an, muss irgendwann das Thema Skalierung in
Betracht bezogen werden. So können Ausfälle oder Performance-Einbussen frühzeitig vermieden
werden.

Fehlerhafte Requests
Nicht nur die Anzahl der Requests, sondern auch die fehlerhaften Requests sind zu beachten. Dies
erlaubt eine Analyse der verschiedenen Funktionalitäten der API. Es kann gemessen werden, ob
immer die gleichen Endpoints fehlschlagen. So können Fehler identifiziert und behoben werden.
Auch kann gemessen werden, ob die Fehler auf der Nutzer- oder Anbieterseite liegen. Treten
häufig Nutzerfehler am gleichen Ort auf, könnte dies ein Indikator für eine ungenügende
Dokumentation oder Inkonsistenz der Datentypen oder Schemas sein. In diesem Fall müsste
vielleicht das Design der API überdacht werden.

Umsatzvolumen über API
Ein wichtiger Indikator für die Erreichung der Business-Ziele ist die Messung des Umsatzvolumens
über die API. Da jede API gewisse Business-Ziele verfolgt und angenommen wird, dass eines davon
die Umsatzsteigerung ist, ist diese Metrik essenziell. Rückwirkend kann gemessen werden, ob das
Produkt die gewünschten Ziele erreicht hat oder nicht. Dies kann eine hilfreiche Stütze sein, um
das Produkt zu verbessern. Konnten die Ziele nicht erreicht werden, sollten in weiteren Iterationen
neue Massnahmen definiert werden. Auch kann diese Messung für Entscheidungen verwendet
werden, um zum Beispiel bestimmte Bereiche der API nicht mehr weiterzuentwickeln.

Der beste Kunde
Zu wissen, welches der beste Kunde ist, bringt viele Vorteile mit sich. Dabei geht es nicht nur
darum, wer die API am häufigsten nutzt, sondern auch mit welchem Kunden man am meisten
Umsatz generiert. Dies ermöglicht einem die Priorisierung der Weiterentwicklung. Vielnutzer der
API können eine Quelle von wertvollem Feedback und Verbesserungsvorschlägen sein. Auch kann
dadurch ein besonderer Fokus auf den Support für die wichtigsten Kunden gelegt werden.

API-Calls pro Business-Transaktion
Diese Zahl beschreibt, wie häufig ein Kunde verschiedene Endpoints aufrufen muss, bis er eine
Business-Transaktion tätigen kann. Diese Metrik widerspiegelt also direkt das Design der API.
Wenn Kunden immer viele verschiedene Aufrufe tätigen müssen, um die nötigen Daten zu
aggregieren, könnte dies auf ungeeignete Endpoints hinweisen. Schlussendlich sollten die
Endpoints so designt sein, dass der Kunde möglichst schnell sein Ziel erreicht. Daher sollten die
API-Calls pro Business-Transaktion möglichst tief sein.

CPU- und Speichernutzung
Diese Metrik hat eine direkte Korrelation mit der Metrik #2 und ist einer der wichtigsten Angaben
in Bezug auf die Performance der API. Gibt es keine oder nur wenige Requests, ist auch die CPU-
und Speichernutzung tief. Ist die Nutzung jedoch ständig am Limit, kann dies ein Hinweis auf
Überlastung sein und die Ressourcen müssen nach oben skaliert werden. Auch kann ständige
Überlastung auf Applikationsfehler hindeuten, wo Endlosschleifen oder andere rechenintensive
Fehler auftreten. Diese beiden Daten sollten also in ein Monitoring aufgenommen werden und bei
entsprechendem Überschreiten eines Schwellenwertes einen Alarm auslösen. So können Ausfälle
vorzeitig vermieden werden.

User & Developer Experience
Die höchste Uptime und das beste Design nützen nur wenig, wenn die Benutzerfreundlichkeit der
API ungenügend ist. Eine spannende Metrik in diesem Bereich ist durchschnittliche Antwortzeit
von Requests. Eine tiefe Latenz und schnelle Verarbeitungszeiten sind eine der wichtigsten

 Seite 14 von 70
Hochschule Luzern
 Department Informatik

Kundenbedürfnisse, wenn es sich um Finanztransaktionen handelt (Arcane Research, 2021). Wenn
bestimmte Endpoints ständig hohe Antwortzeiten aufweisen, kann dies an schlechter
Netzwerkinfrastruktur oder an ungünstigem API-Design liegen. Deshalb sollte ein Fokus auf
Performance gelegt werden und man sollte sich schon zu Beginn darüber Gedanken machen.
Eine zweite spannende Metrik bei der Benutzerfreundlichkeit ist die «Time To First Hello World
(TTFHW)». Sie gibt an, wie lange es dauert, bis ein Entwickler einen ersten Prototypen erstellt hat,
vom Zeitpunkt der Entdeckung der API. Idealerweise sollte diese Spanne so kurz wie möglich sein
und auf folgende Schritte des Entwicklers sollte geachtet werden:
 1. Registrierung um API nutzen können
 2. Dokumentation lesen
 3. Funktionsbeispiele der API einsehen
 4. Erste Aufrufe mit der API tätigen
Je schneller also diese Schritte durchlaufen werden können, desto besser ist das Nutzererlebnis
und es wird die Wahrscheinlichkeit einer späteren Nutzung gesteigert.

2.4 Security
Sobald man beginnt, externe APIs anzubieten, ist Security eines der wichtigsten Themen einer API-
Strategie überhaupt. Aus dem jährlichen Report «State of the Internet» von (Akamai, 2020) ist zu
entnehmen, dass ein wachsender Trend entsteht, wo Cyberkriminelle öffentliche API-Plattformen
von Finanzdienstleistungen ins Visier nehmen. Von Dezember 2017 bis November 2019
beobachtete Akamai 85,42 Milliarden Credential Stuffing Attacks 8. Fast 20 %, also 16.55
Milliarden, richteten sich gegen Hostnamen, die eindeutig als API-Endpunkte identifiziert wurden.
Davon waren 473.5 Millionen Angriffe auf Organisationen in der Finanzdienstleistungsbranche.

Diese wachsende Bedrohung spiegelt sich auch bei den Anforderungen für eine API-Integration
wider. Eine Umfrage von (Postman, 2021) zeigt auf, dass Security der wichtigste Faktor bei eine
API-Integration ist. Gleichauf mit Performance haben mehr als 2/3 der Befragten diese zwei Punkte
als die wichtigsten angegeben:

Abbildung 5: Berücksichtigte Faktoren bei API-Integration, Source: (Postman, 2021)

Umso essenzieller ist es also, die API-Security schon von zu Beginn an als eine der wichtigsten
Komponenten zu betrachten.

8
 https://en.wikipedia.org/wiki/Credential_stuffing

 Seite 15 von 70
Hochschule Luzern
 Department Informatik

2.4.1 Häufige Sicherheitslücken und Schwachstellen
(OWASP, 2019) hat eine Top 10 der häufigsten Sicherheitslücken veröffentlicht:
 • API1:2019 Broken Object Level Authorization
 API-Endpoints ermöglichen den Zugriff auf Ressourcen oder Objekte mit eindeutigen
 Identifikatoren. Diese Ressourcen sollten mit der entsprechenden Authentifizierung
 geschützt sein, dass auch nur die berechtigten Benutzer Zugriff darauf haben.
 • API2:2019 Broken User Authentication
 Die Endpoints für die Authentifizierung müssen besonders behandelt werden, da sie allen
 zur Verfügung stehen. Fehlerhafte Implementation oder fehlende Mechanismen zur
 Vorbeugung von Credential Stuffing oder Brute Force Attacks können zu grossem Schaden
 führen.
 • API3:2019 Excessive Data Exposure
 Häufig werden zu viele Attribute eines Objektes veröffentlicht. Es sollten nur diejenigen
 veröffentlicht werden, die vom API-Client wirklich benötigt werden.
 • API4:2019 Lack of Resources & Rate Limiting
 Der Zugriff auf die Anzahl der Ressourcen sollte limitiert werden. Ebenso die Anzahl der
 Aufrufe, die gemacht werden können. Ansonsten könnte dies zu einer Denial of Service
 (DoS) führen.
 • API5:2019 Broken Function Level Authorization
 Obwohl ein Benutzer authentifiziert ist, sollte er auch nur die Aktionen ausführen dürfen,
 die seiner Rolle gerecht werden. Normale Benutzer dürfen keine Admin-Funktionen
 durchführen. Auch das Ausführen von sensitiven Aktionen wie einem DELETE sollte nicht
 durch das einfache Austauschen eines HTTP Verbs von GET auf DELETE möglich sein.
 • API6:2019 Mass Assignment
 Werden vom API-Client gelieferte Daten (z. B JSON) automatisch auf Datenmodelle
 gemappt, ohne diese zu validieren, kann ein Mass Assignment entstehen. Daher sollten
 alle Daten zuerst nach den gewünschten Attributen validiert werden.
 • API7:2019 Security Misconfiguration
 Fehlerhafte Konfiguration entsteht häufig durch die Übernahme von unsicheren
 Standardeinstellungen, falsche HTTP-Headers, unnötige HTTP-Methoden, fehlende
 Unterbindung von CORS oder Fehlermeldungen mit sensitiven Daten.
 • API8:2019 Injection
 Diese Fehler, wie z. B. SQL-Injection treten dann auf, wenn nicht vertrauenswürdige Daten
 an den Interpreter geschickt und damit ausgehebelt werden. Dadurch können unerlaubte
 Aktionen ausgeführt werden.
 • API9:2019 Improper Assets Management
 APIs tendieren mehr Endpoints zu veröffentlichen als normale Webapplikation. Daher ist
 eine genau und aktuelle Dokumentation sehr wichtig. API-Versionierung tragen auch dazu
 bei, dass keine Probleme bei veralteten Endpoints auftreten.
 • API10:2019 Insufficient Logging & Monitoring
 Mangelndes Logging oder Monitoring kann dazu führen, dass Schwachstellen oder Angriffe
 unbemerkt bleiben. Sicherheitsverletzungen werden oft erst nach mehr als 200 Tagen
 festgestellt und von externen Parteien anstatt von Prozessen aufgedeckt.

 Seite 16 von 70
Hochschule Luzern
 Department Informatik

2.4.2 Best Practises für API-Security
Um obenstehende oder andere Sicherheitslücken und Schwachstellen zu vermeiden, gibt es einige
Best Practises in Bezug auf API-Security.

2.4.2.1 Rate Limiting
DoS-Attacken oder fehlerhafte Clients der API können zu Ausfällen führen. Werden Cloud-Provider
wie Azure, AWS oder Cloudflare verwendet, erhält man einen Schutz vor DoS-Attacken schon von
Haus aus. Trotzdem macht es jedoch Sinn, die Anzahl an erlaubten Requests zu limitieren, um die
Performance der API zu schützen (RedHat, 2019). Eine entsprechende Implementation ist dabei
gar nicht so aufwändig. Es gibt entsprechende Libraries, wie z. B. AspNetCoreRateLimit 9 für das
.NET Framework, die das Schützen von Endpoints erlauben. Ein Beispiel ist dem Anhang zu
entnehmen.

2.4.2.2 API-Gateway
Ein API-Gateway fungiert als Zwischenstufe zwischen den API-Clients und den verschiedenen
Backend-APIs. Dabei wird der ganze Traffic über den API-Gateway geroutet und ist damit der
einzige Einstiegspunkt. Dies hat den Vorteil, dass nicht alle Endpoints der verschiedenen Backend-
APIs exponiert werden müssen, sondern können in einer einheitlichen Form gegen aussen
präsentiert werden. Die Requests werden dann an den entsprechenden Service weitergeleitet. In
diesem Fall verhält sich der API-Gateway als Proxy für die darunterliegenden Services.

Abbildung 6: API Gateway, der Requests an Services weiterleitet, eigene Darstellung

Als zentrale Schnittstelle gegen aussen übernimmt der API-Gateway noch weitere Aufgaben: So
kann ein API-Gateway auch für die Authentifizierung eingesetzt werden (Thomas Bush, 2019).
Damit müssen sich Clients, die Daten von verschiedenen Services beziehen, nur einmal
authentifizieren. Zusätzlich wird sichergestellt, dass über alle Services der gleiche
Authentifizierungsstandard verwendet wird. Eine weitere Funktion des API Gateway kann auch die
Validierung des Inputs sein. So wird bei einem API-Aufruf überprüft, ob der Request alle nötigen
Informationen liefert und das richtige Format einhaltet. Dies bevor der eigentliche Service die
Daten erhält und versucht sie zu verarbeiten. Da der API-Gateway die zentrale Eintrittsstelle
darstellt, ist er optimal geeignet, gewisse Metriken zu sammeln. Es kann gesammelt werden,
welcher Benutzer wie viele Requests und an welche Services absendet. Dadurch kann die
Datenerhebung für einige KPIs von Kapitel 2.3 abgedeckt werden.

9
 https://github.com/stefanprodan/AspNetCoreRateLimit

 Seite 17 von 70
Hochschule Luzern
 Department Informatik

Trotz vielen Vorteilen bringt die Verwendung eines API-Gateways auch einige Nachteile mit sich:
Dadurch, dass der API-Gateway der zentrale Einstiegspunkt darstellt, ist er auch ein Single Point
of Failure10. Es entsteht eine Lernkurve, bis hochverfügbare APIs zur Verfügung stehen. Die
Konfigurierung der einzelnen APIs, bis sie sauber in den API Gateway integriert sind, bringt
zusätzliche Komplexität mit und bedeutet mehr Aufwand für die Entwickler bei der Orchestrierung
(Dashbird, o. D.).

2.4.2.3 Verschlüsslung
Ein weiterer essenzieller Teil der API-Security ist die Verschlüsslung. Sämtlicher Austausch
zwischen internen und externen Services sollte mittels TSL11 verschlüsselt werden (Debbie
Walkowski, 2020). TLS-Verschlüsslung wird HTTP unterstützt und kann somit bei allen REST APIs
eingesetzt werden. Durch diese Massnahme ist es einem Angreifer nicht möglich, die
abgefangenen Daten von einem Request zu lesen oder zu manipulieren. Zur Entschlüsselung wird
nämlich die richtige Signatur benötigt, die nur der Client kennt.

2.5 Authentifizierung und Autorisierung
Oft werden Authentifizierung und Autorisierung einander gleichgestellt, obwohl sie eine
unterschiedliche Bedeutung haben. Die beiden Begriffe beantworten unterschiedliche
Fragestellungen:
 1. Welcher Nutzer benutzt die API? (Authentifizierung)
 2. Welche Rechte hat der Nutzer der API? (Autorisierung)
Bei der Authentifizierung wird überprüft, welcher API-Client einen Aufruf tätigt und ob es sich
dabei auch wirklich um diesen Client hält. Bei der Autorisierung wird geprüft, welche Rechte der
API-Client besitzt und ob diese für die Ausführung der angefragten Aktion auch ausreichen. Um
solche Authentifizierungs- und Autorisierungsflows umzusetzen, gibt es viele verschiedene
Methoden und Frameworks. Einige der gängigsten werden nachfolgend beschrieben.

2.5.1 OAuth 2.0 mit OpenID Connect
Im RFC 674912 wird OAuth 2.0 als Autorisierungs-Framework beschrieben, welches es einem
Benutzer ermöglicht, einer Website oder Anwendung eine Drittanbieters Zugriff auf seine
geschützten Ressourcen zu gewähren, ohne dass er dabei seine Anmeldedaten oder sogar seine
Identität preisgeben muss. Im Alltag wird dieses Protokoll oft mit Aktionen wie «Sign in with
Google» oder «Sign in with Apple» verwendet. Die Trennung zwischen Authorization- und
Resource-Server ist dabei einer der grössten Vorteile. Nachstehende Grafik veranschaulicht den
Ablauf mittels OAuth 2.0.

10
 https://en.wikipedia.org/wiki/Single_point_of_failure
11
 https://en.wikipedia.org/wiki/Transport_Layer_Security
12
 https://datatracker.ietf.org/doc/html/rfc6749

 Seite 18 von 70
Hochschule Luzern
 Department Informatik

 Abbildung 7: OAuth 2.0 Flow, Source: (Oracle, 2018)

Als Ergänzung zu diesem Autorisierungs-Flow bildet OpenID Connect (OIDC) eine zusätzliche
Authentifizierungsschicht, die auf dem OAuth 2.0 Framework aufbaut. Es verifiziert Nutzer, indem
es grundlegende Profilinformationen erhält und diese bei einem Authentifizierungsserver
überprüft (OpenID Foundation, 2021).

2.5.2 Basic Authentication
Basic Authentication kommt einer klassischen Authentifizierung mittels Username und Passwort
am nächsten. Es ist Teil des HTTP-Protokolls und zählt zu den einfachsten Authentifizierung-
Schemas. Der API-Client sendet dabei einen HTTP-Header «Authorization» mittels kodiertem
Username und Passwort bei jedem Request mit. Da diese Kodierung (base64) sehr einfach
dekodierbar ist, sollte Basic Authentication immer nur in Kombination mit HTTPS/SSL verwendet
werden (Swagger, 2021). Ansonsten könnten Username und Passwort abgegriffen werden.

2.5.3 Bearer Authentication
Bearer Authentication ist ein HTTP-Authentifizierungsschema, welches Sicherheits-Tokens
namens Bearer Tokens verwendet (Swagger, 2021). Der Bearer Token ist ein String, der vom Server
nach einem Login-Request generiert wird. Wie bei Basic Authentication, wird dieser Token bei
jedem Request in dem «Authorization»-Header mitgeschickt. Bearer Authentication ist als Teil von
OAuth 2.0 entstanden und wird in RFC 6750 13 beschrieben. Bearer Authentication besitzt den
gleichen Nachteil wie Basic Authentication, indem es nur in Kombination mit HTTPS/SSL verwendet
werden sollte. Der String/Token ist nicht verschlüsselt und enthält sensitive Informationen.

13
 https://datatracker.ietf.org/doc/html/rfc6750

 Seite 19 von 70
Sie können auch lesen