Für die Entwicklung mit OAuth2 können Clients und refresh token auch manuell erzeugt werden. Beide Features sind nur für die Entwicklung geeignet. Für Produktivsysteme sollte unbedingt die Autorisierung über OAuth2 mit Operator-ID genutzt werden.


manuelle Erstellung eines Clients in LINA TeamCloud

Um Zugriff auf die TPAPI zu erhalten, muss ein Client im jeweiligen Laden angelegt werden. Dies geschieht pro Endpunkt und pro Programm innerhalb von LINA TeamCloud unter Daten aus LINA einem Drittanbieter bereitstellen.

In der Liste der Clients stehen eine Client-ID und ein Secret, dass im Nachfolgenden verwendet wird.


OAuth2-Verfahren manuell

1. Schritt: Authorization-Code-Link 

Aufruf des Authorization-Code-Links, der wie folgt aussieht:

.../extern/oauth2/authorize?client_id={clientId}&state={state}&scope={scope}&response_type={responseType}&redirect_uri={uri}


Aufruf-Parameter:

NameTypBeschreibung
statestring (min. 20, max. 40 Zeichen)Wird verwendet, um sicherzustellen, dass der aufrufende Client seine Daten zuordnen kann. Dies kann eine zufällig generierte Zeichenkette sein, mit welcher der Client überprüfen kann, ob der Rückruf stattgefunden hat.  
scopestringListe der Bereiche, auf die der Client gemäß der LINA Data TPAPI zugreifen möchte, getrennt durch Komma. Zusätzlich zu diesen Scopes muss der Scope "openid" angefordert werden. Um zusätzliche Benutzerinformationen vom UserInfo-Endpunkt zu erhalten, fügen Sie bitte die entsprechenden Bereiche hinzu. Die für die Endpunkte benötigten Scopes finden Sie jeweils am Anfang der Endpunktdokumentation
response_typecodeParameter ist derzeit ein fester Wert und muss mit übergeben werden. Bitte setzen Sie hier "json" als fester Wert.
client_idstring (40 Zeichen)Eindeutige ID, die von LINA für die Webanwendung eines Drittanbieters erstellt wurde.


Bitte stellen Sie sicher, dass Sie nicht Ihr Client-Secret in der Anfrage mit senden. 
Beispiel Login mit existierendem Client:
... /extern/oauth2/authorize?state=01234567890123456789&scope=openid,merchandisemanagement_read&response_type=json&redirect_uri=https%3A%2F%2Fyour.rest-uri.partner.id&client_id=8d703dec5bff161a57394fcae19eac9cdc4ffaa6 

Der Autorisierungscode befindet sich als Parameter (code) in der URL und ist ab nun 15 Minuten gültig.

Beispiel Rücksprung: 
https://your.rest-uri.partner.id/?code=60df21ba298ef85710aed87c51b20678e6f994bf&state=01234567890123456789 
NameTypBeschreibung
codestring (40 Zeichen)Von LINA TeamCloud generierter Autorisierungscode, der vom Client verwendet wird, um ein Zugriffstoken und ein Refresh-Token zu erhalten. Der Autorisierungscode hat eine begrenzte Gültigkeit von 900 Sekunden.
statestring (20-40 Zeichen)Wert des Parameters, der bei der ersten Anfrage auf Clientseite erzeugt wurde. Dient der Zuordnung der Antwort zur Anfrage.


Query-Antwortparameter im Fehlerfall:

NameTypBeschreibung
errorstringFehlermeldung, die beschreibt, warum die Anfrage nicht erfolgreich war. Beim Ablehnen auf der Zustimmungsseite ist die Fehlermeldung access_denied. Zum aktuellen Zeitpunkt gibt es keine anderen Fehlermeldungen in LINA.
statestring (20-40 Zeichen)Wert des Parameters, der bei der ersten Anfrage auf Clientseite erzeugt wurde. Dient der Zuordnung der Antwort zur Anfrage.


2. Schritt: Abrufen eines Access-Tokens

Ein erstes Access- und Refresh-Token kann mittels dieses Autorisierungscodes erzeugt werden. Dazu muss der Client eine Anfrage an den Server senden. Beachten Sie bitte, dass nur ein einziges Token mittels Autorisierungscode erzeugt werden kann. Weitere Access-Tokens können nur mit einem Refresh-Token erzeugt werden.


Das weitere Vorgehen ist identisch zu dem Ablauf bei Nutzung von OAuth mit Operator-ID.

Manuelles Erzeugen von Refresh-Token

Zum wiederholten Testen der programmierten Schnittstelle können auch manuell Refresh-Tokens erzeugt werden. Diese unterscheiden sich von den durch OAuth2 erzeugten Tokens darin, dass sie eine limitierte Gültigkeitsdauer von 15 Minuten (einstellbar) besitzen.

Ein manuelles Erzeugen ist in LINA TeamCloud möglich unter: 

LINA >> Config >> Schnittstellen >> Tab OAuth >> Ende der Tabellenzeile "refresh token"