Zum Hauptinhalt springen
Dieses Authentifizierungsverfahren gilt als das sicherste, da die Anwendung die Authentifizierungsanfrage nicht an den Benutzer, sondern an den Vantage-Authorization-Server richtet. Der Authorization-Server authentifiziert anschließend den Benutzer und gibt den Authorization Code an den Client zurück. Um zu verhindern, dass der Authorization Code abgefangen wird, verwendet dieses Authentifizierungsszenario eine Sicherheitserweiterung namens PKCE (Proof Key for Code Exchange). Diese Erweiterung funktioniert wie folgt: Für jede Autorisierungsanfrage wird eine kryptografische Zufallszahl erzeugt und in code_verifier gespeichert. Diese wird anschließend verwendet, um einen kryptografisch abgeleiteten Wert zu erzeugen, der in code_challenge gespeichert ist. Dieser neue Wert wird dann an den Authorization-Server gesendet, um einen Authorization Code zu erhalten. Weitere Informationen zu PKCE finden Sie unter diesem Link.

Abrufen des Autorisierungscodes

Um den Authentifizierungsprozess zu starten, leiten Sie den Benutzer an den Authorize-Endpunkt weiter und übergeben dabei die folgenden Parameter:
ParameterBeschreibung
client_idDie Anwendungskennung. Informationen zum Erstellen eines Vantage-API-Clients (client_id und client_secret) finden Sie im Artikel zur Verwaltung von Tenant Vantage API Clients.
redirect_uriDie URL Ihrer Anwendung oder Website, an die der Browser weitergeleitet wird, sobald Zugriffsberechtigungen erteilt wurden.
response_type=codeGibt an, dass der Antworttyp „authorization code“ verwendet wird.
scope=openid permissions global.wildcardGibt den Berechtigungsumfang an.
stateEin beliebiger string-Wert, der das Autorisierungsergebnis in der Antwort enthält.
code_challengeDigital signierter Wert des code_verifier (unter Verwendung der code_challenge_method).
code_challenge_methodDie Signaturmethode für den code_verifier (S256).
productId=a8548c9b-cb90-4c66-8567-d7372bb9b963Die Vantage-Kennung.
Die Werte für response_type, scope, productId müssen genau wie oben angegeben sein. Diese Schlüssel – außer response_type – können sich ändern. Erwägen Sie, sie in der Konfiguration zu halten.
Beispielanforderung
https://vantage-us.abbyy.com/auth2/connect/authorize?client_id=client_id&redirect_uri=https%3A%2F%2Fvantage-us.abbyy.com%2Flogin-callback&response_type=code&scope=openid%20permissions%20global.wildcard&state=ef30939211cc4ecb9a7a349b855c6a10&code_challenge=tA6ayQ5VUjLX2tufAKaHh-9bTAQ4hQQY5VZAoB2kG9o&code_challenge_method=S256&productId=a8548c9b-cb90-4c66-8567-d7372bb9b963
Ein Parameter mit dem Namen redirect_uri, der den Bezeichner Ihrer Ressource enthält, wird in OAuth 2.0 verwendet, damit Vantage den Autorisierungscode an Ihre Ressource senden und diesen Code anschließend gegen das Zugriffstoken eintauschen kann, das für die Authentifizierung bei allen nachfolgenden API-Aufrufen erforderlich ist. Bei Verwendung dieser Authentifizierungsmethode muss der Wert des Parameters redirect_uri dem technischen Support von ABBYY bereitgestellt werden, damit er von den Administratoren auf die Allowlist gesetzt wird. Sobald die mit dem Parameter scope angeforderten Zugriffsberechtigungen als gewährt verifiziert wurden, wird der Browser auf eine spezielle Webseite weitergeleitet, die vom Vantage-Server bereitgestellt wird. Diese Webseite enthält ein Dialogfenster, über das Sie sich mit Ihrem Konto autorisieren. Diese Seite sollte in einem Browser geöffnet werden, der eine sichtbare Adressleiste hat, sodass Sie die Seiten-URL und den Status des SSL-Zertifikats der Verbindung überprüfen können. Wenn Ihre E-Mail-Adresse mit mehreren Konten in verschiedenen Tenants verknüpft ist, werden Sie aufgefordert, einen Tenant auszuwählen und Ihr Passwort einzugeben, nachdem Sie Ihre E-Mail-Adresse angegeben haben. Sie können Ihren Tenant-Bezeichner (den Parameter tokenId) auch direkt über eine der folgenden Ressourcen übermitteln:
https://vantage-us.abbyy.com/auth2/{tenantId}/connect/authorize?client_id=client_id&redirect_uri=external_app_redirect_uri&response_type=code
&scope=openid%20permissions%20global.wildcard&state=state&code_challenge=code_challenge
&code_challenge_method=S256&productId=a8548c9b-cb90-4c66-8567-d7372bb9b963
oder
https://vantage-us.abbyy.com/auth2/connect/authorize?client_id=client_id&redirect_uri=external_app_redirect_uri&response_type=code
&scope=openid%20permissions%20global.wildcard&state=state&code_challenge=code_challenge
&code_challenge_method=S256&productId=a8548c9b-cb90-4c66-8567-d7372bb9b963&tenantId=tenantId
Sie werden aufgefordert, das Passwort für Ihr Mandantenkonto einzugeben. Nachdem Sie Ihre Anmeldedaten eingegeben haben, wird die Autorisierung serverseitig abgeschlossen, die Anwendung erhält Zugriff auf die Vantage-API, und Sie erhalten den Autorisierungscode in der Antwort auf Ihre Anfrage. Bitte beachten Sie: Wenn eine Website oder Anwendung diesen Authentifizierungstyp verwendet, gewähren Vantage-Benutzer der Website oder App, die Sie zur Liste der zulässigen Redirect-urls hinzufügen, in ihrem Namen Zugriff auf die Vantage-API. Um der Website oder App Zugriff zu gewähren, werden Benutzer aufgefordert, sich in Vantage mit ihrem Benutzernamen und Passwort anzumelden. Sobald ein Benutzer authentifiziert ist, erhält die Website oder App die folgenden Berechtigungen:
  • Verwalten von Datenkatalogen im Vantage-Mandanten im Namen des Benutzers,
  • Zugriff auf Skills im Vantage-Mandanten im Namen des Benutzers,
  • Erstellen und Zugriff auf Vantage-Vorgänge im Namen des Benutzers.
