API-Sicherheit

In diesem Dokument wird das Authentifizierungs- und Sicherheitsmodell der M3-Anwendungsprogrammierschnittstelle (API) beschrieben. Außerdem enthält es Empfehlungen zur Konfiguration und Einrichtung der Umgebung für den Zugriff über APIs.

Einführung

Eine API ist eine Schnittstelle zu einem M3-Programm, die es einem externen Anwendungsprogramm ermöglicht, Transaktionen zum Upload oder Download bestimmter Daten, zur Aktivierung bestimmter Routinen usw. durchzuführen.

Für die Interaktion mit M3 APIs gibt es zwei verschiedene Methoden. Nach der herkömmlichen Methode führt die Client-Komponente eine Socket-Kommunikation mittels eines proprietären Protokolls aus. Nun wurde aber die Kommunikation über Webdienste eingeführt. Die Webdienste nutzen HTTP/HTTPS-Kommunikation sowie das Rest-Protokoll.

Die Client-Komponente kommuniziert über offene Kanäle und sollte vorzugsweise innerhalb eines internen Netzwerks verwendet werden. Die Java-Version der Client-Schnittstellen unterstützt auch eine SSL-Datenübertragung und -Authentifizierung durch Zertifikate. Die Kommunikation über eine Client-Komponente ist für mehrinstanzenfähige Cloud-Umgebungen nicht geeignet.

Die HTTP-Kommunikation der Webdienste erfolgt ebenfalls über offene Kanäle. HTTP eignet sich nur für interne Netzwerke. Für den Zugriff von externen Quellen sollte HTTPS verwendet werden. In mehrinstanzenfähigen Cloud-Umgebungen ist HTTPS erforderlich.

M3-API-Implementierung

Wenn für den Zugriff auf M3-Software die M3-API-Technik verwendet wird, müssen die Benutzeranmeldedaten beim ersten Login eingegeben werden.

In allen API-Programmen ist der Benutzerzugriff auf bestimmte Firmen beschränkt. In API-Programmen können innerhalb der verschiedenen Anwendungsbereiche Einschränkungen auf Feldebene sowie für Standort, Lagerort usw. gelten.

Über M3 API haben Benutzer standardmäßig Zugriff auf jedes API-Programm und auf jede Transaktion, was vielleicht nicht wünschenswert ist. Benutzer können jedoch bei der Verwendung von API-Programmen und deren Transaktionen eingeschränkt sein.

M3 BE bietet folgende Methoden zum Verwalten der Sicherheit für M3 API:

  • Berechtigungen nach Transaktion - "Funktion. API-Berechtigung zuordnen" (SES005)
  • Berechtigungen nach Rollen - "Funktion. Berecht. nach Rolle zuordnen" (SES400) und "API-Transaktion. Sich.-Option verbinden" (SES405)

Benutzerauthentifizierung

M3-Benutzer werden über den Plattformmechanismus für die Benutzerauthentifizierung authentifiziert. Der Benutzer muss auch in M3 mit dem Programm (MNS150) registriert sein.

Es gibt zwei Arten von Benutzerprofilen in Bezug auf die M3 API. Die verwendete Art hängt hauptsächlich vom Aufbau der Client-Anwendungen ab.

  • Benutzer können an ihren Workstations mit Client-Anwendungen arbeiten, die direkt auf den M3-Anwendungsserver zugreifen. Sie melden sich wie gewohnt mit ihren Anmeldedaten bei der M3-Anwendung an.
  • Benutzer greifen über einen Zwischenserver wie beispielsweise einem Web-Server auf die Client-Anwendung zu und melden sich zu keinem Zeitpunkt beim M3-Anwendungsserver an. Stattdessen meldet sich die Anwendung mithilfe eines gemeinsam genutzten Benutzerprofils an, das speziell für diesen Zweck erstellt wurde. Beispiele für solche Anwendungen sind M3 WebShop oder der M3 API SOAP-Server.

Die Authentifizierung der M3-Benutzer erfolgt mit dem Verfahren der jeweils verwendeten Plattform. Für M3-Benutzer müssen wie üblich Benutzerprofile zur Verwendung der M3 API definiert werden.

Gemeinsam genutzte Benutzerprofile, die von Serveranwendungen verwendet werden, sollten möglichst so definiert werden, dass sich Benutzer nicht über Schnittstellen beim Anwendungsserver anmelden können.

Berechtigungen nach Transaktion in (SES005)

Sie können bis hinunter zur Transaktionsstufe einschränken, welche Programme und Transaktionen jeder Benutzer verwenden darf. Das Programm für diesen Zweck ist "Funktion. API-Berechtigung zuordnen" (SES005).

Systemeinstellungen in (MNS090)

Die API-Sicherheit für Berechtigungen nach Transaktion wird aktiviert, wenn Sie in "Systemeinstellungen. Öffnen" (MNS090) für den Parameter "API-Sicherheit" die Eingabe 1 - "Sicherheit über Autorisierung" auswählen.

