Authorization Token

Documentation (English)

For the German version, please scroll down to “Dokumentation (Deutsch)”

What is an Authorization Token?

An authorization token is a secure, encoded string issued after successful authentication, representing the user’s or system’s identity and permissions.

It’s used to grant access to authorized customer number(s) or services within an Enterprise API.

Once the token is issued, it is included in each request to prove that the client has the necessary authorization to retrieve the specific data of defined customers.

Tokens are commonly JSON Web Tokens (JWT), which consist of three parts:

Header: Contains metadata about the token (e.g., the type of token and the algorithm used for signing).

Payload: Holds claims or information about the user and their permissions.

Signature: Used to verify the token’s authenticity and ensure it hasn’t been tampered with.

How is an Authorization Token generated?

Authorization tokens are generated by an authentication server after a user successfully authenticates (Auth 2.0 Client Credentials Flow).

The server encodes the user’s identity and permissions into a token, which is then returned to the client.

This token must be included in API requests as a proof of authorization.

Authorization Token Structure

Here’s a breakdown of the fields in your token and what they represent.

The token requester is sometimes called the client.

{
  "exp": 1725894657,
  "iat": 1725894357,
  "jti": "5e11fde3-f097-333a-8688-901ab8a449vv",
  "iss": "https://my.dkv-mobility.com/auth/realms/enterprise-api",
  "sub": "1230d38-59ac-446f-96a4-ebf0ad0bd515",
  "typ": "Bearer",
  "azp": "Test1",
  "scope": "openid",
  "AUTHORIZED_CUSTOMER_NRS": [
    "0000111111",
    "0000222222"
  ],
  "MAIN_COMPANY_NAME": "DKV EURO SERVICE GmbH + Co. KG",
  "clientId": "Test1",
  "clientHost": "xxx.xxx.xxx.xx",
  "TECHNICAL_USER_API_ROLES": [
    "passages",
    "transactions",
    "fuelcardinformation",
    "obuinformation",
    "olaservice"
  ],
  "TECHNICAL_USERNAME": "TEST User",
  "CONTACT_EMAIL": "max.mustermann@step.com",
  "MOB_NUMBER": "0049157834561",
  "TECHNICAL_USER_PRODUCT": [
    "DKV_EREPORTING_PREMIUM",
    "DKV_EREPORTING"
  ],
  "MAIN_CUSTOMER_NO": "0000111111",
  "clientAddress": "xxx.xxx.xxx.xx",
  "client_id": "Test1"
}

Token Fields Explained:

exp (Expiration Time): This is a Unix timestamp indicating when the token will expire. After this time, the token will no longer be valid (e.g., 1725894657).

iat (Issued At): The Unix timestamp for when the token was created or issued.

jti (JWT ID): A unique identifier for the token

