Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leest u hoe u OAuth-tokens beheert voor ingebouwde verificatie en autorisatie in Azure App Service.
Tokens ophalen in toepassingscode
Azure App Service injecteert uw providerspecifieke tokens in de aanvraagheader, zodat u deze eenvoudig kunt openen. Als u de providerspecifieke tokens wilt ophalen, moet tokenarchief zijn ingeschakeld voor de app.
Vanuit uw clientcode, zoals een mobiele app of JavaScript in de browser, verzendt u een HTTP-aanvraag GET naar /.auth/me. De geretourneerde JSON heeft de providerspecifieke tokens.
Notitie
Toegangstokens zijn bedoeld voor het openen van providerbronnen, dus zijn alleen aanwezig als u uw provider configureert met een clientgeheim.
De volgende tabel bevat de namen van de OAuth-tokenheaders voor verschillende ingebouwde App Service-providers:
| Aanbieder | Koptekstnamen |
|---|---|
| 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 |
X-MS-TOKEN-FACEBOOK-ACCESS-TOKEN X-MS-TOKEN-FACEBOOK-EXPIRES-ON |
|
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 |
Notitie
Verschillende taalframeworks kunnen deze headers presenteren aan de app-code in verschillende indelingen, zoals kleine letters of titelcases.
Verificatietokens vernieuwen
De volgende informatie verwijst naar providertokens. Zie Verloopperiode voor sessietoken uitbreiden.
Als het toegangstoken van uw provider verloopt, moet u de gebruiker opnieuw verifiëren voordat u dat token opnieuw kunt gebruiken. U kunt het verlopen van tokens voorkomen door een GET aanroep uit te voeren naar het /.auth/refresh eindpunt van uw toepassing.
Als u uw toegangstoken op elk gewenst moment wilt vernieuwen, roept u /.auth/refresh een willekeurige taal aan. In het volgende codefragment wordt jQuery gebruikt om uw toegangstokens te vernieuwen vanuit een JavaScript-client.
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.");
});
}
Wanneer deze wordt aangeroepen, vernieuwt App Service automatisch de toegangstokens in het tokenarchief voor de geverifieerde gebruiker. Volgende aanvragen voor tokens krijgen de vernieuwde tokens. U kunt de vernieuwingstokens en de verlooptijd voor de tokens zien met behulp van de headers die worden vermeld in Tokens ophalen in app-code.
Notitie
Als een gebruiker de machtigingen intrekt die hij of zij aan uw app heeft verleend, kan uw aanroep /.auth/me mislukken met een 403 Forbidden antwoord. Als u fouten wilt diagnosticeren, controleert u de toepassingslogboeken op details.
Providers configureren om vernieuwings-tokens te leveren
Vernieuwen van tokens werkt alleen als het tokenarchief vernieuwingstokens van uw provider bevat. Elk provider documenteert hoe ze hun vernieuwtokens kunnen ophalen. De volgende tabel bevat een kort overzicht:
| Aanbieder | Vernieuwen van tokens |
|---|---|
| Microsoft | Volg de procedure in de Microsoft Entra-provider configureren om refresh tokens te verschaffen. |
| Biedt geen verversingstokens. Tokens met een lange levensduur verlopen over 60 dagen. Zie Long-Lived Toegangstokens voor meer informatie. | |
Voeg een access_type=offline queryreeksparameter toe aan uw /.auth/login/google API-aanroep. Zie Google Refresh Tokens voor meer informatie. |
|
| X | Toegangstokens verlopen niet. Zie veelgestelde vragen over OAuth voor meer informatie. |
De Microsoft Entra-provider configureren om refresh tokens te verstrekken.
- Ga in Azure Portal naar de API Playground (preview) en selecteer indien nodig Nieuwe aanvraag .
- Voer in het veld ARM-relatief pad hier invoeren, inclusief API-versie de volgende tekenreeks in. Vervang daarbij de tijdelijke aanduidingen door uw abonnements-ID, resourcegroepnaam en appnaam.
subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<app-name>/config/authsettingsV2?api-version=2024-11-01 - Selecteer en voeruit.
- Selecteer
PUTlinksboven en selecteer het tabblad Hoofdtekst van aanvraag . - Kopieer de inhoud van het
GETantwoord uit het hoofdtekstveld Antwoord en plak deze in het tabblad Hoofdtekst van aanvraag . - Zoek de sectie in de
"identityProviders":>>"azureActiveDirectory":"login":code en voeg de volgende regel toe:"loginParameters": ["scope=openid profile email offline_access"] - Selecteer en voeruit. In het veld Antwoordtekst worden uw wijzigingen weergegeven.
Offline_access is het bereik dat vernieuwingssleutels biedt. App Service vraagt standaard al om de andere scopes. Zie OpenID Connect-bereiken en Web Apps - Verificatie-instellingen bijwerken V2 voor meer informatie.
Respijtperiode voor verlooptijd van sessietoken uitbreiden
De geverifieerde sessie verloopt na 8 uur en een standaard respijtperiode van 72 uur volgt. Binnen deze respijtperiode kunt u het sessietoken vernieuwen met App Service zonder de gebruiker opnieuw te verifiëren. U kunt eenvoudig /.auth/refresh aanroepen wanneer uw sessietoken ongeldig wordt en u hoeft het verstrijken van tokens niet zelf bij te houden.
Wanneer de respijtperiode van 72 uur is verstreken, moet de gebruiker zich opnieuw aanmelden om een geldig sessietoken op te halen. Als u een langer verloopvenster dan 72 uur nodig hebt, kunt u dit uitbreiden, maar het verlengen van de vervaldatum voor een lange periode kan aanzienlijke gevolgen hebben voor de beveiliging als een verificatietoken wordt gelekt of gestolen. U kunt de instelling het beste 72 uur laten staan of de verlengingsperiode instellen op de kleinste mogelijke waarde.
Als u het standaardverloopvenster wilt uitbreiden, voert u de volgende Azure CLI-opdracht uit in Azure Cloud Shell:
az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>
Notitie
De respijtperiode is alleen van toepassing op de geverifieerde App Service-sessie, niet op de toegangstokens van de id-providers. Er bestaat geen respijtperiode voor verlopen providertokens.