Zum Hauptinhalt springen

Aktualisierung von Authentifizierungstoken

Jutro bietet zwei Ansätze zur automatischen Token-Aktualisierung: passive Token-Erneuerung und automatische Erneuerung (auch als unbeaufsichtigte Authentifizierung oder aktive Erneuerung bezeichnet).

Passive Token-Erneuerung​

Bei der passiven Token-Erneuerung wird die Token-Gültigkeit im System bei jedem Zugriff geprüft. Wenn das Token abgelaufen ist, wird es vor der Rückgabe erneuert. Die automatische Erneuerung wird nicht verworfen, es wird jedoch empfohlen, zur passiven Erneuerung zu wechseln.

Konfiguration der passiven Token-Erneuerung​

Zum Aktivieren der passiven Token-Erneuerung legen Sie die Konfigurationseigenschaft JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS auf true fest. Ausführlichere Anweisungen zur Migration zur passiven Token-Erneuerung finden Sie im Migrationshandbuch.

Eigenschaften von „useAuth“ bei der passiven Token-Erneuerung​

Einige der Eigenschaften im Objekt, die vom useAuth-Hook zurückgegeben werden, verhalten sich anders, wenn die passive Token-Erneuerung aktiviert ist.

Passive Erneuerung aktiviertPassive Erneuerung deaktiviert
getIsAuthenticatedisAuthenticated
getAccessTokenaccessToken
getIdTokenidToken
getUserInfouserInfo

Wenn die passive Erneuerung aktiviert ist, sind die Werte von isAuthenticated, accessToken, idToken und userInfo immer null.

Wenn die passive Erneuerung nicht aktiviert ist, werden getIsAuthenticated, getAccessToken, getIdToken und getUserInfo immer zu null aufgelöst, und es wird eine Warnung zu unsachgemäßer Verwendung angezeigt.

Migrieren zur passiven Token-Erneuerung​

  1. Entfernen Sie die Variablen JUTRO_AUTH_SILENT_REDIRECT_PATH und JUTRO_AUTH_SILENT_LOGIN_PATH (falls vorhanden). Diese Variablen sind spezifisch für den aktiven Ansatz mit unbeaufsichtigter Anmeldung und werden für den passiven Ansatz nicht benötigt.
  2. Fügen Sie offline_access zur Variable JUTRO_AUTH_SCOPE hinzu.
  3. Stellen Sie sicher, dass die Guidewire Hub-Anwendungskonfiguration die Berechtigung REFRESH_TOKEN im authSettings.grantTypes-Array enthält.
  4. Variable JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS=true hinzufügen.
  5. Ersetzen Sie die folgenden Verwendungen von Eigenschaften aus dem useAuth-Hook:
Aktive VerlängerungPassive Verlängerung
isAuthenticated: boolean | nullgetIsAuthenticated: () => Promise<boolean | null>
accessToken: string | nullgetAccessToken: () => Promise<string | null>
idToken: string | nullgetIdToken: () => Promise<string | null>
userInfo: OidcUserInfo | nullgetUserInfo: () => Promise<OidcUserInfo | null>

Automatische Anmeldung​

Bei der automatischen Anmeldung, auch als unbeaufsichtigte Authentifizierung oder aktive Erneuerung bezeichnet, wird das Zugriffstoken aktualisiert, wenn über den JavaScript-Client-Code nicht auf das Aktualisierungstoken zugegriffen werden kann Dies ist z. B. der Fall, wenn das Aktualisierungstoken durch ein Http-Only-Cookie festgelegt wird.

Zur Durchführung der automatischen Anmeldung rendert @jutro/auth eine andere Instanz Ihrer Anwendung in einem verborgenen iframe unter Verwendung des Pfads für die automatische Anmeldung. Diese Instanz führt die „authorize“-Anforderung aus und kehrt zum unbeaufsichtigten Umleitungspfad zurück, wobei ein neues Zugriffstoken zur Verwendung im Frontend abgerufen wird.

Bei Verwendung des generischen OIDC-Clients muss die automatische Anmeldung explizit konfiguriert werden, da zwei Routen erforderlich sind, die für keine andere Funktion in der Anwendung verwendet werden.

Note: Die Rückrufroute muss auch seitens des Identitätsanbieters als gültiger Weiterleitungspfad deklariert werden.

Zur Unterstützung der automatischen Anmeldung müssen Sie die folgenden Konfigurationsvariablen festlegen (mit Beispielwerten):

REACT_APP_JUTRO_AUTH_SILENT_REDIRECT_PATH=/auth/silent/callback
REACT_APP_JUTRO_AUTH_SILENT_LOGIN_PATH=/auth/silent/login

Die passive Token-Erneuerung unterstützt keine automatische Anmeldung. Entfernen Sie die Konfigurationsoption JUTRO_AUTH_USE_PASSIVE_TOKEN_RENEWALS, wenn Sie die automatische Anmeldung verwenden möchten. Außerdem können keine passiven Tokenerneuerungseigenschaften aus dem useAuth-Hook verwendet werden. Weitere Informationen finden Sie im Abschnitt Eigenschaften der passiven Tokenerneuerung.

Note: Wenn bei der Verwendung der automatischen Anmeldung Cookies von Drittanbietern im Browser des Benutzers blockiert werden, wird ein JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler ausgegeben.

Der JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler tritt nie auf, wenn die passive Token-Erneuerung aktiviert ist.

Der Ansatz zur Token-Aktualisierung Passive Token-Erneuerung funktioniert in diesem Szenario und kann als Alternative verwendet werden, um JUTRO_AUTH_LOGIN_REQUIRED_ERROR-Fehler zu vermeiden.