iss (Issuer): Identifies the issuer of the token, in this case, the URL of the authentication server (https://my.dkv-mobility.com/auth/realms/enterprise-api).

sub (Subject): Refers to the unique identifier of the user that the token is for (e.g., “1230d38-59ac-446f-96a4-ebf0ad0bd515”).

typ (Type): Indicates the type of token (“Bearer”) that are used for API authorization.

azp (Authorized Party): Identifies the client application that this token is intended for (e.g., “Test1”).

scope: Defines the scope of access granted by the token (e.g., “openid”).

AUTHORIZED_CUSTOMER_NRS: A list of customer numbers authorized to use this token, associated with the user

These numbers are verified when processing requests to ensure that the token holder has access to specific customer resources (e.g., “0000111111”, “0000222222”).

MAIN_COMPANY_NAME: The name of the main company associated with this token (e.g., “DKV EURO SERVICE GmbH + Co. KG”).

clientId: Identifies the client that is making the request (e.g., “Test1”).

clientHost: The IP address of the client making the request (e.g., “xxx.xxx.xxx.xx”).

TECHNICAL_USER_API_ROLES: A list of API roles that define what services the token holder is authorized to perform (e.g., “passages”, “transactions”, “fuelcardinformation”, “olaservice”).

Currently only olaservice changes whether it is enabled or disabled for API user.

All other services remain the same and permitted for all API users.__

TECHNICAL_USERNAME: The username of the technical user associated with the token requestor(e.g., “TEST User”).

CONTACT_EMAIL: The contact email address associated with the token requestor (e.g., “max.mustermann@step.com”).

MOB_NUMBER: The mobile phone number of the user (e.g., “0049157834561”).

TECHNICAL_USER_PRODUCT: A list of product cathegories that the technical user has access to (e.g., “DKV_EREPORTING_PREMIUM”, “DKV_EREPORTING”). Currently it’s a constant value.

MAIN_CUSTOMER_NO: The main customer number associated with the token requestor (e.g., “0000111111”).

clientAddress: The IP address of the client machine sending the request.

client_id: Another identifier for the client application making the request (e.g., “Test1”).

Dokumentation (Deutsch)

Hier finden Sie die deutsche Dokumentation.

Autorisierungstoken

Was ist ein Autorisierungstoken?

Ein Autorisierungstoken ist eine sichere, codierte Zeichenfolge, die nach erfolgreicher Authentifizierung ausgestellt wird und die Identität und Berechtigungen des Benutzers oder Systems darstellt.

Es wird verwendet, um den Zugriff auf autorisierte Kundennummern oder Dienste innerhalb einer Enterprise-API zu gewähren.

Sobald das Token ausgestellt ist, wird es in jeder Anfrage verwendet, um zu beweisen, dass der Client die erforderliche Autorisierung besitzt, um auf die spezifischen Daten der definierten Kunden zuzugreifen.

Tokens ist ein JSON Web Tokens (JWT), der aus drei Teilen besteht:

Wie wird ein Autorisierungstoken generiert?

Autorisierungstoken wird von einem Authentifizierungsserver erstellt, nachdem sich ein Benutzer erfolgreich authentifiziert hat (OAuth 2.0 Client Credentials Flow).

Der Server codiert die Identität und Berechtigungen des Benutzers in einem Token, das dann an den Client zurückgegeben wird.

Dieses Token muss in API-Anfragen als Nachweis der Autorisierung enthalten sein.

Struktur des Autorisierungstokens

Hier ist eine Übersicht der Felder in Ihrem Token und deren Bedeutung.

Der Token-Anforderer wird hier als „Client“ bezeichnet.

{
  "exp": 1725894657,
  "iat": 1725894357,
  "jti": "5e11fde3-f097-333a-8688-901ab8a449vv",
  "iss": "https://my.dkv-mobility.com/auth/realms/enterprise-api",
  "sub": "1230d38-59ac-446f-96a4-ebf0ad0bd515",
  "typ": "Bearer",
  "azp": "Test1",
  "scope": "openid",
  "AUTHORIZED_CUSTOMER_NRS": [
    "0000111111",
    "0000222222"
  ],
  "MAIN_COMPANY_NAME": "DKV EURO SERVICE GmbH + Co. KG",
  "clientId": "Test1",
  "clientHost": "xxx.xxx.xxx.xx",
  "TECHNICAL_USER_API_ROLES": [
    "passages",
    "transactions",
    "fuelcardinformation",
    "obuinformation",
    "olaservice"
  ],
  "TECHNICAL_USERNAME": "TEST User",
  "CONTACT_EMAIL": "max.mustermann@step.com",
  "MOB_NUMBER": "0049157834561",
  "TECHNICAL_USER_PRODUCT": [
    "DKV_EREPORTING_PREMIUM",
    "DKV_EREPORTING"
  ],
  "MAIN_CUSTOMER_NO": "0000111111",
  "clientAddress": "xxx.xxx.xxx.xx",
  "client_id": "Test1"
}

Erläuterung der Token-Felder

exp (Ablaufzeit): Ein Unix-Zeitstempel, der angibt, wann das Token abläuft. Nach diesem Zeitpunkt ist das Token nicht mehr gültig (z. B. 1725894657).

iat (Ausgestellt am): Der Unix-Zeitstempel, wann das Token erstellt oder ausgegeben wurde.

jti (JWT ID): Eine eindeutige Kennung für das Token.

iss (Issuer): Gibt den Herausgeber des Tokens an, in diesem Fall die URL des Authentifizierungsservers (https://my.dkv-mobility.com/auth/realms/enterprise-api).

sub (Subject): Bezieht sich auf die eindeutige Kennung des Benutzers, für den das Token bestimmt ist (z. B. „1230d38-59ac-446f-96a4-ebf0ad0bd515“).

typ (Typ): Gibt den Typ des Tokens an („Bearer“), das für die API-Autorisierung verwendet wird.

azp (Autorisierte Partei): Identifiziert die Client-Anwendung, für die dieses Token bestimmt ist (z. B. „Test1“).

scope: Definiert den Umfang des Zugriffs, der durch das Token gewährt wird (z. B. „openid“).

AUTHORIZED_CUSTOMER_NRS: Eine Liste der Kundennummern, die zur Verwendung dieses Tokens berechtigt sind und mit dem Benutzer verknüpft sind.

Diese Nummern werden bei der Verarbeitung von Anfragen überprüft, um sicherzustellen, dass der Tokeninhaber Zugriff auf bestimmte Kundenressourcen hat (z. B. „0000111111“, „0000222222“).

MAIN_COMPANY_NAME: Der Name des Hauptunternehmens, das mit diesem Token verknüpft ist (z. B. „DKV EURO SERVICE GmbH + Co. KG“).

clientId: Identifiziert den Client, der die Anfrage stellt (z. B. „Test1“).

clientHost: Die IP-Adresse des Clients, der die Anfrage stellt (z. B. „xxx.xxx.xxx.xx“).

TECHNICAL_USER_API_ROLES: Eine Liste der API-Rollen, die definiert, welche Dienste der Tokeninhaber ausführen darf (z. B. „passages“, „transactions“, „fuelcardinformation“, „olaservice“ etc.). Derzeit ändert sich nur „olaservice“, ob es für den API-Benutzer aktiviert oder deaktiviert ist. Alle anderen Dienste bleiben gleich und sind für alle API-Benutzer erlaubt.

TECHNICAL_USERNAME: Der Benutzername des technischen Benutzers, der mit dem Token-Anforderer verknüpft ist (z. B. „TEST User“).

CONTACT_EMAIL: Die Kontakt-E-Mail-Adresse, die mit dem Token-Anforderer verknüpft ist (z. B. „max.mustermann@step.com“).

MOB_NUMBER: Die Mobiltelefonnummer des Benutzers (z. B. „0049157834561“).

TECHNICAL_USER_PRODUCT: Eine Liste der Produktkategorien, auf die der technische Benutzer Zugriff hat (z. B. „DKV_EREPORTING_PREMIUM“, „DKV_EREPORTING“). Derzeit ist dies ein konstanter Wert.

MAIN_CUSTOMER_NO: Die Hauptkundennummer, die mit dem Token-Anforderer verknüpft ist (z. B. „0000111111“).

clientAddress: Die IP-Adresse des Client-Rechners, der die Anfrage sendet.

client_id: Eine weitere Kennung für die Client-Anwendung, die die Anfrage stellt (z. B. „Test1“).