Az App Service-hitelesítés API- és futtatókörnyezeti verzióinak kezelése
Ez a cikk bemutatja, hogyan szabhatja testre a beépített hitelesítés és engedélyezés API- és futtatókörnyezeti verzióit az App Service-ben.
Az App Service-hitelesítés felügyeleti API-jának két verziója létezik. A V2 verzió szükséges az Azure Portal "Hitelesítés" felületéhez. A V1 API-t már használó alkalmazások néhány módosítás után frissíthetnek a V2 verzióra. A titkos konfigurációt át kell helyezni a pont-ragadós alkalmazásbeállításokra. Ez automatikusan elvégezhető az alkalmazás portáljának "Hitelesítés" szakaszából.
A konfigurációs verzió frissítése
Figyelmeztetés
A V2-re való migrálás letiltja az alkalmazás App Service-hitelesítés/engedélyezés funkciójának kezelését néhány ügyfélen keresztül, például az Azure Portalon, az Azure CLI-ben és az Azure PowerShellben meglévő felhasználói élményén keresztül. Ez nem fordítható vissza.
A V2 API nem támogatja a Microsoft-fiók különálló szolgáltatóként való létrehozását vagy szerkesztését, ahogyan az az 1. V1-ben történt. Ehelyett a konvergens Microsoft Identitásplatform használja a Microsoft Entra és a személyes Microsoft-fiókkal rendelkező felhasználók bejelentkezésére. A V2 API-ra való váltáskor a V1 Microsoft Entra konfigurációval konfigurálja a Microsoft Identitásplatform szolgáltatót. A V1 Microsoft-fiók szolgáltatója a migrálási folyamat során tovább fog haladni, és továbbra is a szokásos módon fog működni, de át kell lépnie az újabb Microsoft Identitásplatform modellre. További információt a Microsoft-fiók szolgáltatói regisztrációinak támogatása című témakörben talál.
Az automatizált migrálási folyamat a szolgáltató titkos kulcsait az alkalmazásbeállításokba helyezi át, majd a konfiguráció többi részét új formátumba alakítja. Az automatikus migrálás használata:
- Keresse meg az alkalmazást a portálon, és válassza a Hitelesítés menüt.
- Ha az alkalmazás a V1 modellel van konfigurálva, megjelenik egy Frissítés gomb.
- Tekintse át a leírást a megerősítést kérő üzenetben. Ha készen áll az áttelepítés végrehajtására, válassza a Frissítés lehetőséget a parancssorban.
A migrálás manuális kezelése
Az alábbi lépések lehetővé teszik az alkalmazás manuális migrálását a V2 API-ba, ha nem szeretné használni a fent említett automatikus verziót.
Titkos kódok áthelyezése az alkalmazásbeállításokba
Kérje le meglévő konfigurációját a V1 API használatával:
az webapp auth show -g <group_name> -n <site_name>
Az eredményként kapott JSON hasznos adatokban jegyezze fel az egyes konfigurált szolgáltatók titkos értékét:
- Microsoft Entra:
clientSecret
- Google:
googleClientSecret
- Facebook:
facebookAppSecret
- X:
twitterConsumerSecret
- Microsoft-fiók:
microsoftAccountClientSecret
Fontos
A titkos értékek fontos biztonsági hitelesítő adatok, és gondosan kell kezelni. Ne ossza meg ezeket az értékeket, és ne őrizze meg őket egy helyi gépen.
- Microsoft Entra:
Hozzon létre pont ragadós alkalmazásbeállításokat az egyes titkos kódokhoz. Kiválaszthatja az egyes alkalmazásbeállítások nevét. Az értéknek meg kell egyeznie az előző lépésben beszerzett értékkel, vagy hivatkoznia kell az ezzel az értékkel létrehozott Key Vault-titkos kódra .
A beállítás létrehozásához használhatja az Azure Portalt, vagy futtathatja az alábbi változatokat az egyes szolgáltatókhoz:
# For Web Apps, Google example az webapp config appsettings set -g <group_name> -n <site_name> --slot-settings GOOGLE_PROVIDER_AUTHENTICATION_SECRET=<value_from_previous_step> # For Azure Functions, X example az functionapp config appsettings set -g <group_name> -n <site_name> --slot-settings TWITTER_PROVIDER_AUTHENTICATION_SECRET=<value_from_previous_step>
Feljegyzés
A konfiguráció alkalmazásbeállításait pont ragadósként kell megjelölni, ami azt jelenti, hogy a pontcserélési művelet során nem fognak mozogni a környezetek között. Ennek az az oka, hogy maga a hitelesítési konfiguráció a környezethez van kötve.
Hozzon létre egy új JSON-fájlt .
authsettings.json
Vegye ki a korábban kapott kimenetet, és távolítsa el belőle az egyes titkos kulcsértékeket. Írja be a fennmaradó kimenetet a fájlba, és győződjön meg arról, hogy nincs benne titkos kód. Bizonyos esetekben előfordulhat, hogy a konfiguráció üres sztringeket tartalmazó tömböket tartalmaz. Győződjön meg arról, hogymicrosoftAccountOAuthScopes
ez nem történik meg, és ha igen, váltson erre az értékrenull
.Adjon hozzá egy tulajdonságot
authsettings.json
, amely az egyes szolgáltatóknál korábban létrehozott alkalmazásbeállítás-névre mutat:- Microsoft Entra:
clientSecretSettingName
- Google:
googleClientSecretSettingName
- Facebook:
facebookAppSecretSettingName
- X:
twitterConsumerSecretSettingName
- Microsoft-fiók:
microsoftAccountClientSecretSettingName
A művelet utáni példafájl az alábbihoz hasonló lehet, ebben az esetben csak a Microsoft Entra-azonosítóhoz van konfigurálva:
{ "id": "/subscriptions/00d563f8-5b89-4c6a-bcec-c1b9f6d607e0/resourceGroups/myresourcegroup/providers/Microsoft.Web/sites/mywebapp/config/authsettings", "name": "authsettings", "type": "Microsoft.Web/sites/config", "location": "Central US", "properties": { "enabled": true, "runtimeVersion": "~1", "unauthenticatedClientAction": "AllowAnonymous", "tokenStoreEnabled": true, "allowedExternalRedirectUrls": null, "defaultProvider": "AzureActiveDirectory", "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecret": "", "clientSecretSettingName": "MICROSOFT_IDENTITY_AUTHENTICATION_SECRET", "clientSecretCertificateThumbprint": null, "issuer": "https://sts.windows.net/0b2ef922-672a-4707-9643-9a5726eec524/", "allowedAudiences": [ "https://mywebapp.azurewebsites.net" ], "additionalLoginParams": null, "isAadAutoProvisioned": true, "aadClaimsAuthorization": null, "googleClientId": null, "googleClientSecret": null, "googleClientSecretSettingName": null, "googleOAuthScopes": null, "facebookAppId": null, "facebookAppSecret": null, "facebookAppSecretSettingName": null, "facebookOAuthScopes": null, "gitHubClientId": null, "gitHubClientSecret": null, "gitHubClientSecretSettingName": null, "gitHubOAuthScopes": null, "twitterConsumerKey": null, "twitterConsumerSecret": null, "twitterConsumerSecretSettingName": null, "microsoftAccountClientId": null, "microsoftAccountClientSecret": null, "microsoftAccountClientSecretSettingName": null, "microsoftAccountOAuthScopes": null, "isAuthFromFile": "false" } }
- Microsoft Entra:
Küldje el ezt a fájlt az alkalmazás új hitelesítési/engedélyezési konfigurációjaként:
az rest --method PUT --url "/subscriptions/<subscription_id>/resourceGroups/<group_name>/providers/Microsoft.Web/sites/<site_name>/config/authsettings?api-version=2020-06-01" --body @./authsettings.json
Ellenőrizze, hogy az alkalmazás továbbra is a várt módon működik-e a kézmozdulat után.
Törölje az előző lépésekben használt fájlt.
Most migrálta az alkalmazást, hogy alkalmazásbeállításokként tárolja az identitásszolgáltató titkos kulcsát.
Microsoft-fiók szolgáltatói regisztrációinak támogatása
Ha a meglévő konfiguráció microsoftfiók-szolgáltatót tartalmaz, és nem tartalmaz Microsoft Entra-szolgáltatót, a konfigurációt átállíthatja a Microsoft Entra szolgáltatóra, majd végrehajthatja az áttelepítést. Megvalósítás:
- Nyissa meg a Alkalmazásregisztrációk az Azure Portalon, és keresse meg a Microsoft-fiókszolgáltatójához társított regisztrációt. Ez a "Személyes fiókból származó alkalmazások" fejléc alatt lehet.
- Lépjen a regisztráció "Hitelesítés" oldalára. Az "Átirányítási URI-k" alatt egy bejegyzésnek kell megjelennie.
/.auth/login/microsoftaccount/callback
Másolja ki ezt az URI-t. - Adjon hozzá egy új URI-t, amely megfelel az imént másolt URI-nak, kivéve, hogy a végén
/.auth/login/aad/callback
legyen. Ez lehetővé teszi, hogy a regisztrációt az App Service-hitelesítés/ engedélyezés konfigurációja használja. - Keresse meg az apphoz tartozó App Service-hitelesítés/engedélyezés konfigurációját.
- Gyűjtse össze a Microsoft-fiók szolgáltatójának konfigurációját.
- Konfigurálja a Microsoft Entra-szolgáltatót a "Speciális" felügyeleti móddal, és adja meg az előző lépésben összegyűjtött ügyfél-azonosítót és titkos ügyfélkulcs-értékeket. A kiállító URL-címéhez használja
<authentication-endpoint>/<tenant-id>/v2.0
és cserélje le <a hitelesítési végpontot> a felhőkörnyezet hitelesítési végpontjával (például "https://login.microsoftonline.com" globális Microsoft Entra-azonosító esetén is cserélje le a bérlőazonosítót> a címtár -(bérlői) azonosítóra.< - Miután mentette a konfigurációt, tesztelje a bejelentkezési folyamatot úgy, hogy a böngészőben navigál a
/.auth/login/aad
webhely végpontjához, és befejezi a bejelentkezési folyamatot. - Ezen a ponton sikeresen átmásolta a konfigurációt, de a Microsoft-fiók szolgáltatójának meglévő konfigurációja megmarad. Az eltávolítás előtt győződjön meg arról, hogy az alkalmazás minden része bejelentkezési hivatkozásokon keresztül hivatkozik a Microsoft Entra szolgáltatójára. Ellenőrizze, hogy az alkalmazás minden része a várt módon működik-e.
- Miután ellenőrizte, hogy a dolgok működnek-e a Microsoft Entra-szolgáltatóval, eltávolíthatja a Microsoft-fiókszolgáltató konfigurációját.
Figyelmeztetés
A Microsoft Entra alkalmazásregisztráció támogatott fióktípusainak módosításával össze lehet konvergensíteni a két regisztrációt. Ez azonban egy új hozzájárulási kérést kényszerítene a Microsoft-fiók felhasználói számára, és ezek a felhasználók identitásigényeinek struktúrája eltérő lehet, sub
nevezetesen az új alkalmazásazonosító használata óta változó értékek. Ez a megközelítés csak akkor ajánlott, ha alaposan megértjük. Ehelyett meg kell várnia a V2 API felületén található két regisztráció támogatását.
Váltás v2-re
A fenti lépések elvégzése után lépjen az alkalmazáshoz az Azure Portalon. Válassza a "Hitelesítés (előzetes verzió)" szakaszt.
Másik lehetőségként put kérést is kezdeményezhet a config/authsettingsv2
helyerőforrás alatti erőforrásra. A hasznos adatok sémája megegyezik a fájlalapú konfigurációban rögzített sémával.
Alkalmazás rögzítése egy adott hitelesítési futtatókörnyezeti verzióra
Ha engedélyezi a hitelesítést/engedélyezést, a rendszer a platform köztes szoftverét injektálja a HTTP-kérési folyamatba a funkció áttekintésében leírtak szerint. Ezt a platformközvetítést rendszeresen frissítik új funkciókkal és fejlesztésekkel a rutinplatform-frissítések részeként. Alapértelmezés szerint a web- vagy függvényalkalmazás a platform köztes szoftverének legújabb verzióján fog futni. Ezek az automatikus frissítések mindig visszamenőlegesen kompatibilisek. Abban a ritka esetben azonban, amikor ez az automatikus frissítés futásidejű problémát jelent a web- vagy függvényalkalmazáshoz, ideiglenesen visszaállíthatja az előző köztes szoftververziót. Ez a cikk azt ismerteti, hogyan rögzíthet ideiglenesen egy alkalmazást a hitelesítési köztes szoftver egy adott verziójára.
Automatikus és manuális verziófrissítések
Az alkalmazás egy beállításával rögzítheti az alkalmazást a platform köztes szoftverének egy runtimeVersion
adott verziójára. Az alkalmazás mindig a legújabb verzión fut, hacsak nem dönt úgy, hogy kifejezetten egy adott verzióra rögzíti. Egyszerre több verzió is támogatott lesz. Ha olyan érvénytelen verziót rögzít, amely már nem támogatott, az alkalmazás a legújabb verziót fogja használni. Ha mindig a legújabb verziót szeretné futtatni, állítsa ~1 értékre runtimeVersion
.
Az aktuális futtatókörnyezeti verzió megtekintése és frissítése
Módosíthatja az alkalmazás által használt futtatókörnyezeti verziót. Az alkalmazás újraindítása után az új futtatókörnyezeti verziónak érvénybe kell lépnie.
Az aktuális futtatókörnyezeti verzió megtekintése
A platformhitelesítési köztes szoftver aktuális verzióját az Azure CLI használatával vagy az alkalmazás egyik beépített HTTP-végpontja segítségével tekintheti meg.
Az Azure CLI-ből
Az Azure CLI használatával tekintse meg az aktuális köztes szoftververziót az az webapp auth show paranccsal.
az webapp auth show --name <my_app_name> \
--resource-group <my_resource_group>
Ebben a kódban cserélje le <my_app_name>
az alkalmazás nevét. Cserélje le <my_resource_group>
az alkalmazás erőforráscsoportjának nevét is.
A mező megjelenik a runtimeVersion
parancssori felület kimenetében. Ez a következő példakimenethez fog hasonlítni, amelyet csonkolt az egyértelműség kedvéért:
{
"additionalLoginParams": null,
"allowedAudiences": null,
...
"runtimeVersion": "1.3.2",
...
}
A verzióvégpontról
A /.auth/version végpontot is elérheti egy alkalmazáson, hogy megtekintse az alkalmazás aktuális köztes szoftververzióját. A következő példakimenethez fog hasonlítania:
{
"version": "1.3.2"
}
Az aktuális futtatókörnyezeti verzió frissítése
Az Azure CLI-vel az az webapp hitelesítési frissítési paranccsal frissítheti runtimeVersion
a beállítást az alkalmazásban.
az webapp auth update --name <my_app_name> \
--resource-group <my_resource_group> \
--runtime-version <version>
Cserélje le <my_app_name>
az alkalmazás nevére. Cserélje le <my_resource_group>
az alkalmazás erőforráscsoportjának nevét is. Cserélje le <version>
az 1.x futtatókörnyezet érvényes verziójára vagy ~1
a legújabb verzióra. Tekintse meg a különböző futtatókörnyezeti verziók kibocsátási megjegyzéseit a rögzítéshez szükséges verzió meghatározásához.
Ezt a parancsot az Azure Cloud Shellből futtathatja az előző kódmintában található Kipróbálás lehetőség választásával. Az Azure CLI-vel helyileg is végrehajthatja ezt a parancsot az az login végrehajtása után a bejelentkezéshez.