Audit Logs vom SAP Authentication Service per Postman holen
Autor: Tobias Harmes | 10. September 2020
Der SAP Authentication Service (SAP IAS) dient als zentraler Identity Provider in vielen SAP Cloud Platform-Szenarien. Umso wichtiger die Security Events im Auge zu behalten - leider gibt es im IAS keinen eingebauten Audit Log Viewer. Eine Möglichkeit ist der freie API-client Postman.
SAP beschreibt den Zugriff auf das Audit Log hier: Access Audit Logs In Kurzform: man muss ganz Internet-API-typisch immer zwei Abfragen machen, einen um sich mit fixen API-credentials einen access_token zu besorgen und eine zweite Abfrage, um mit diesem access_token dann das Log im JSON-Format herunterzuladen. Der access_token hat dabei eine begrenzte Gültigkeit – darum muss man auch wirklich beide Schritte fest einplanen.
Schritt 1: die Log API credentials erzeugen (einmalig)
Auf die IAS Administration console gehen unter https://abcd12345.accounts.ondemand.com/admin/#/changeLogs – wobei abcd12345 eure Tenant-ID ist (die brauchen wir gleich noch).
Unter Monitoring & Reporting > Audit and Change Logs > Button „+ Generate“
Die Credentials gut aufschreiben, denn danach kann man sie nur noch löschen, aber nicht mehr anzeigen.
Schritt 2: Access token über Postman anfordern (einmal pro Session)
Die Credentials können genutzt werden, um einen zeitlich begrenzt gültigen access_token anzufordern. Postman ist dafür ein praktischer API-client, mit dem man alles Mögliche prüfen und abfragen kann. Im Programm erstellt man ein neuen Request über „Create new -> Request“ (ich mache das in meiner Collection SAP IAS).
Die notwendige URL für den Post-Request sieht wie folgt aus:
https://api.<SAP Cloud Platform host>/oauth2/apitoken/v1?grant_type=client_credentials
Wenn man seinen IAS in Europa hat, sollte man eu1.hana.ondemand.com als <SAP Cloud Platform host> verwenden, alle Varianten gibt es ebenfalls in der SAP Doku.
- URL: https://api.eu1.hana.ondemand.com/oauth2/apitoken/v1?grant_type=client_credentials
- Tab “Authorization”
- “Basis Auth”
- Hier die Credentials von zuvor verwenden, Username = <Client ID>, Password = <Client Secret>
- Request type “POST”
- Send
- Den access_token notieren
Schritt 3: Das Audit Log abrufen mit Postman
Hierfür sollte man sich einen eigenen Request anlegen, in dem man dann den jeweils aktuellen access_token einfügen kann. Das wird in den Head injiziert, der OAuth token sind dann ungefähr so aus: “Authorization: Bearer 31fce723412c5c18961f7e95d911ad31”
Hinweis: Wenn der access_token abgelaufen ist, muss man den Schritt 2 vorher wiederholen, um sich einen frischen access_token zu holen.
- URL https://api.eu1.hana.ondemand.com/auditlog/v1/accounts/abcd12345/AuditLogRecordsIds?$filter=(Time ge ‘2020-09-01T13.00.00’ and Time le ‘2020-09-02T05.00.00’) – wobei abcd12345 wieder die Tenant-ID ist. Der Filter Parameter ist optional – aber ohne zieht er ggf. die letzten 201 Tage komplett
- Tab Headers
- Key hinzufügen “Authorization” mit Value “Bearer <dein access_token>”
- Send
- Das Ergebnisset
- das Ergebnis in eine Datei speichern
Fazit
Hoffentlich spendiert SAP den Kunden noch die Option eines eingebauten Log Viewers, so wie es auch in der SAP Cloud Platform NEO und Cloud Foundry möglich ist. Allerdings sollten solche Logs im Betrieb sowieso besser vom Roboter ausgewertet werden. Fürs Troubleshooting wäre es aber wirklich hilfreich.