Felügyelt identitások használata az App Service-hez és az Azure Functionshez
Feljegyzés
2024. június 1-től az újonnan létrehozott App Service-alkalmazások létrehozhatnak egy egyedi alapértelmezett gazdagépnevet, amely az elnevezési konvenciót <app-name>-<random-hash>.<region>.azurewebsites.net
használja. A meglévő alkalmazásnevek változatlanok maradnak. Példa:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
További információ: Az App Service-erőforrás egyedi alapértelmezett gazdagépneve.
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.
Előfeltételek
A dokumentum lépéseinek végrehajtásához rendelkeznie kell az Azure-erőforrásokra vonatkozó minimális engedélykészlettel. A szükséges engedélyek a forgatókönyvtől függően változnak. A leggyakoribb forgatókönyveket az alábbi táblázat foglalja össze:
Eset | Szükséges engedély | Példa beépített szerepkörökre |
---|---|---|
Rendszer által hozzárendelt identitás létrehozása az alkalmazáshoz |
Microsoft.Web/sites/write az alkalmazáson keresztül (vagy Microsoft.Web/sites/slots/write a pont felett) |
Webhely közreműködője |
Felhasználó által hozzárendelt identitás létrehozása |
Microsoft.ManagedIdentity/userAssignedIdentities/write azon az erőforráscsoporton, amelyben az identitás létrejön |
Felügyelt identitás közreműködője |
Felhasználó által hozzárendelt identitás hozzárendelése az alkalmazáshoz |
Microsoft.Web/sites/write az alkalmazáson keresztül (vagy Microsoft.Web/sites/slots/write a pont felett),Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action az identitás felett |
Webhely közreműködője és felügyelt identitáskezelője |
Azure-szerepkör-hozzárendelések létrehozása |
Microsoft.Authorization/roleAssignments/write (a célerőforrás hatóköre felett) |
Szerepköralapú hozzáférés-vezérlési rendszergazda vagy felhasználói hozzáférés-rendszergazda |
Más forgatókönyvekhez eltérő engedélyekre lehet szükség.
Rendszer által hozzárendelt identitás hozzáadása
Ha engedélyezni szeretné a rendszer által hozzárendelt felügyelt identitást az alkalmazásban vagy a pontban, írási engedélyekre van szüksége az adott alkalmazáson vagy ponton. A Webhely közreműködője szerepkör biztosítja ezeket az engedélyeket.
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.
Ha felhasználó által hozzárendelt felügyelt identitást szeretne hozzárendelni az alkalmazáshoz vagy a ponthoz, írási engedélyekre van szüksége az adott alkalmazáshoz vagy ponthoz. A Webhely közreműködője szerepkör biztosítja ezeket az engedélyeket. A felhasználó által hozzárendelt felügyelt identitás hozzárendeléséhez is rendelkeznie kell engedéllyel. A Felügyelt identitáskezelő szerepkör biztosítja ezeket az engedélyeket.
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
Konfigurálnia kell a célerőforrást az alkalmazásból való hozzáférés engedélyezéséhez. A legtöbb Azure-szolgáltatás esetében ezt egy szerepkör-hozzárendelés létrehozásával teheti meg. Egyes szolgáltatások nem az Azure RBAC-t használják. A hozzáférés identitással való konfigurálásához tekintse meg az egyes célerőforrások dokumentációját. 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.
Ha például jogkivonatot kér egy titkos kulcs eléréséhez a Key Vaultban, létre kell hoznia egy szerepkör-hozzárendelést is, amely lehetővé teszi, hogy a felügyelt identitás titkos kulcsokkal működjön a céltartóban. 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 és más szolgáltatásokhoz is.
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.
Ha el szeretne távolítani egy felügyelt identitást az alkalmazásból vagy a pontból, írási engedélyekre van szüksége az adott alkalmazáson vagy ponton. A Webhely közreműködője szerepkör biztosítja ezeket az engedélyeket.
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