Felügyelt identitások használata App Service és Azure Functions

Ez a témakör bemutatja, hogyan hozhat létre felügyelt identitást App Service és Azure Functions alkalmazásokhoz, és hogyan használhatja más erőforrások eléréséhez.

Fontos

A felügyelt identitások App Service és Azure Functions nem a várt módon viselkednek, ha az alkalmazást előfizetések/bérlők között migrálják. Az alkalmazásnak be kell szereznie egy új identitást, amely a funkció letiltásával és újra engedélyezésével történik. Lásd az identitás eltávolítását alább. Az lefelé irányuló erőforrásoknak az új identitás használatára vonatkozó hozzáférési szabályzatokat is frissíteniük kell.

Megjegyzés

A felügyelt identitások nem érhetők el az alkalmazásban üzembe helyezett Azure Arc.

A felügyelt identitás Azure Active Directory (Azure AD) lehetővé teszi, hogy az alkalmazás könnyedén hozzáférjen az Azure AD által védett más erőforrásokhoz, például Azure Key Vault. Az identitást az Azure platform kezeli, és nem követeli meg a titkos kulcsok üzembe vagy váltogatottságát. Az Azure AD-beli felügyelt identitásokkal kapcsolatos további információkért lásd: Azure-erőforrások felügyelt identitása.

Az alkalmazás kétféle identitástípust kaphat:

  • 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ásnak csak egy, a rendszer által hozzárendelt identitása lehet.
  • A felhasználó által hozzárendelt identitás egy önálló Azure-erőforrás, amely hozzárendelhető az alkalmazáshoz. Egy alkalmazás több felhasználó által hozzárendelt identitással is lehet.

Rendszer által hozzárendelt identitás hozzáadása

A rendszer által hozzárendelt identitással való alkalmazáslétrehozáshoz további tulajdonságot kell beállítani az alkalmazásban.

Az Azure Portal használata

A felügyelt identitás portálon való beállításához először létre kell hoznia egy alkalmazást a szokásos módon, majd engedélyeznie kell a funkciót.

  1. Hozzon létre egy alkalmazást a portálon a szokásos módon. Keresse meg a portálon.

  2. Ha függvényalkalmazást használ, lépjen a Platformfunkciók lapra. Más alkalmazástípusok esetén görgessen le a bal Gépház csoporthoz.

  3. Válassza az Identitás lehetőséget.

  4. A Rendszer által hozzárendelt lapon kapcsolja be az Állapotkapcsolót. Kattintson a Mentés gombra.

    Screenshot that shows where to switch Status to On and then select Save.

Megjegyzés

A webalkalmazás vagy a pontalkalmazás felügyelt identitásának megkereséhez a Azure Portal a Vállalati alkalmazások területen keresse meg a Felhasználói beállítások szakaszt. A tárolóhely neve általában a következőre <app name>/slots/<slot name> hasonlít: .

Az Azure CLI-vel

Ha felügyelt identitást kell beállítania az Azure CLI használatával, az parancsot kell használnia az webapp identity assign egy meglévő alkalmazáson. Az ebben a szakaszban található példák futtatására három lehetőség közül választhat:

  • Használja Azure Cloud Shell a Azure Portal.
  • A beágyazott Azure Cloud Shell az egyes kódblokkok jobb felső sarkában található "Próbálja ki" gombbal.
  • Ha helyi CLI-konzolt szeretne használni, telepítse az Azure CLI legújabb verzióját (2.0.31-es vagy újabb verzió).

A következő lépések végigveszik egy webalkalmazás létrehozásának és identitásnak a CLI használatával való hozzárendelésének folyamatán:

  1. Ha az Azure CLI-t helyi konzolban használja, akkor először az az login paranccsal jelentkezzen be az Azure-ba. Olyan fiókot használjon, amely ahhoz az Azure-előfizetéshez van társítva, amelyben üzembe szeretné helyezni az alkalmazást:

    az login
    
  2. Webalkalmazás létrehozása a CLI használatával. További példák a CLI és a App Service használatára: App Service CLI-minták:

    az group create --name myResourceGroup --location westus
    az appservice plan create --name myPlan --resource-group myResourceGroup --sku S1
    az webapp create --name myApp --resource-group myResourceGroup --plan myPlan
    
  3. Futtassa identity assign az parancsot az alkalmazás identitásának létrehozásához:

    az webapp identity assign --name myApp --resource-group myResourceGroup
    

