API Audit Checkliste
Eine umfassende Checkliste zur Überprüfung der API-Bereitschaft vor der Veröffentlichung, die Design, Dokumentation, Sicherheit und die Einhaltung von Richtlinien abdeckt.
Ergebnisse
Abschnitt betitelt „Ergebnisse“- Besseres Verständnis der Grundsätze der API Audit Checkliste
Wie es funktioniert
Abschnitt betitelt „Wie es funktioniert“Schritte
Abschnitt betitelt „Schritte“- Verwenden Sie die API Audit Checkliste, um sicherzustellen, dass der API-Entwurf die funktionalen und nicht-funktionalen Anforderungen erfüllt, einschließlich Sicherheit, Leistung und Compliance.
- Führen Sie Audits durch, um sicherzustellen, dass APIs vor der Veröffentlichung organisatorische, technische und rechtliche Standards erfüllen.
- Stellen Sie sicher, dass die Sicherheitsmodelle, die Gateway-Konfiguration und die rechtlichen Bestimmungen für die Verbraucher klar und verständlich sind.
- Passen Sie die API Audit Checkliste für Ihre Domäne an
- Gemeinsame Nutzung durch Geschäfts- und Technikfunktionen
REST-API-Checkliste
Abschnitt betitelt „REST-API-Checkliste“✅ Das Konzept ist fertig, wenn…
| Kriterien | OWASP API Top 10 | OpenAPI 3.1.x |
|---|---|---|
| Die API basiert auf klaren Geschäftsanforderungen. | API9:2019 | ❌ |
| API verbirgt rohe Backend-Daten; für die gemeinsame Nutzung konzipiert | API6:2023 | ❌ |
| Endpunkte haben einen geschäftlichen Nutzen und verfügen über Funktionsbeschreibungen | API9:2023 | ✅ (über Beschreibung) |
| Das API-Design ist konsistent mit anderen APIs. | API8:2023, API9:2023 | ❌ |
| Daten/Attribute werden in beschreibendem Englisch benannt | – | ❌ |
| Obligatorische Felder sind angegeben | API6:2019 | ✅ (über „required”) |
| Datumsangaben verwenden das ISO-Format mit Zeitzone | API8:2019 | ✅ (über Format: Datum-Uhrzeit) |
| Allgemeine Daten verwenden Standardwerte (z. B. ISO) | API6:2023, API8:2019 | ➖ (über Aufzählung, Format, Muster) |
| Feldnamen vermeiden Akronyme, verwenden vollständige Wörter | API9:2023 | ❌ |
| Beim Erstellen neuer Ressourcen werden Identifikatoren zurückgegeben | API2:2023 | ✅ (über Antwortschema/Beispiel) |
🧪 Der API-Design-Prototyp ist fertig, wenn…
| Kriterien | OWASP API Top 10 | OpenAPI 3.1.x |
|---|---|---|
| Alle Punkte der Konzept-Checkliste wurden geprüft | – | ❌ |
| Endpunktpfade enthalten maximal zwei Ressourcen/Unterressourcen | – | ❌ |
| Endpunkte und Attribute enthalten Beispiele | – | ✅ (über Beispiel, Beispiele) |
| POST wird zum Erstellen/Aktualisieren verwendet (nicht PUT, es sei denn, vollständig) | – | ❌ |
| DELETE wird zum Entfernen von Ressourcen verwendet | – | ❌ |
| Versionierungsstrategie festgelegt; wird vom Gateway unterstützt | API9:2023 | ❌ |
| GET hat keinen Request-Body; gibt 200 OK mit Inhalt zurück | – | ➖ (Konvention; nicht erzwungen) |
| GET gibt 204 zurück, wenn der Antworttext leer ist | – | ✅ (204-Antwort kann definiert werden) |
| POST gibt 200 OK zurück, wenn eine Aktualisierung erfolgt | – | ✅ (Statuscodes können definiert werden) |
| POST gibt bei der Erstellung 201 Created with ID zurück | – | ✅ |
| DELETE gibt bei Erfolg 204 OK zurück | – | ✅ |
| 400-Fehler liefern spezifische Fehlerinformationen | API6:2023 | ✅ (im Antwortschema beschrieben) |
| 401 Nicht autorisiert aufgrund falscher Anmeldedaten | API2:2023 | ✅ (Standard-Antwortdokumentation) |
| 403 Für nicht autorisierte Vorgänge verboten | API5:2023 | ✅ |
🚀 API ist in der Produktion wartbar, wenn…
| Kriterien | OWASP API Top 10 | OpenAPI 3.1.x |
|---|---|---|
| Alle Prototyp-/Designelemente geprüft | – | ❌ |
| Veröffentlicht über API-Management | API10:2019, API8:2023 | ❌ |
| Sichtbar im Entwicklerportal | API9:2023 | ❌ |
| Nur über API-Gateway zugänglich | API9:2023, API8:2023 | ❌ |
| Ratenbeschränkungen werden durchgesetzt | API4:2023 | ❌ |
| Dokumente werden automatisch aus Spezifikationen/Schemas generiert | API9:2023 | ✅ |
| Spezifikationen werden automatisch auf Gateway/Entwicklerportal aktualisiert | API9:2023 | ✅ (indirekt über Tooling) |
| Spezifikation bei jeder Änderung validiert | – | ✅ (Best Practice) |
| Spezifikation enthält Anfrage-/Antwort-Schema | – | ✅ |
| Schema und Beispiele bestehen die Validierung | – | ✅ |
| Verwendet HTTPS oder verschlüsselte Protokolle | API10:2023 | ❌ |
| Veröffentlicht unter offizieller Organisationsdomain | API8:2023 | ❌ |
| Endpunkte durch Authentifizierung geschützt | API2:2023, API4:2023 | ➖ (Sicherheitsschemata können definiert werden) |
| Token-basierte Authentifizierung | – | ✅ (über securitySchemes) |
| Geschützt gegen CSRF | API8:2023 | ❌ |
| Eingaben werden automatisch vom Framework validiert | API8:2023 | ✅ (indirekt über Schema) |
| Ausgaben werden vom Framework automatisch maskiert | API8:2023 | ❌ |
| Verschlüsselung für Daten während der Übertragung/Speicherung | API8:2023 | ❌ |
| Nachrichtenintegrität implementiert | API6:2023, API7:2023 | ❌ |
| UUIDs/Pseudo-Identifikatoren anstelle von DB-IDs | API7:2023 | ➖ (im Beispiel empfohlen) |
| Keine sensiblen Daten in URLs | API7:2023 | ❌ |
| HTTP-Methoden nur für vorgesehene Ressourcen | API5:2023 | ✅ (in Pfaden definiert) |
ASync-API-Checkliste
✅ Konzept ist bereit, wenn…
| Kriterium | AsyncAPI 2.x |
|---|---|
| Die API basiert auf klaren Geschäftsanforderungen | ❌ |
| Die API verbirgt rohe Backend-Daten und ist für die gemeinsame Nutzung konzipiert | ❌ |
| Die API verfügt über eine Beschreibung, die ihren geschäftlichen Nutzen und ihre Funktionen erläutert | ✅ |
| Die API hat ein einheitliches Design mit unseren anderen APIs | ❌ |
| API und Datenbenennung verwenden gutes Englisch (oder eine andere Standardsprache) | ❌ |
| Obligatorische Felder sind angegeben | ✅ |
| Datumsangaben entsprechen dem ISO-Standardformat einschließlich Zeitzone | ✅ |
| Allgemeine Daten verwenden Standardwerte (z. B. ISO). | ➖ |
| Felder werden vollständig beschrieben, Abkürzungen werden vermieden | ❌ |
| Bei der Veröffentlichung neuer Nachrichten werden die relevanten Themen oder Kanäle klar gekennzeichnet | ✅ |
🧪 API-Design-Prototyp ist fertig, wenn…
| Kriterium | AsyncAPI 2.x |
|---|---|
| Alle Punkte der Konzept-Checkliste sind geprüft | ❌ |
| Das Nachrichten-Design enthält eine klare Struktur (Ereignisse, Befehle, Abfragen) | ✅ |
| Alle Nachrichten und Attribute enthalten Beispiele | ✅ |
| Nachrichten folgen einer einheitlichen Struktur über Themen/Kanäle hinweg | ✅ |
| Die Strategie zur Versionierung von Nachrichten wurde festgelegt | ❌ |
| Bestätigungen für empfangene Nachrichten sind definiert (falls zutreffend) | ✅ |
| Fehler oder Probleme mit Nachrichten enthalten spezifische Fehlerinformationen | ✅ |
| Authentifizierungs- und Autorisierungsstrategien sind festgelegt | ➖ |
🚀 Die API ist in der Produktion wartbar, wenn…
| Kriterium | AsyncAPI 2.x |
|---|---|
| Alle Punkte in den Checklisten für Prototyp und API-Design werden geprüft | ❌ |
| Die API wird über ein geeignetes AsyncAPI-Verwaltungswerkzeug verwaltet. | ❌ |
| Die API ist in einem Entwicklerportal sichtbar | ❌ |
| Bei der Übermittlung von Nachrichten werden Ratenbegrenzungen durchgesetzt (falls zutreffend) | ❌ |
| Die API-Dokumentation wird automatisch aus der AsyncAPI-Spezifikation generiert | ✅ |
| Die Spezifikation wird automatisch in den API-Tools und im Portal aktualisiert | ✅ |
| Die Spezifikation für Themen/Kanäle wird bei jeder Änderung validiert | ✅ |
| Die Spezifikation enthält das Schema für die Nachrichten | ✅ |
| Nachrichtenschema und Beispiele bestehen die Schema-Validierung | ✅ |
| Der Nachrichtentransport gewährleistet die Sicherheit (z. B. MQTT/AMQP über TLS) | ❌ |
| Die API wird unter der offiziellen Domain der Organisation betrieben | ❌ |
| Alle Themen/Kanäle sind durch Authentifizierung geschützt | ➖ |
| Die API verfügt über eine tokenbasierte Authentifizierung | ✅ |
| Die Verschlüsselung von Daten während der Übertragung und Speicherung wird nach Bedarf implementiert | ❌ |
| Die Nachrichtenintegrität wurde nach Bedarf implementiert | ❌ |
| Anstelle von DB-IDs werden UUIDs oder Pseudokennungen verwendet | ➖ |
| Sensible Informationen werden nicht in Themen oder Kanälen offengelegt | ❌ |
| Mithilfe von Whitelists wird festgelegt, welche Clients veröffentlichen/abonnieren dürfen | ✅ |
Accelerate Your APIs with APIOps Cycles Workshop
A compact, high-impact 2-hour online or onsite workshop for API product owners, architects, platform teams, and IT leaders.
Learn more