SAP
Nova verwaltet in SAP-ABAP-Systemen Konten – in SAP „Benutzer“ genannt – und ihre Rollen. Dazu ruft Nova per RFC Standard-BAPIs und den Funktionsbaustein RFC_READ_TABLE auf.
Voraussetzung: SAP NetWeaver RFC SDK
Nova nutzt für RFC die Python-Bibliothek pyrfc, die das SAP NetWeaver RFC SDK voraussetzt. Das SDK liefert Nova nicht mit; der Betreiber bezieht es von SAP. Ohne SDK stehen die SAP-Funktionen nicht zur Verfügung.
Verbindung
Ein Zielsystem steht für ein SAP-System mit einem Mandanten. Die Felder: „SID“, „Application Server Host“, „System-Nummer“, „Mandant“, „Benutzer“ und „Passwort“ des RFC-Benutzers sowie „Sprache“. Unter „Erweitert“ stehen „Message-Server-Host“, „Message-Server-Port“ und „Logon-Gruppe“ für die Lastverteilung sowie der „SAP-Router-String“. „Status prüfen“ ruft RFC_PING auf.
Konten
| Aktion | Funktionsbaustein |
|---|---|
| Anlegen | BAPI_USER_CREATE1 |
| Adressdaten ändern | BAPI_USER_CHANGE |
| Sperren, Entsperren | BAPI_USER_LOCK, BAPI_USER_UNLOCK |
| Löschen | BAPI_USER_DELETE |
Jede Änderung schreibt Nova mit BAPI_TRANSACTION_COMMIT fest. Vor- und Nachname müssen für SAP getrennt vorliegen; einen Gesamtnamen teilt Nova nicht selbst auf. Nach dem Anlegen und nach Namensänderungen liest Nova die Namensfelder zurück und meldet eine Abweichung.
Passwörter übergibt Nova als Initialpasswort, nicht als produktives Passwort. SAP verlangt deshalb bei der ersten Anmeldung eines Dialogbenutzers ein neues Passwort. Legt Nova ein Konto ohne Passwort an, ist die Anmeldung per Passwort deaktiviert. Passwörter, die Nova für SAP erzeugt, haben höchstens 40 Zeichen, beginnen nicht mit „!“ oder „?“ und nicht mit drei gleichen Zeichen.
Den letzten Login liest Nova aus der Tabelle USR02.
Rollen
Nova kennt Einzel- und Sammelrollen. Ein Job vom Typ „SAP-Roles importieren“ liest den Rollenkatalog, auf Wunsch gefiltert (etwa Z*). Sammelrollen erkennt Nova am Kennzeichen in AGR_FLAGS, ihre Einzelrollen liest Nova aus AGR_AGRS, Kurztexte auf Deutsch und Englisch aus AGR_TEXTS. Liefert SAP die Rollenstruktur unvollständig, bricht der Import ab und lässt die bisher importierten Definitionen unverändert. Rollen gelten je Zielsystem: Gleichnamige Rollen zweier SAP-Systeme bleiben getrennte Berechtigungen.
Gültigkeit
SAP verwaltet Gültigkeitszeiträume von Rollenzuweisungen selbst (FROM_DAT, TO_DAT). Nova überträgt Beginn und Ende jeder Zuweisung mit, auch wenn sie erst in der Zukunft beginnt. Ohne Beginn setzt Nova das aktuelle Datum, ohne Ende den 31.12.9999. Hat dieselbe Rolle für ein Konto mehrere Zeiträume mit einer Lücke dazwischen, schreibt Nova nichts und meldet einen Fehler, statt die Lücke zu überbrücken.
Schreiben und Rücklesen
SAP nimmt Rollenzuweisungen nur als vollständige Liste an (BAPI_USER_ACTGROUPS_ASSIGN). Nova sendet deshalb bei jeder Änderung den vollständigen Soll-Rollenbestand des Kontos mit seinen Zeiträumen.
Bestehende Konten übernehmen
Weil SAP die gesendete Liste als vollständigen Bestand übernimmt, sollten die vorhandenen Rollen eines bestehenden Kontos in Nova bekannt sein, bevor Nova ihm zum ersten Mal Rollen zuweist: Rollenkatalog importieren, dann einen Abgleich mit dem Zielsystem als führender Seite durchführen. Künftig bleiben Rollen, die Nova nicht verwaltet, bei Zuweisungen durch Nova unberührt. geplant
Nach dem Festschreiben liest Nova die Rollen des Kontos zurück und vergleicht Namen und Zeiträume mit dem Soll; die Einzelrollen einer Sammelrolle berücksichtigt Nova dabei. Weicht etwas ab, gilt die Änderung als fehlgeschlagen, und Nova nennt die betroffenen Rollen. Die festgestellten Änderungen je Rolle hält Nova im Änderungsjournal fest.
Eine Rolle für viele Konten
Ein Hintergrund-Job vom Typ „SAP-Rolle massenhaft zuweisen“ gibt eine SAP-Rolle vielen Konten oder entzieht sie ihnen, mit optionalem Gültigkeitszeitraum. Die Auswahl erfolgt über Filter wie Identitätstyp oder Abteilung; ohne Statusfilter wählt Nova nur aktive Identitäten aus, KI-Agenten nie. Ein Lauf umfasst höchstens 500 Konten.
Nova bearbeitet die Konten nacheinander und schreibt und prüft jedes wie oben beschrieben. Rollen, die eine gültige Business-Rolle der Identität verlangt, entzieht der Job nicht. Fehler einzelner Konten sammelt Nova im Ergebnis, ohne den Lauf abzubrechen. Ein Abbruch durch Administratoren greift zwischen zwei Konten.
Welche Rechte Nova im SAP-System braucht
Der SAP-Connector ruft die folgenden Funktionsbausteine auf. Das SAP-Basis-Team kann daraus eine Rolle für den RFC-Benutzer ableiten.
| Funktionsbaustein | Zweck |
|---|---|
RFC_PING | Verbindungstest |
BAPI_USER_GETLIST | Konten auflisten (Import) |
BAPI_USER_GET_DETAIL | Adresse, Sperrstatus und Rollen lesen |
BAPI_USER_CREATE1 | Konten anlegen |
BAPI_USER_CHANGE | Adressdaten ändern, Passwort setzen |
BAPI_USER_LOCK, BAPI_USER_UNLOCK | Sperren, Entsperren |
BAPI_USER_DELETE | Konten löschen |
BAPI_USER_ACTGROUPS_ASSIGN | Rollen zuweisen |
BAPI_TRANSACTION_COMMIT | Änderungen festschreiben |
RFC_READ_TABLE | Tabellen lesen, siehe unten |
| Tabelle | Gelesene Felder | Zweck |
|---|---|---|
AGR_DEFINE | AGR_NAME, PARENT_AGR | Rollenkatalog |
AGR_FLAGS | AGR_NAME, FLAG_TYPE, FLAG_VALUE | Sammelrollen erkennen |
AGR_AGRS | AGR_NAME, CHILD_AGR | Einzelrollen einer Sammelrolle |
AGR_TEXTS | AGR_NAME, SPRAS, TEXT | Rollentexte |
USR02 | BNAME, TRDAT, LTIME | letzter Login |
Zur Orientierung: SAP prüft solche Aufrufe üblicherweise über die Berechtigungsobjekte S_RFC (Funktionsbausteine), S_USER_GRP (Benutzerpflege), S_USER_AGR (Rollenzuweisung) sowie S_TABU_NAM oder S_TABU_DIS (Tabellen lesen). Welche Objekte und Werte ein System tatsächlich prüft, legt das SAP-Basis-Team fest.
Das Zusatzmodul „SoD-Analyse (SAP ABAP)“ muss eigens eingeschaltet werden. Es liest zusätzlich die Tabelle AGR_1251 mit den Berechtigungswerten der Rollen; siehe Funktionstrennung (SoD).