Az Azure PowerShell használata

Megjegyzés

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való kommunikációhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

A következő lépések végigveszik az alkalmazások létrehozásának és identitások hozzárendelésének folyamatán a Azure PowerShell. A webalkalmazások és függvényalkalmazások létrehozására vonatkozó utasítások eltérnek.

A Azure PowerShell használata webalkalmazáshoz

  1. Ha szükséges, telepítse a Azure PowerShell az útmutatóban található Azure PowerShell, majd futtassa a következőt az Azure-ral való kapcsolat létrehozásához: .

  2. Webalkalmazás létrehozása a Azure PowerShell. A PowerShell-mintákAzure PowerShell App Service további App Service:

    # Create a resource group.
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
    # Create an App Service plan in Free tier.
    New-AzAppServicePlan -Name $webappname -Location $location -ResourceGroupName $resourceGroupName -Tier Free
    
    # Create a web app.
    New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname -ResourceGroupName $resourceGroupName
    
  3. Futtassa Set-AzWebApp -AssignIdentity az parancsot az alkalmazás identitásának létrehozásához:

    Set-AzWebApp -AssignIdentity $true -Name $webappname -ResourceGroupName $resourceGroupName 
    

Függvényalkalmazás Azure PowerShell használata

  1. Ha szükséges, telepítse a Azure PowerShell az útmutatóban található Azure PowerShell, majd futtassa a következőt az Azure-ral való kapcsolat létrehozásához: .

  2. Függvényalkalmazás létrehozása a Azure PowerShell. A függvények és a Azure PowerShell használatával Azure Functions az Az.Functions referenciában talál további példákat:

    # Create a resource group.
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
    # Create a storage account.
    New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -SkuName $sku
    
    # Create a function app with a system-assigned identity.
    New-AzFunctionApp -Name $functionAppName -ResourceGroupName $resourceGroupName -Location $location -StorageAccountName $storageAccountName -Runtime $runtime -IdentityType SystemAssigned
    

Meglévő függvényalkalmazást a használatával is Update-AzFunctionApp frissíthet.

Sablon Azure Resource Manager használata

Az Azure Resource Manager sablonnal automatizálhatja az Azure-erőforrások üzembe helyezését. További információ az üzembe helyezésről a App Service és a Functionsben: Automating resource deployment in App Service and Automating resource deploymentin Azure Functions .

Bármilyen típusú erőforrást létre lehet hozva egy identitással, ha az alábbi tulajdonságot adja meg Microsoft.Web/sites az erőforrás-definícióban:

"identity": {
    "type": "SystemAssigned"
}

Megjegyzés

Egy alkalmazás egyszerre lehet rendszer- és felhasználó által hozzárendelt identitással is. Ebben az esetben a type tulajdonság a következő lenne: SystemAssigned,UserAssigned

A rendszer által hozzárendelt típus hozzáadása arra utasítja az Azure-t, hogy hozza létre és kezelje az alkalmazás identitását.

Egy webalkalmazás például az alábbihoz hasonló lehet:

{
    "apiVersion": "2016-08-01",
    "type": "Microsoft.Web/sites",
    "name": "[variables('appName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "SystemAssigned"
    },
    "properties": {
        "name": "[variables('appName')]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]",
        "hostingEnvironment": "",
        "clientAffinityEnabled": false,
        "alwaysOn": true
    },
    "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
    ]
}

A létrehozott hely a következő további tulajdonságokkal rendelkezik:

"identity": {
    "type": "SystemAssigned",
    "tenantId": "<TENANTID>",
    "principalId": "<PRINCIPALID>"
}