Die Website oder App kann das Passwort des Benutzers nicht ändern, die Benutzerliste in einem Vantage-Mandanten nicht ändern und keine Skills bearbeiten. Es wird ausschließlich Zugriff auf die Vantage-API gewährt. Der Benutzer kann den Zugriff nach Erteilung nicht mehr widerrufen.

Abrufen des Autorisierungs-Tokens

Sobald Sie den Autorisierungscode erhalten haben, haben Sie eine Minute Zeit, ihn gegen das Zugriffstoken einzutauschen. Senden Sie dazu eine POST-Anfrage an den Token-Endpunkt mit Daten im Format application/x-www-form-urlencoded. Parameter des Anfragetexts:
ParameterBeschreibung
code_verifierDer von Ihnen generierte Code. Wird benötigt, um die Einleitung der Autorisierungsanfrage zu bestätigen.
client_idDie Anwendungs-ID.
client_secretSicherer Anwendungsschlüssel.
codeIhr vom Server erhaltener Autorisierungscode.
redirect_uriDie in Schritt „authorize“ verwendete Weiterleitungs-URL.
grant_type=authorization_codeGibt an, dass der Grant-Typ „authorization code“ verwendet wird.
scope=openid permissions global.wildcard offline_accessGibt den Berechtigungsumfang an. Um ein Aktualisierungstoken zu erhalten, fügen Sie offline_access zum Scope hinzu.
Beispielanfrage (Windows):
curl --location --request POST "https://vantage-eu.abbyy.com/auth2/connect/token" \
  --data-urlencode "code_verifier=code_verifier" \
  --data-urlencode "client_id=client_id" \
  --data-urlencode "client_secret=client_secret" \
  --data-urlencode "code=authorization code" \
  --data-urlencode "redirect_uri=external app redirect uri" \
  --data-urlencode "grant_type=authorization_code"
Auch in anderen Regionen verfügbar:
# Nordamerika
curl --location --request POST "https://vantage-us.abbyy.com/auth2/connect/token" \
  --data-urlencode "code_verifier=code_verifier" \
  --data-urlencode "client_id=client_id" \
  --data-urlencode "client_secret=client_secret" \
  --data-urlencode "code=authorization code" \
  --data-urlencode "redirect_uri=external app redirect uri" \
  --data-urlencode "grant_type=authorization_code"

# Australien
curl --location --request POST "https://vantage-au.abbyy.com/auth2/connect/token" \
  --data-urlencode "code_verifier=code_verifier" \
  --data-urlencode "client_id=client_id" \
  --data-urlencode "client_secret=client_secret" \
  --data-urlencode "code=authorization code" \
  --data-urlencode "redirect_uri=external app redirect uri" \
  --data-urlencode "grant_type=authorization_code"