Wenn Sie Eingabe 1 auswählen, müssen Benutzer, die API-Transaktionen verwenden dürfen, in (SES005) hinzufügt werden. Wenn in (SES005) keine Einträge für Benutzer vorhanden sind, gilt die API-Transaktion als abgelehnt.

Berechtigungen zuordnen in (SES005)

Fügen Sie in "Funktion. API-Berechtigung zuordnen" (SES005) Benutzer hinzu, die berechtigt sein sollen, M3 API-Transaktionen zu nutzen. Im Berechtigungsmodus sind standardmäßig keine API-Programme oder Transaktionen erlaubt.

Es können aber für einen Benutzer die Programme und Transaktionen angegeben werden, die dieser verwenden darf. Sie können das Programm und die Transaktionen so einstellen, dass sie die entsprechenden Werte abrufen. Um die Erfassung zu vereinfachen, können Sie alle Transaktionen des laufenden Programms abrufen und dann die Transaktionen entfernen, die nicht relevant sind.

Zudem können Sie alle Transaktionen in einem Programm zulassen, indem Sie für einen bestimmten Benutzer den Wert *ALL angeben. Sie können einem Benutzer den Zugriff auf alle Programme und Transaktionen auch gestatten, indem Sie den Wert *ALL auf Programmebene angeben.

API-Sicherheit mit Berechtigungen nach Rollen

Das für Funktionen verwendete rollenbasierte Sicherheitsmodell kann auch für API-Transaktionen verwendet werden, bei denen ein API-Programm (z. B. CRS610MI) einer Funktion entspricht (z. B. "Kunde. Öffnen" (CRS610)). Jeder API-Transaktion wird eine Sicherheitsoption zugewiesen, die einer Option für Funktionen entspricht. Hierfür werden die Programme (SES400) und (SES405) verwendet.

Die API-Sicherheit über Berechtigungen nach Rollen wird aktiviert, wenn Sie in "Systemeinstellungen. Öffnen" (MNS090) für den Parameter "API-Sicherheit" die Eingabe 2 - "Sicherheit über Rollen" auswählen.

Hinweis

Bevor diese Option ausgewählt werden kann, müssen erst alle API-Transaktionen und Standardsicherheitsoptionen in (SES405) generiert werden. Eine Transaktion, die nicht vorhanden ist oder für die in (SES405) die Sicherheitsoption leer ist, gilt als eingeschränkt und wird für alle Benutzer abgelehnt.

Sicherheitsoptionen in (SES405)

Jede API-Transaktion muss in "API-Transaktion. Sich.-Option verbinden" (SES405) mit einer Sicherheitsoption verbunden sein. Datensätze und Sicherheitsoptionen für alle vorhandenen API-Programme und Transaktionen werden in (SES405) mit der Funktionstaste F18 = Standard gen. generiert. Die Sicherheitsoptionen werden auf einen auf dem Transaktionsnamen basierenden Standardwert gesetzt und entsprechen den in den Funktionen verwendeten Standardoptionen (1-6). Die Optionen können später manuell geändert werden. Das Programm wird pro Tenant eingerichtet.

F18 kann auch später noch verwendet werden, um das Programm mit neuen API-Transaktionen und Standardsicherheitsoptionen zu aktualisieren.

Diese Tabelle zeigt, wie die Sicherheitsoptionen auf Basis des Transaktionsnamens festgelegt werden:

Sicherheitsoption Der Name der API-Transaktion beginnt mit
1 Add, Create, Crt
2 Change, Chg, Update, Upd
3 Copy, Cpy
4 Delete, Del, Dlt
5 Get, List, Lst, Search, Select, Sel
6 Print, Prt
Hinweis

Alle Transaktionen, für die keine Standardsicherheitsoption auf Basis des Namens bestimmt werden kann, erhalten Sicherheitsoption 2.

Diese Tabelle zeigt ein Beispiel für die Standardsicherheitsoptionen, die für CRS610MI (Kundenschnittstelle) abhängig vom Typ der Transaktion festgelegt werden.

Sicherheitsoption API-Transaktion Beschreibung
1 Hinzufügen Neuen Kundendatensatz erstellen
1 AddAddress Neue Kundenadresse erstellen
1 AddText Text für den Kunden hinzufügen
2 CheckPIN Kundennummer und PIN prüfen
2 ChgAddress Adressdaten des Kunden ändern
2 ChgBasicData Grunddaten des Kunden ändern
3 Kopieren Vorhandenen Kundendatensatz kopieren
4 Löschen Kundendatensatz löschen
4 DeleteAddress Adressdatensatz des Kunden löschen
2 EXPORTSMS In SMS exportieren
5 GetAddress Adressdaten des Kunden abrufen
5 GetBasicData Grunddaten des Kunden abrufen
5 LstAddresses Mit Kundenadresse verknüpfte Informationen auflisten

