Teilen über


Verwalten von OAuth-Token in Azure App Service

In diesem Artikel erfahren Sie, wie Sie OAuth-Token für integrierte Authentifizierung und Autorisierung in Azure App Service verwalten.

Abrufen von Token in App-Code

Azure App Service fügt Ihre anbieterspezifischen Token in den Anforderungsheader ein, sodass Sie problemlos darauf zugreifen können. Um die anbieterspezifischen Token abzurufen, muss der Tokenspeicher für die App aktiviert sein.

Senden Sie über Ihren Client-Code, wie zum Beispiel eine mobile App oder JavaScript im Browser, eine HTTP-Anfrage an GET/.auth/me. Der zurückgegebene JSON-Code enthält die anbieterspezifischen-Token.

Hinweis

Zugriffstoken sind für den Zugriff auf Anbieterressourcen vorgesehen. Dies ist also nur vorhanden, wenn Sie Ihren Anbieter mit einem geheimen Clientschlüssel konfigurieren.

In der folgenden Tabelle sind die OAuth-Token-Header-Namen für mehrere in den App Services integrierte Anbieter aufgeführt.

Anbieter Headernamen
Microsoft Entra X-MS-TOKEN-AAD-ID-TOKEN
X-MS-TOKEN-AAD-ACCESS-TOKEN
X-MS-TOKEN-AAD-EXPIRES-ON
X-MS-TOKEN-AAD-REFRESH-TOKEN
Facebook X-MS-TOKEN-FACEBOOK-ACCESS-TOKEN
X-MS-TOKEN-FACEBOOK-EXPIRES-ON
Googeln X-MS-TOKEN-GOOGLE-ID-TOKEN
X-MS-TOKEN-GOOGLE-ACCESS-TOKEN
X-MS-TOKEN-GOOGLE-EXPIRES-ON
X-MS-TOKEN-GOOGLE-REFRESH-TOKEN
X X-MS-TOKEN-TWITTER-ACCESS-TOKEN
X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET

Hinweis

Verschiedene Sprachenframeworks zeigen diese Header im App-Code möglicherweise in verschiedenen Formaten an (klein geschrieben oder mit großen Anfangsbuchstaben).

Aktualisieren von Authentifizierungstoken

Die folgenden Informationen beziehen sich auf Anbietertoken. Informationen zu Sitzungstoken finden Sie unter "Ablauffrist für Sitzungstoken verlängern".

Wenn das Zugriffstoken Ihres Anbieters abläuft, müssen Sie den Benutzer erneut authentifizieren, bevor Sie dieses Token erneut verwenden können. Sie können den Tokenablauf vermeiden, indem Sie einen GET-Aufruf an den /.auth/refresh-Endpunkt Ihrer Anwendung durchführen.

Um Ihr Zugriffstoken jederzeit zu aktualisieren, führen Sie /.auth/refresh in einer beliebigen Programmiersprache aus. Im folgenden Codeausschnitt wird jQuery verwendet, um Ihre Zugriffstoken aus einem JavaScript-Client zu aktualisieren.

function refreshTokens() {
  let refreshUrl = "/.auth/refresh";
  $.ajax(refreshUrl) .done(function() {
    console.log("Token refresh completed successfully.");
  }) .fail(function() {
    console.log("Token refresh failed. See application logs for details.");
  });
}

Bei einem Aufruf aktualisiert App Service automatisch die Zugriffstoken im Tokenspeicher für den authentifizierten Benutzer. Nachfolgende Anfragen für Tokens erhalten die aktualisierten Tokens. Sie können die Aktualisierungstoken und die Ablaufzeit für die Token anzeigen, indem Sie die Header verwenden, die in " Token abrufen" im App-Code aufgeführt sind.

Hinweis

Wenn ein Benutzer die Ihrer App gewährten Berechtigungen widerruft, schlägt Ihr Aufruf von /.auth/me möglicherweise mit der Antwort 403 Forbidden fehl. Überprüfen Sie Ihre Anwendungsprotokolle auf Details, um Fehler zu diagnostizieren.

Konfigurieren von Anbietern zum Bereitstellen von Aktualisierungstoken

