Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek ukazuje, jak pracovat s tokeny OAuth při použití integrovaného ověřování a autorizace ve službě Azure App Service.
Načtení tokenů v kódu aplikace
Z kódu serveru se tokeny specifické pro poskytovatele vloží do hlavičky požadavku, abyste k nim měli snadný přístup.
Následující tabulka uvádí možné názvy hlaviček tokenů:
Poskytovatel | Názvy záhlaví |
---|---|
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 |
Token Facebooku | 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 |
Poznámka:
Různá jazyková rozhraní můžou tyto hlavičky prezentovat kódu aplikace v různých formátech, například malými písmeny nebo pomocí písmen názvu.
Z klientského kódu (například mobilní aplikace nebo JavaScriptu v prohlížeči) odešlete požadavek HTTP GET
(/.auth/me
musí být povolené úložiště tokenů). Vrácený JSON má tokeny specifické pro zprostředkovatele.
Poznámka:
Přístupové tokeny slouží pro přístup k prostředkům zprostředkovatele, takže jsou k dispozici pouze v případě, že nakonfigurujete svého poskytovatele s tajným klíčem klienta.
Aktualizace ověřovacích tokenů
Když vyprší platnost přístupového tokenu vašeho poskytovatele (nikoli tokenu relace), před opětovným použitím tohoto tokenu musíte uživatele znovu ověřit. Vypršení platnosti tokenu se můžete vyhnout voláním na GET
endpoint /.auth/refresh
vaší aplikace. Při zavolání služba App Service automaticky aktualizuje přístupové tokeny v úložišti tokenů ověřeného uživatele. Následné požadavky na tokeny z vašeho aplikačního kódu získají aktualizované tokeny. Aby ale aktualizace tokenů fungovala, úložiště tokenů musí obsahovat obnovovací tokeny pro vašeho poskytovatele. Způsob získání obnovovacích tokenů je zdokumentován jednotlivými poskytovateli, ale následující seznam je stručný souhrn:
Google: Připojte parametr řetězce dotazu k volání vašeho API
access_type=offline
. Další informace najdete v tématu Obnovovací tokeny Google.Facebook: Neposkytuje obnovovací tokeny. Platnost dlouhodobých tokenů vyprší za 60 dnů (viz Dlouhodobé přístupové tokeny).
X: Platnost přístupových tokenů nevyprší (viz nejčastější dotazy k OAuth).
Microsoft: V https://resources.azure.comaplikaci proveďte následující kroky:
V horní části podokna vyberte Čtení/Zápis.
V nabídce průzkumníka přejděte na předplatná>název předplatného>resourceGroups>název skupiny prostředků>poskytovatelé>Microsoft.Web>sites>název aplikace>config>authsettingsV2.
Vyberte položku Upravit.
Upravte následující vlastnost:
"identityProviders": { "azureActiveDirectory": { "login": { "loginParameters": ["scope=openid profile email offline_access"] } } }
Vyberte Vložit.
Poznámka:
Rozsah, který umožňuje vydání obnovovacího tokenu, je offline_access. Podívejte se, jak se to používá v Tutoriál: Ověřte a autorizujte uživatele od začátku do konce ve službě Azure App Service. Ostatní obory už služba App Service ve výchozím nastavení vyžaduje. Informace o těchto výchozích oborech najdete v tématu Obory OpenID Connect.
Po nakonfigurování poskytovatele najdete obnovovací token a čas vypršení platnosti přístupového tokenu v úložišti tokenů.
Pokud chcete přístupový token kdykoli aktualizovat, zavolejte /.auth/refresh
v libovolném jazyce. Následující fragment kódu používá jQuery k aktualizaci přístupových tokenů z javascriptového klienta.
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.");
});
}
Pokud uživatel odvolá oprávnění udělená vaší aplikaci, může volání /.auth/me
selhat s odpovědí 403 Forbidden
. Pokud chcete diagnostikovat chyby, zkontrolujte podrobnosti v protokolech aplikace.
Prodloužení lhůty odkladu vypršení platnosti tokenu relace
Ověřená relace vyprší po 8 hodinách. Ve výchozím nastavení po vypršení platnosti ověřené relace následuje 72hodinové období odkladu. Během této doby odkladu můžete token relace aktualizovat pomocí služby App Service bez opětovného ověření uživatele. Jednoduše můžete volat /.auth/refresh
, když se token relace stane neplatným, a nemusíte sledovat vypršení platnosti tokenu vlastnoručně. Po uplynutí 72hodinové doby odkladu se uživatel musí znovu přihlásit, aby získal platný token sezení.
Pokud vám 72 hodin nestačí, můžete toto okno vypršení platnosti prodloužit. Prodloužení platnosti po dlouhou dobu může mít významný dopad na zabezpečení (například při úniku nebo odcizení ověřovacího tokenu). Doporučujeme ponechat nastavení ve výchozím nastavení 72 hodin nebo nastavit dobu prodloužení na nejmenší hodnotu.
Pokud chcete rozšířit výchozí okno vypršení platnosti, spusťte v Azure Cloud Shellu následující příkaz.
az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>
Poznámka:
Období odkladu se vztahuje pouze na relaci ověřenou pomocí služby App Service, nikoli na tokeny od poskytovatelů identity. Pro tokeny zprostředkovatele s vypršenou platností neexistuje žádná lhůta.