Wenn Sie später die Sicherheit für ein neues API-Programm oder eine neu implementierte Transaktion einrichten möchten, geben Sie den Namen des neuen API-Programms im Feld "Programm" ein und drücken die Eingabetaste. Danach wird in der Tabelle CMNSMI (SES405) jede neue Transaktion der API mit einer leeren Sicherheitsoption erstellt. Sie können die Option entweder manuell eingeben oder die Standardoption des Systems übernehmen, indem Sie die Schaltfläche "Standardoptionen" oder die Funktionstaste F14 = Standardoptionen verwenden. Nur API-Transaktionen, deren Sicherheitsoption leer ist, werden mit F14 aktualisiert.

Dies sind die gültigen Sicherheitsoptionen für API-Transaktionen:

  • Die Optionen 00-99 können manuell eingestellt werden.
  • Die Option 00 erfordert keine Berechtigung und wird als offen für alle Benutzer betrachtet.
  • Option "**" wird in (SES405) mit den Funktionstasten F14 oder F18 festgelegt und unterliegt nicht den Sicherheitsbestimmungen, die nötig sind, damit M3 ausgeführt werden kann. Diese Sicherheitsoption kann nicht geändert werden.
Hinweis

API-Transaktionen, deren Sicherheitsoption leer ist oder die nicht in (SES405) aufgeführt sind, gelten als eingeschränkt und werden für alle Benutzer abgelehnt, wenn in (MNS090) der Parameter "API-Sicherheit" auf 2 -"Sicherheit über Rollen" eingestellt ist.

Berechtigungen nach Rolle in (SES400)

Die Sicherheitsoptionen (1-99), die für ein API-Programm, eine Rolle, eine Firma und eine Division gültig sein sollen, werden in "Funktion. Berecht. nach Rolle zuordnen" (SES400) auf die gleiche Weise definiert wie für Funktionen. Für API-Programme kann die verknüpfte Option 11 = API-Transaktionssicherheit zum Öffnen von (SES405) verwendet werden. Das Ergebnis der Einrichtung in (SES400) kann in "Berechtigung pro Benutzer. Anzeigen" (SES401) angezeigt werden.

Hier ein Beispiel für die Verbindung zwischen der Sicherheitsoption in (SES400) und (SES405):

Sie haben eine Rolle namens "ANZEIGEN" erstellt, die nur für Transaktionen gelten soll, die Datensätze eines API-Programms anzeigen oder auflisten. In (SES400) erstellen Sie einen Datensatz für das API-Programm und aktivieren das Kontrollfeld für Sicherheitsoption 5. Stellen Sie dann sicher, dass die in (SES405) für das API-Programm angezeigten und aufgelisteten Transaktionen mit Sicherheitsoption 05 verbunden sind.

Funktion in (MNS110)

Mit dem Parameter "Berecht.erford." in "Funktion. Öffnen" (MNS110) wird festgelegt, ob Eingaben in (SES401) erforderlich sind, damit der Benutzer auf das API-Programm zugreifen kann.

Wenn dieser Parameter auf "1" gesetzt werden soll, geben Sie in Bild B im Feld "Funktion" den Namen des API-Programms ein, und wählen Sie dann "Erstellen" aus. Wählen Sie in Bild E "Funktionstyp" = API – "API-Programm" aus. Aktivieren Sie dann das Kontrollfeld "Berecht.erford.", und drücken Sie die Eingabetaste.

Diese Tabelle zeigt, ob ein Benutzer berechtigt ist, eine API-Transaktion auszuführen oder nicht, abhängig von der Einstellung des Parameters in (MNS110), der in (SES401) und (SES405) eingerichtet wurde.

Parameter "Berecht.erford." auf 0 gesetzt:

Datensatz in (SES401) für Benutzer/Programm API-Transaktion in (SES405) und verbundene Sicherheitsoption Benutzer, der berechtigt ist, eine API-Transaktion auszuführen
Nein Nein Nicht erlaubt
Nein Ja - Option leer Nicht erlaubt
Nein Ja - jede Option von 00-99 Erlaubt
Ja - Option 5 erlaubt Nein Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option leer Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option 02 Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option 05 Erlaubt

Parameter "Berecht.erford." auf 1 gesetzt:

Datensatz in (SES401) für Benutzer/Programm API-Transaktion in (SES405) und verbundene Sicherheitsoption Benutzer, der berechtigt ist, eine API-Transaktion auszuführen
Nein Nein Nicht erlaubt
Nein Ja - Option leer Nicht erlaubt
Nein Ja - Option 05 Nicht erlaubt
Ja - Option 5 erlaubt Nein Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option leer Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option 02 Nicht erlaubt
Ja - Option 5 erlaubt Ja - Option 05 Erlaubt