A tenantId tulajdonság azonosítja azt az Azure AD-bérlőt, amelyhez az identitás tartozik. A principalId az alkalmazás új identitásának egyedi azonosítója. Az Azure AD-ban a szolgáltatásnév ugyanaz a név, mint amit a App Service vagy Azure Functions adott.

Ha ezekre a tulajdonságokra a sablon egy későbbi szakaszában kell hivatkozni, ezt a sablon függvényen keresztül, a jelzővel adhatja meg, ahogyan az 'Full' alábbi példában is:

{
    "tenantId": "[reference(resourceId('Microsoft.Web/sites', variables('appName')), '2018-02-01', 'Full').identity.tenantId]",
    "objectId": "[reference(resourceId('Microsoft.Web/sites', variables('appName')), '2018-02-01', 'Full').identity.principalId]",
}

Felhasználó által hozzárendelt identitás hozzáadása

Ha felhasználó által hozzárendelt identitással hoz létre egy alkalmazást, létre kell hoznia az identitást, majd hozzá kell adni az erőforrás-azonosítóját az alkalmazás konfigurációhoz.

Az Azure Portal használata

Először létre kell hoznia egy felhasználó által hozzárendelt identitás-erőforrást.

  1. Hozzon létre egy felhasználó által hozzárendelt felügyelt identitás erőforrást a következő utasításoknak megfelelően:.

  2. Hozzon létre egy alkalmazást a portálon a szokásos módon. Keresse meg a portálon.

  3. Ha függvényalkalmazást használ, lépjen a Platformfunkciók lapra. Más alkalmazástípusok esetén görgessen le a bal Gépház csoporthoz.

  4. Válassza az Identitás lehetőséget.

  5. A Felhasználóhoz rendelt lapon kattintson a Hozzáadás elemre.

  6. Keresse meg és válassza ki a korábban létrehozott identitást. Kattintson a Hozzáadás parancsra.

    Managed identity in App Service

Az Azure PowerShell használata

Megjegyzés

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való kommunikációhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

A következő lépések végigveszik az alkalmazások létrehozásának és identitások hozzárendelésének folyamatán a Azure PowerShell.

Megjegyzés

Az alkalmazáshoz Azure PowerShell parancsmagok aktuális Azure App Service nem támogatják a felhasználó által hozzárendelt identitásokat. Az alábbi utasítások a következőkre Azure Functions.

  1. Ha szükséges, telepítse a Azure PowerShell az útmutatóban található Azure PowerShell, majd futtassa a következőt az Azure-ral való kapcsolat létrehozásához: .

  2. Függvényalkalmazás létrehozása a Azure PowerShell. A függvények és a Azure PowerShell használatával Azure Functions az Az.Functions referenciában talál további példákat. Az alábbi szkript azt is használja, amelyet külön kell telepíteni a Felhasználó által hozzárendelt felügyelt identitás létrehozása, listának vagy törlése a következővel: New-AzUserAssignedIdentityNew-AzUserAssignedIdentity

    # Create a resource group.
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
    # Create a storage account.
    New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -SkuName $sku
    
    # Create a user-assigned identity. This requires installation of the "Az.ManagedServiceIdentity" module.
    $userAssignedIdentity = New-AzUserAssignedIdentity -Name $userAssignedIdentityName -ResourceGroupName $resourceGroupName
    
    # Create a function app with a user-assigned identity.
    New-AzFunctionApp -Name $functionAppName -ResourceGroupName $resourceGroupName -Location $location -StorageAccountName $storageAccountName -Runtime $runtime -IdentityType UserAssigned -IdentityId $userAssignedIdentity.Id
    

Meglévő függvényalkalmazást a használatával is Update-AzFunctionApp frissíthet.

Sablon Azure Resource Manager használata

Az Azure Resource Manager sablonnal automatizálhatja az Azure-erőforrások üzembe helyezését. További információ az üzembe helyezésről a App Service és a Functionsben: Automating resource deployment in App Service and Automating resource deploymentin Azure Functions .

