Zum Inhalt springen

Authentifizierung an der API

Jede Anfrage an die API läuft im Namen eines Benutzers des invoiceR. Die Anwendung hat genau die Berechtigungen, die dieser Benutzer über seine Rollen hat.

Der invoiceR kennt zwei Arten, sich an der API anzumelden:

VerfahrenHeaderGültigkeitGeeignet für
ZugriffstokenAuthorization: Bearer <token>kurz, wird bei jeder Anmeldung neu ausgestelltAnwendungen, die Benutzername und Passwort kennen dürfen
Persönliches Zugriffstoken (PAT)Authorization: PAT <token>bis zum gewählten Ablaufdatum, Standard ein JahrDienste und Skripte, die ohne Passwort laufen sollen
  1. Sende Benutzername (oder E-Mail-Adresse) und Passwort an POST /api/TokenAuth/Authenticate:

    POST https://<server>/api/TokenAuth/Authenticate
    Content-Type: application/json
    { "userNameOrEmailAddress": "api-benutzer", "password": "<passwort>" }
  2. Die Antwort enthält im Feld result.accessToken das Zugriffstoken.

  3. Gib das Token bei jeder weiteren Anfrage im Header mit:

    Authorization: Bearer <accessToken>

Läuft das Token ab, meldest du dich erneut an.

Ein persönliches Zugriffstoken gehört zu genau einem Benutzer. Eine Anwendung, die es verwendet, handelt mit den Rechten dieses Benutzers, ohne sein Passwort zu kennen.

Ein PAT erstellst du über die API, angemeldet als der Benutzer, dem das Token gehören soll:

  1. Melde dich als dieser Benutzer an (zum Beispiel wie oben mit Benutzername und Passwort, oder in der Swagger UI).

  2. Rufe POST /api/services/app/Authentication/CreatePersonalAccessToken auf und gib an, bis wann das Token gültig sein soll:

    POST https://<server>/api/services/app/Authentication/CreatePersonalAccessToken
    Authorization: Bearer <accessToken>
    Content-Type: application/json
    { "validUntil": "2027-10-31T00:00:00Z" }

    Lässt du validUntil weg, ist das Token ein Jahr gültig. Ein Datum in der Vergangenheit lehnt der invoiceR ab.

  3. Die Antwort enthält das Token im Klartext. Speichere es sofort an einem sicheren Ort, zum Beispiel im Passwort-Tresor oder in der Konfiguration der Anwendung.

Gib das Token bei jeder Anfrage im Header Authorization mit dem Präfix PAT mit:

GET https://<server>/api/services/app/Session/GetCurrentLoginInformations
Authorization: PAT <token>

Der invoiceR lehnt das Token ab, wenn es abgelaufen ist oder wenn der Benutzer oder der Mandant deaktiviert oder gelöscht ist. Ein abgelaufenes Token ersetzt du durch ein neues.