Felügyelt identitások használata az App Service-hez és az Azure Functionshez
Feljegyzés
2024. június 1-től az összes újonnan létrehozott App Service-alkalmazás létrehozhat egy egyedi alapértelmezett gazdagépnevet az elnevezési konvencióval <app-name>-<random-hash>.<region>.azurewebsites.net
. A meglévő alkalmazásnevek változatlanok maradnak.
Példa: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
További részletekért tekintse meg az App Service-erőforrás egyedi alapértelmezett gazdagépnevét.
Ez a cikk bemutatja, hogyan hozhat létre felügyelt identitást az App Service-hez és az Azure Functions-alkalmazásokhoz, és hogyan használhatja azt más erőforrások eléréséhez.
Fontos
Mivel a felügyelt identitások nem támogatják a címtárközi forgatókönyveket, nem fognak a várt módon viselkedni, ha az alkalmazást előfizetések vagy bérlők között migrálják. A felügyelt identitások ilyen áthelyezés utáni újbóli létrehozásához lásd : Automatikusan létrejönnek-e a felügyelt identitások, ha egy előfizetést áthelyezek egy másik könyvtárba?. Az alsóbb rétegbeli erőforrásoknak is frissíteniük kell a hozzáférési szabályzatokat az új identitás használatához.
Feljegyzés
A felügyelt identitások nem érhetők el az Azure Arcban üzembe helyezett alkalmazásokhoz.
A Microsoft Entra-azonosítóból származó felügyelt identitás lehetővé teszi az alkalmazás számára, hogy könnyen hozzáférjen más, Microsoft Entra által védett erőforrásokhoz, például az Azure Key Vaulthoz. Az identitás kezelését az Azure-platform végzi, és nem szükséges hozzá semmilyen titkos kulcs kiosztása vagy rotálása. A Microsoft Entra ID-ban található felügyelt identitásokról további információt az Azure-erőforrások felügyelt identitásai című témakörben talál.
Az alkalmazás számára kétféle identitástípust lehet megadni:
- A rendszer által hozzárendelt identitás az alkalmazáshoz van kötve, és az alkalmazás törlésekor törlődik. Egy alkalmazás csak egy rendszer által hozzárendelt identitással rendelkezhet.
- A felhasználó által hozzárendelt identitás különálló Azure-erőforrás, amely hozzárendelhető az alkalmazáshoz. Egy alkalmazás több felhasználó által hozzárendelt identitással rendelkezhet, és egy felhasználó által hozzárendelt identitás több Azure-erőforráshoz, például két App Service-alkalmazáshoz is hozzárendelhető.
A felügyelt identitás konfigurációja a ponthoz tartozik. Ha egy felügyelt identitást szeretne konfigurálni egy üzembehelyezési ponthoz a portálon, először keresse meg a pontot. Ha meg szeretné keresni a webalkalmazás vagy üzembehelyezési pont felügyelt identitását a Microsoft Entra-bérlőben az Azure Portalon, keresse meg közvetlenül a bérlő Áttekintés lapján. A pont neve általában a következőhöz <app-name>/slots/<slot-name>
hasonló.
Ez a videó bemutatja, hogyan használhat felügyelt identitásokat az App Service-ben.
A videó lépéseit a következő szakaszokban is ismertetjük.
Rendszer által hozzárendelt identitás hozzáadása
Az alkalmazás beállításainak elérése az Azure Portalon , a bal oldali navigációs panel Beállítások csoportjában.
Válassza ki az Identitás elemet.
A rendszer által hozzárendelt lapon kapcsolja be az Állapot beállítást. Kattintson a Mentés gombra.
Felhasználó által hozzárendelt identitás hozzáadása
Felhasználó által hozzárendelt identitással rendelkező alkalmazás létrehozásához létre kell hoznia az identitást, majd hozzá kell adnia annak erőforrás-azonosítóját az alkalmazáskonfigurációhoz.
Először létre kell hoznia egy felhasználó által hozzárendelt identitáserőforrást.
Hozzon létre egy felhasználó által hozzárendelt felügyelt identitáserőforrást az utasításoknak megfelelően.
Az alkalmazás lapjának bal oldali navigációs sávján görgessen le a Beállítások csoporthoz.
Válassza ki az Identitás elemet.
Válassza a Felhasználó által hozzárendelt>Hozzáadás lehetőséget.
Keresse meg a korábban létrehozott identitást, jelölje ki, és válassza a Hozzáadás lehetőséget.
Miután a Hozzáadás lehetőséget választja, az alkalmazás újraindul.
Célerőforrás konfigurálása
Előfordulhat, hogy konfigurálnia kell a célerőforrást az alkalmazásból vagy függvényből való hozzáférés engedélyezéséhez. Ha például jogkivonatot kér a Key Vault eléréséhez, hozzá kell adnia egy hozzáférési szabályzatot is, amely tartalmazza az alkalmazás vagy függvény felügyelt identitását. Ellenkező esetben a Rendszer elutasítja a Key Vaultba irányuló hívásokat, még akkor is, ha érvényes jogkivonatot használ. Ugyanez igaz az Azure SQL Database-hez is. Ha többet szeretne megtudni arról, hogy mely erőforrások támogatják a Microsoft Entra-jogkivonatokat, tekintse meg a Microsoft Entra-hitelesítést támogató Azure-szolgáltatásokat.
Fontos
A felügyelt identitások háttérszolgáltatásai erőforrás-URI-nként körülbelül 24 órán át gyorsítótárat tartanak fenn. Ez azt jelenti, hogy a felügyelt identitás csoport- vagy szerepkör-tagságának módosítása több órát is igénybe vehet. Jelenleg nem kényszeríthető a felügyelt identitás jogkivonatának frissítése a lejárat előtt. Ha módosítja egy felügyelt identitás csoport- vagy szerepkör-tagságát az engedélyek hozzáadásához vagy eltávolításához, előfordulhat, hogy több órát kell várnia, amíg az Azure-erőforrás az identitással rendelkezik a megfelelő hozzáféréshez. A csoportok vagy szerepkör-tagságok alternatíváit a felügyelt identitások hitelesítéshez való használatának korlátozásával kapcsolatos cikkben találhatja meg.
Csatlakozás azure-szolgáltatásokhoz alkalmazáskódban
A felügyelt identitással az alkalmazások jogkivonatokat szerezhetnek be a Microsoft Entra ID által védett Azure-erőforrásokhoz, például az Azure SQL Database-hez, az Azure Key Vaulthoz és az Azure Storage-hoz. Ezek a jogkivonatok az erőforráshoz hozzáférő alkalmazást jelölik, nem pedig az alkalmazás egy adott felhasználóját.
Az App Service és az Azure Functions egy belsőleg elérhető REST-végpontot biztosít a jogkivonatok lekéréséhez. A REST-végpont egy szabványos HTTP GET-lel érhető el az alkalmazáson belül, amely minden nyelven implementálható egy általános HTTP-ügyféllel. A .NET, a JavaScript, a Java és a Python esetében az Azure Identity-ügyfélkódtár absztrakciót biztosít ezen REST-végponton, és leegyszerűsíti a fejlesztési élményt. A más Azure-szolgáltatásokhoz való csatlakozás olyan egyszerű, mintha hitelesítő objektumot ad hozzá a szolgáltatásspecifikus ügyfélhez.
A nyers HTTP GET-kérések a két megadott környezeti változót használják , és a következő példához hasonlóan néznek ki:
GET /MSI/token?resource=https://vault.azure.net&api-version=2019-08-01 HTTP/1.1
Host: <ip-address-:-port-in-IDENTITY_ENDPOINT>
X-IDENTITY-HEADER: <value-of-IDENTITY_HEADER>
A mintaválaszok pedig az alábbihoz hasonlóan nézhetnek ki:
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJ0eXAi…",
"expires_on": "1586984735",
"resource": "https://vault.azure.net",
"token_type": "Bearer",
"client_id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
Ez a válasz ugyanaz, mint a Microsoft Entra szolgáltatás–szolgáltatás hozzáférési jogkivonat-kérésre adott válasz. A Key Vault eléréséhez ezután hozzáadja a tárolóval létesített ügyfélkapcsolat értékét access_token
.
A REST-végpontról további információt a REST-végpont hivatkozásában talál.
Identitás eltávolítása
Ha eltávolít egy rendszer által hozzárendelt identitást, az törlődik a Microsoft Entra-azonosítóból. A rendszer által hozzárendelt identitások automatikusan törlődnek a Microsoft Entra-azonosítóból is, amikor törli magát az alkalmazáserőforrást.
Az alkalmazás oldalának bal oldali navigációs sávján görgessen le a Beállítások csoporthoz.
Válassza ki az Identitás elemet. Ezután kövesse a lépéseket az identitástípus alapján:
- Rendszer által hozzárendelt identitás: A rendszer által hozzárendelt lapon kapcsolja ki az állapotot. Kattintson a Mentés gombra.
- Felhasználó által hozzárendelt identitás: Jelölje be a Felhasználó által hozzárendelt lapot, jelölje be az identitás jelölőnégyzetét, és válassza az Eltávolítás lehetőséget. Válassza az Igen lehetőséget a megerősítéshez.
Feljegyzés
Van egy alkalmazásbeállítás is, amely beállítható, WEBSITE_DISABLE_MSI, amely csak letiltja a helyi jogkivonat-szolgáltatást. Az identitást azonban a helyén hagyja, és az eszközkezelés továbbra is "bekapcsolva" vagy "engedélyezve" állapotban jeleníti meg a felügyelt identitást. Ennek eredményeképpen a beállítás használata nem ajánlott.
REST-végpont referenciája
Egy felügyelt identitással rendelkező alkalmazás két környezeti változó definiálásával teszi elérhetővé ezt a végpontot:
- IDENTITY_ENDPOINT – a helyi jogkivonat-szolgáltatás URL-címe.
- IDENTITY_HEADER – a kiszolgálóoldali hamisítási (SSRF) támadások enyhítésére szolgáló fejléc. Az értéket a platform elforgatja.
A IDENTITY_ENDPOINT egy helyi URL-cím, amelyről az alkalmazás jogkivonatokat kérhet. Ha jogkivonatot szeretne lekérni egy erőforráshoz, hozzon létre egy HTTP GET kérést erre a végpontra, beleértve a következő paramétereket:
Paraméter neve In Leírás erőforrás Lekérdezés Annak az erőforrásnak a Microsoft Entra erőforrás-URI-ja, amelyhez jogkivonatot kell beszerezni. Ez lehet az egyik Olyan Azure-szolgáltatás, amely támogatja a Microsoft Entra-hitelesítést vagy bármely más erőforrás-URI-t. api-verzió Lekérdezés A használni kívánt token API verziója. Használja az 2019-08-01
parancsot.X-IDENTITY-HEADER Fejléc A IDENTITY_HEADER környezeti változó értéke. Ez a fejléc a kiszolgálóoldali hamisítási (SSRF-) támadások enyhítésére szolgál. ügyfél azonosítója Lekérdezés (Nem kötelező) A használni kívánt felhasználó által hozzárendelt identitás ügyfélazonosítója. Nem használható olyan kérelem esetén, amely tartalmazza principal_id
a (mi_res_id
vagyobject_id
) elemet. Ha az összes azonosítóparaméter (client_id
, ,principal_id
,object_id
ésmi_res_id
) hiányzik, a rendszer által hozzárendelt identitást használja.principal_id Lekérdezés (Nem kötelező) A használandó felhasználó által hozzárendelt identitás egyszerű azonosítója. object_id
egy alias, amelyet használhat helyette. Nem használható client_id, mi_res_id vagy object_id tartalmazó kérelemhez. Ha az összes azonosítóparaméter (client_id
, ,principal_id
,object_id
ésmi_res_id
) hiányzik, a rendszer által hozzárendelt identitást használja.mi_res_id Lekérdezés (Nem kötelező) A használandó felhasználó által hozzárendelt identitás Azure-erőforrás-azonosítója. Nem használható olyan kérelem esetén, amely tartalmazza principal_id
a (client_id
vagyobject_id
) elemet. Ha az összes azonosítóparaméter (client_id
, ,principal_id
,object_id
ésmi_res_id
) hiányzik, a rendszer által hozzárendelt identitást használja.
Fontos
Ha jogkivonatokat próbál beszerezni a felhasználó által hozzárendelt identitásokhoz, tartalmaznia kell az egyik választható tulajdonságot. Ellenkező esetben a jogkivonat-szolgáltatás megkísérli beszerezni a rendszer által hozzárendelt identitáshoz tartozó jogkivonatot, amely lehet, hogy létezik vagy nem létezik.
Következő lépések
- Oktatóanyag: Csatlakozás az SQL Database-hez az App Service-ből titkos kulcsok nélkül felügyelt identitás használatával
- Az Azure Storage biztonságos elérése felügyelt identitással
- A Microsoft Graph biztonságos meghívása felügyelt identitás használatával
- Biztonságos csatlakozás a Key Vault titkos kulcsaival rendelkező szolgáltatásokhoz