Bármilyen típusú erőforrást létre lehet hozva egy identitással úgy, hogy a következő blokkot beleveszi az erőforrás-definícióba, a helyett pedig a kívánt Microsoft.Web/sites<RESOURCEID> identitás erőforrás-azonosítóját adja meg:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<RESOURCEID>": {}
    }
}

Megjegyzés

Egy alkalmazás egyszerre lehet rendszer- és felhasználó által hozzárendelt identitással is. Ebben az esetben a type tulajdonság a következő lenne: SystemAssigned,UserAssigned

A felhasználó által hozzárendelt típus hozzáadása arra utasítja az Azure-t, hogy az alkalmazáshoz megadott, felhasználó által hozzárendelt identitást használja.

Egy webalkalmazás például az alábbihoz hasonló lehet:

{
    "apiVersion": "2016-08-01",
    "type": "Microsoft.Web/sites",
    "name": "[variables('appName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]": {}
        }
    },
    "properties": {
        "name": "[variables('appName')]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]",
        "hostingEnvironment": "",
        "clientAffinityEnabled": false,
        "alwaysOn": true
    },
    "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]",
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
    ]
}

A létrehozott hely a következő további tulajdonságokkal rendelkezik:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<RESOURCEID>": {
            "principalId": "<PRINCIPALID>",
            "clientId": "<CLIENTID>"
        }
    }
}

A principalId az Azure AD-felügyelethez használt identitás egyedi azonosítója. A clientId az alkalmazás új identitásának egyedi azonosítója, amellyel megadható, hogy melyik identitást használja a rendszer a futásidejű hívások során.

Azure-erőforrások jogkivonatának beszerzése

Az alkalmazások a felügyelt identitásuk használatával jogkivonatokat kaphatnak az Azure AD által védett egyéb erőforrásokhoz való hozzáféréshez, például Azure Key Vault. Ezek a jogkivonatok az erőforráshoz hozzáférő alkalmazást képviselik, nem az alkalmazás egyetlen konkrét felhasználóját.

Előfordulhat, hogy konfigurálnia kell a célerőforrást, hogy engedélyezze a hozzáférést az alkalmazásból. Ha például jogkivonatot kér a Key Vault eléréséhez, meg kell győződni arról, hogy hozzáadott egy hozzáférési szabályzatot, amely tartalmazza az alkalmazás identitását. Ellenkező esetben a rendszer elutasítja a Key Vault hívásait, még akkor is, ha tartalmazzák a jogkivonatot. A jogkivonatok használatát támogató Azure Active Directory az Azure AD-hitelesítést támogató Azure-szolgáltatásokban olvashat bővebben.

Fontos

A felügyelt identitások háttérszolgáltatásai erőforrás-URI-nként körülbelül 24 óráig fenntartják a gyorsítótárat. Ha frissíti egy adott célerőforrás hozzáférési szabályzatát, és azonnal lekér egy jogkivonatot az adott erőforráshoz, akkor előfordulhat, hogy a gyorsítótárazott jogkivonat elavult engedélyekkel rendelkezik, amíg a jogkivonat le nem jár. Jelenleg nincs mód jogkivonat-frissítés kényszerítése.

Egy egyszerű REST protokollal szerezhet be jogkivonatot a App Service és Azure Functions. Ez minden alkalmazáshoz és nyelvhez használható. A .NET és a Java esetében az Azure SDK absztrakciót biztosít ehhez a protokollhoz, és helyi fejlesztési élményt biztosít.

A REST protokoll használata

Megjegyzés

A protokoll egy régebbi verziója, amely a "2017-09-01" API-verziót használja, a fejlécet használta a helyett, és csak a felhasználó által hozzárendelt tulajdonságot fogadta secretX-IDENTITY-HEADERclientid el. Emellett expires_on időbélyeg-formátumban is visszaadta a et. MSI_ENDPOINT használható a IDENTITY_ENDPOINT aliasaként, MSI_SECRET a IDENTITY_HEADER. A protokoll ezen verziója jelenleg szükséges a Linux-használat-csomagokhoz.