Damit die Tokenaktualisierung funktioniert, muss der Tokenspeicher Aktualisierungstoken von Ihrem Anbieter enthalten. Jeder Anbieter dokumentiert, wie die Aktualisierungstoken abgerufen werden. Die folgende Tabelle enthält eine kurze Zusammenfassung:

Anbieter Aktualisierungstoken
Microsoft Befolgen Sie das Verfahren unter "Konfigurieren des Microsoft Entra-Anbieters zum Bereitstellen von Aktualisierungstoken".
Facebook Stellt keine Aktualisierungstoken bereit. Langlebige Token laufen in 60 Tagen ab. Weitere Informationen finden Sie unter Long-Lived Zugriffstoken.
Googeln Fügen Sie einen access_type=offline Abfragezeichenfolgenparameter an Ihren /.auth/login/google API-Aufruf an. Weitere Informationen finden Sie unter Google-Aktualisierungstoken.
X Zugriffstoken laufen nicht ab. Weitere Informationen finden Sie in den häufig gestellten Fragen (FAQ) zu OAuth.

Konfigurieren des Microsoft Entra-Anbieters zum Bereitstellen von Aktualisierungstoken

  1. Wechseln Sie im Azure-Portal zum API-Playground (Vorschau), und wählen Sie bei Bedarf "Neue Anforderung" aus.
  2. Geben Sie im Feld für den relativen ARM-Pfad hier den ganzen Pfad inklusive der API-Version ein, und ersetzen Sie die Platzhalter durch Ihre Abonnement-ID, den Namen der Ressourcengruppe und den Namen der App:
    subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<app-name>/config/authsettingsV2?api-version=2024-11-01
  3. Wählen Sie "Ausführen" aus.
  4. Wählen Sie PUT oben links aus, und wählen Sie die Registerkarte " Textkörper anfordern " aus.
  5. Kopieren Sie den GET Antwortinhalt aus dem Feld " Antworttext ", und fügen Sie sie in die Registerkarte " Textkörper anfordern " ein.
  6. Suchen Sie im Code den "identityProviders":>>"azureActiveDirectory":"login": Abschnitt, und fügen Sie die folgende Zeile hinzu:
    "loginParameters": ["scope=openid profile email offline_access"]
  7. Wählen Sie "Ausführen" aus. Das Feld "Antworttext " zeigt Ihre Änderungen an.

Offline_access ist der Bereich, der Aktualisierungstoken bereitstellt. Der App-Dienst fordert standardmäßig die anderen Bereiche an. Weitere Informationen finden Sie unter OpenID Connect Scopes and Web Apps – Update Auth Settings V2.

Verlängern der Toleranzperiode für das Sitzungstoken

Die authentifizierte Sitzung läuft nach 8 Stunden ab, und eine 72-Stunden-Standardfrist folgt. Innerhalb dieser Nachfrist können Sie das Sitzungstoken mit App Service aktualisieren, ohne den Benutzer erneut zu authentifizieren. Sie können /.auth/refresh einfach aufrufen, wenn Ihr Sitzungstoken ungültig wird, und müssen den Ablauf des Tokens nicht selbst nachverfolgen.

Wenn die 72-Stunden-Nachfrist abgelaufen ist, muss sich der Benutzer erneut anmelden, um ein gültiges Sitzungstoken zu erhalten. Wenn Sie ein längeres Ablauffenster als 72 Stunden benötigen, können Sie es verlängern, aber das Verlängern des Ablaufs für einen längeren Zeitraum kann erhebliche Sicherheitsauswirkungen haben, wenn ein Authentifizierungstoken verloren geht oder gestohlen wird. Es ist am besten, die Einstellung bei der Standardeinstellung 72 Stunden zu belassen oder den Erweiterungszeitraum auf den kleinsten möglichen Wert festzulegen.

Führen Sie zum Erweitern des Standardablaufzeitraums den folgenden Azure CLI-Befehl in Azure Cloud Shell aus:

az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>

Hinweis

Die Karenzfrist gilt nur für die authentifizierte App-Dienstsitzung, nicht für die Zugriffstoken von den Identitätsanbietern. Für abgelaufene Anbietertoken ist keine Nachfrist vorhanden.