Hier ein paar allgemeine Themen bzgl. Berechtigungen:

  1. Die DMSApp benötigt in fast allen Fällen immer einen authentifizierten Benutzer. Um in deiner App herauszufinden, welcher Benutzer gerade angemeldet ist benötigst du die AuthSessionId. Die AuthSessionID kommt zu deiner App entweder über den Header „Authorization“ mit dem Scheme „Bearer“ oder im Cookie „AuthSessionID“ (urlencoded!). Das variiert je nachdem ob deine App vom Browser oder von einer anderen App aus (Inter-App-Kommunikation) angesprochen wird. 
    Diese AuthSessionId muss auch beim Aufruf an die DMSApp mit übergeben werden. Im Browser passiert dies aufgrund des Cookies automatisch, in deiner App muss du das entsprechend berücksichtigen. Sinnvollerweise nimmst du hier den Authorization-Header. 

    Beispielaufruf mit entsprechender AuthSessionId und ClientID:


    Details dazu sind in der API-Dokumentation der IDP (IdentityProviderApp) beschrieben: https://developer.d-velop.de/documentation/dipa/de/d-ecs-identity-provider-api-125187928.html

  2. Deine App sollte damit umgehen können, dass die DMSApp nicht vorhanden ist. Wenn ein Mandant keine DMS-Features gebucht hat, dann ist die DMSapp dort auch nicht vorhanden und deine App bekommt entsprechende Fehlerstatuscodes beim Versuch die DMSApp aufzurufen.

  3. Ob bestimmte Funktionalitäten aufgrund von fehlenden Berechtigungen nicht gegeben sind, bekommst du i.d.R. darüber mit, dass eine Linkrelation (siehe hal+json) nicht herausgegeben wird. Daran kannst du in deiner App bestimmen was passieren soll, wenn das Recht nicht gegeben ist. Siehe "Wie komme ich an die korrekte URL um Funktionen aus dem Backend aufzurufen?“"
    Deine App sollte aber trotzdem damit klar kommen, wenn die DMSApp einen Fehlerstatuscode (bei unzureichender Berechtigung ist dies meistens „403 Forbidden“) zurückgibt.