Beispielanfrage (Linux):
curl --location --request POST 'https://vantage-eu.abbyy.com/auth2/connect/token' \
  --data-urlencode 'code_verifier=code_verifier' \
  --data-urlencode 'client_id=client_id' \
  --data-urlencode 'client_secret=client_secret' \
  --data-urlencode 'code=authorization code' \
  --data-urlencode 'redirect_uri=external app redirect uri' \
  --data-urlencode 'grant_type=authorization_code'
Auch in anderen Regionen verfügbar:
# Nordamerika
curl --location --request POST 'https://vantage-us.abbyy.com/auth2/connect/token' \
  --data-urlencode 'code_verifier=code_verifier' \
  --data-urlencode 'client_id=client_id' \
  --data-urlencode 'client_secret=client_secret' \
  --data-urlencode 'code=authorization code' \
  --data-urlencode 'redirect_uri=external app redirect uri' \
  --data-urlencode 'grant_type=authorization_code'

# Australien
curl --location --request POST 'https://vantage-au.abbyy.com/auth2/connect/token' \
  --data-urlencode 'code_verifier=code_verifier' \
  --data-urlencode 'client_id=client_id' \
  --data-urlencode 'client_secret=client_secret' \
  --data-urlencode 'code=authorization code' \
  --data-urlencode 'redirect_uri=external app redirect uri' \
  --data-urlencode 'grant_type=authorization_code'
Die Serverantwort auf Ihre Anfrage enthält das Zugriffstoken:
{
  "id_token": "<redacted>",
  "access_token": "<redacted>",
  "expires_in": 86400,
  "token_type": "Bearer",
  "refresh_token": "<redacted>",
  "scope": "openid permissions global.wildcard offline_access legacy.client"
}
Weitere Informationen zum Authorization-Code-Flow finden Sie unter diesem Link. Für jeden Flow enthält der Schlüssel access_token das Token, während der Schlüssel expires_in angibt, wann das Token abläuft (in Sekunden). Standardmäßig beträgt die Lebensdauer eines Zugriffstokens 24 Stunden (weitere Informationen finden Sie unter Token lifetimes). Fügen Sie all Ihren Anfragen den folgenden Authorization-Header hinzu und ersetzen Sie token durch den von Ihnen erhaltenen Wert:
-H "Authorization: Bearer token"
Beachten Sie, dass Sie mit demselben Konto mehrere Token erhalten können. Weitere Informationen zum Autorisierungstoken finden Sie unter diesem Link.

Abrufen des Refresh Tokens

Wenn bei der Konfiguration des Vantage-API-Clients die Option Allow issuing refresh tokens to refresh access tokens aktiviert war und die Anforderung zum Abrufen des Zugriffstokens den Parameter scope=openid permissions global.wildcard offline_access enthielt, erhalten Sie in der Antwort zusätzlich ein Refresh Token. Sobald Sie ein Refresh Token haben, können Sie das Zugriffstoken mit einer POST-Anfrage an den Token-Endpunkt mit den folgenden Parametern aktualisieren:
ParameterBeschreibung
client_idDie Anwendungs-ID.
client_secretEin sicherer Anwendungsschlüssel.
refresh_tokenIhr vom Server erhaltenes Refresh Token.
grant_type=refresh_tokenGibt an, dass der Grant-Typ „Refresh Token“ verwendet wird.
Beispielanfrage (Windows):
curl --location --request POST "https://vantage-eu.abbyy.com/auth2/connect/token" \
  --data-urlencode "client_id=client_id" \
  --data-urlencode "client_secret=client_secret" \
  --data-urlencode "refresh_token=refresh_token" \
  --data-urlencode "grant_type=refresh_token"
Auch für andere Regionen und für Linux mit entsprechenden Befehlen verfügbar.

Gültigkeitsdauern von Tokens

Access- und Refresh-Tokens haben die folgenden Gültigkeitsdauern:
  • Gültigkeitsdauer des Access-Tokens: 24 Stunden. Zeitraum, in dem das ausgestellte Access-Token gültig ist.
  • Gültigkeitsdauer des Refresh-Tokens: 30 Tage. Ein Refresh-Token wird nach der ersten Authentifizierung zusammen mit dem ersten Access-Token ausgestellt. Solange das Refresh-Token aktiv ist, kann es verwendet werden, um neue Access-Tokens zu erhalten. Das Refresh-Token kann nicht verlängert werden. Ein neues erhalten Sie nur durch erneute Authentifizierung.