A felügyelt identitással rendelkezik az alkalmazásokhoz két környezeti változó van definiálva:

  • IDENTITY_ENDPOINT – a helyi jogkivonat-szolgáltatás URL-címe.
  • IDENTITY_HEADER – a kiszolgálóoldali kérelmek hamisítási (SSRF) támadásának mérséklése érdekében használt fejléc. Az értéket a platform forgatja.

A IDENTITY_ENDPOINT egy helyi URL-cím, amelyről az alkalmazás jogkivonatokat kérhet. Egy erőforrás jogkivonatának lekérése érdekében egy HTTP GET kérést kell kérnie erre a végpontra, beleértve a következő paramétereket:

Paraméter neve In Description
erőforrás Lekérdezés Annak az erőforrásnak az Azure AD-erőforrás URI-ját, amelyhez jogkivonatot kell beszerezni. Ez lehet az Azure AD-hitelesítést támogató Azure-szolgáltatások egyike vagy bármely más erőforrás-URI.
api-verzió Lekérdezés A használni fog jogkivonat API-jának verziója. Használja a "2019-08-01" vagy újabb lehetőséget (kivéve, ha a Linux-használat-t használja, amely jelenleg csak a "2017-09-01" lehetőséget kínálja – lásd a fenti megjegyzést).
X-IDENTITY-HEADER Fejléc Az IDENTITY_HEADER környezeti változó értéke. Ez a fejléc segít mérsékelni a kiszolgálóoldali hamisítási (SSRF) támadásokat.
client_id Lekérdezés (Nem kötelező) A felhasználó által hozzárendelt identitás ügyfél-azonosítója. Nem használható olyan kérések esetén, amelyek a következőket tartalmazzák: principal_idmi_res_id , vagy object_id . Ha az összes azonosítóparaméter ( , , és ) nincs megadva, a rendszer client_idprincipal_id a rendszer által object_idmi_res_id hozzárendelt identitást használja.
principal_id Lekérdezés (Nem kötelező) A felhasználó által hozzárendelt identitás egyszerű azonosítója. object_id A egy alias, amely ehelyett használható. Nem használható olyan kérések esetén, amelyek client_id, mi_res_id vagy object_id. Ha az összes azonosítóparaméter ( , , és ) nincs megadva, a rendszer client_idprincipal_id a rendszer által object_idmi_res_id hozzárendelt identitást használja.
mi_res_id Lekérdezés (Nem kötelező) A használni szükséges felhasználó által hozzárendelt identitás Azure-erőforrás-azonosítója. Nem használható olyan kérések esetén, amelyek a következőket tartalmazzák: principal_idclient_id , vagy object_id . Ha az összes azonosítóparaméter ( , , és ) nincs megadva, a rendszer client_idprincipal_id a rendszer által object_idmi_res_id hozzárendelt identitást használja.

Fontos

Ha felhasználó által hozzárendelt identitásokhoz próbál jogkivonatokat beszerezni, meg kell tartalmaznia az egyik választható tulajdonságot. Ellenkező esetben a jogkivonat-szolgáltatás megpróbálja beszerezni a rendszer által hozzárendelt identitás jogkivonatát, amely lehet, hogy létezik vagy nem létezik.

A 200 OK sikeres válasz egy JSON-törzset tartalmaz, amely a következő tulajdonságokkal rendelkezik:

Tulajdonság neve Description
access_token A kért hozzáférési jogkivonat. A hívó webszolgáltatás ezzel a jogkivonattal hitelesítheti magát a fogadó webszolgáltatásban.
client_id A használt identitás ügyfél-azonosítója.
expires_on A hozzáférési jogkivonat lejárati ideje. A dátumot az "1970-01-01T0:0:0Z UTC" időponttól (UTC) származó másodpercek száma jelöli (a jogkivonat jogcímének exp felel meg).
not_before Az az idő, amely után a hozzáférési jogkivonat életbe lép, és elfogadható. A dátumot az "1970-01-01T0:0:0Z UTC" időponttól (UTC) származó másodpercek száma jelöli (a jogkivonat jogcímének nbf felel meg).
erőforrás Az az erőforrás, amelyre a hozzáférési jogkivonatot kérelmezték, és amely megegyezik a kérés resource lekérdezési sztring paraméterének értékére.
token_type A jogkivonat típusának értékét jelzi. Az Azure AD csak a Bearer típust támogatja. A bearer tokenekkel kapcsolatos további információkért lásd: Az OAuth 2.0 engedélyezési keretrendszere: Bearer Token Usage (RFC 6750).

Ez a válasz ugyanaz, mint az Azure AD szolgáltatásokhoz való hozzáférési jogkivonat-kérésének válasza.

REST-protokollpéék

Egy példakérés a következőre hasonlíthat:

GET /MSI/token?resource=https://vault.azure.net&api-version=2019-08-01 HTTP/1.1
Host: localhost:4141
X-IDENTITY-HEADER: 853b9a84-5bfa-4b22-a3f3-0b9a43d9ad8a

A mintaválasz az alábbihoz hasonló lehet:

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": "5E29463D-71DA-4FE0-8E69-999B57DB23B0"
}

Kódpéldák

Tipp

A .NET-nyelvek esetében a Microsoft.Azure.Services.AppAuthentication szolgáltatást is használhatja ahelyett, hogy saját maga hozta volna azt elő.

private readonly HttpClient _client;
// ...
public async Task<HttpResponseMessage> GetToken(string resource)  {
    var request = new HttpRequestMessage(HttpMethod.Get, 
        String.Format("{0}/?resource={1}&api-version=2019-08-01", Environment.GetEnvironmentVariable("IDENTITY_ENDPOINT"), resource));
    request.Headers.Add("X-IDENTITY-HEADER", Environment.GetEnvironmentVariable("IDENTITY_HEADER"));
    return await _client.SendAsync(request);
}

A Microsoft.Azure.Services.AppAuthentication kódtár használata a .NET-hez

A .NET-alkalmazások és -függvények esetében a felügyelt identitások használatának legegyszerűbb módja a Microsoft.Azure.Services.AppAuthentication csomag használata. Ez a kódtár azt is lehetővé teszi, hogy helyileg tesztelje a kódot a fejlesztői gépen az Visual Studio, az Azure CLIvagy az integrált hitelesítés Active Directory használatával. A felhőben üzemeltetett szolgáltatás alapértelmezés szerint rendszer által hozzárendelt identitást használ, de ezt a viselkedést testre szabhatja egy kapcsolati sztring környezeti változóval, amely a felhasználó által hozzárendelt identitás ügyfél-azonosítójára hivatkozik. További információ a kódtár fejlesztési lehetőségeiről: Microsoft.Azure.Services.AppAuthentication reference (Microsoft.Azure.Services.AppAuthentication referencia). Ez a szakasz bemutatja, hogyan ássa el a kódtárat a kódban.

  1. Adjon hozzá hivatkozásokat a Microsoft.Azure.Services.AppAuthentication és bármely más szükséges NuGet-csomaghoz az alkalmazáshoz. Az alábbi példa a Microsoft.Azure.KeyVault szolgáltatásokat is használja.

  2. Adja hozzá a következő kódot az alkalmazáshoz úgy, hogy a megfelelő erőforrást célozza meg. Ez a példa két módszert mutat be a Azure Key Vault:

    using Microsoft.Azure.Services.AppAuthentication;
    using Microsoft.Azure.KeyVault;
    // ...
    var azureServiceTokenProvider = new AzureServiceTokenProvider();
    string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://vault.azure.net");
    // OR
    var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
    

Ha felhasználó által hozzárendelt felügyelt identitást szeretne használni, az alkalmazásbeállítást a következőre AzureServicesAuthConnectionString állíthatja: RunAs=App;AppId=<clientId-guid> . Cserélje le a helyére a használni <clientId-guid> kívánt identitás ügyfél-azonosítóját. Több ilyen kapcsolati sztringet is meghatározhat egyéni alkalmazásbeállítások használatával, és az értékeiket átadhatja az AzureServiceTokenProvider konstruktornak.

    var identityConnectionString1 = Environment.GetEnvironmentVariable("UA1_ConnectionString");
    var azureServiceTokenProvider1 = new AzureServiceTokenProvider(identityConnectionString1);
    
    var identityConnectionString2 = Environment.GetEnvironmentVariable("UA2_ConnectionString");
    var azureServiceTokenProvider2 = new AzureServiceTokenProvider(identityConnectionString2);

Az AzureServiceTokenProvider konfigurálásával és az elérhetővé tévő műveletekkel kapcsolatos további információkért tekintse meg a Microsoft.Azure.Services.AppAuthentication referenciát, valamint a App Service és a KeyVault MSI .NET-mintahasználatával való használatát.

A Javához készült Azure SDK használata

Java-alkalmazások és -függvények esetén a felügyelt identitások használatának legegyszerűbb módja a Javához készült Azure SDK. Ez a szakasz bemutatja, hogyan ássa el a kódtárat a kódban.

  1. Adjon hozzá egy, az Azure SDK-kódtárra vonatkozó hivatkozást. Maven-projektek esetén hozzáadhatja ezt a kódrészletet a projekt dependencies POM-fájlja szakaszhoz:

    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager</artifactId>
      <version>2.10.0</version>
    </dependency>
    
  2. Használja a ManagedIdentityCredential objektumot a hitelesítéshez. Ez a példa bemutatja, hogyan használható ez a mechanizmus a Azure Key Vault:

    import com.azure.core.management.AzureEnvironment;
    import com.azure.core.management.profile.AzureProfile;
    import com.azure.identity.ManagedIdentityCredential;
    import com.azure.identity.ManagedIdentityCredentialBuilder;
    import com.azure.resourcemanager.AzureResourceManager;
    import com.azure.resourcemanager.keyvault.models.Vault;
    //...
    AzureProfile azureProfile = new AzureProfile(AzureEnvironment.AZURE);
    ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder().build();
    AzureResourceManager azure = AzureResourceManager.authenticate(managedIdentityCredential, azureProfile).withSubscription("subscription");
    
    Vault vault = azure.vaults().getByResourceGroup("resourceGroup", "keyVaultName");
    
    

A Javához készült Azure SDK használatával kapcsolatos további információkért tekintse meg ezt a rövid útmutatót. Ha többet szeretne megtudni az Azure Identiyről, a hitelesítésről és a felügyelt identitásról, tekintse meg ezt az útmutatót

Identitás eltávolítása

A rendszer által hozzárendelt identitás úgy távolítható el, ha a portál, a PowerShell vagy a parancssori felület használatával letiltja a funkciót, ugyanúgy, ahogyan azt létrehozták. A felhasználó által hozzárendelt identitások egyenként távolíthatók el. Az összes identitás eltávolításához állítsa az identitás típusát "Nincs" típusra.

A rendszer által hozzárendelt identitás ily módon való eltávolítása az Azure AD-ból is törli azt. Az alkalmazás-erőforrás törlésekor a rendszer automatikusan eltávolítja a rendszer által hozzárendelt identitásokat az Azure AD-ból.

Egy ARM-sablon összes identitásának eltávolítása:

"identity": {
    "type": "None"
}

Az összes identitás eltávolítása a Azure PowerShell (csak Azure Functions esetén):

# Update an existing function app to have IdentityType "None".
Update-AzFunctionApp -Name $functionAppName -ResourceGroupName $resourceGroupName -IdentityType None

Megjegyzé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özök továbbra is bekapcsoltként vagy engedélyezettként fogják mutatni a felügyelt identitást. Ennek eredményeképpen nem ajánlott ezt a beállítást használni.

Következő lépések