Konfigurera hanterade identiteter för Azure-resurser på en virtuell Azure-dator med HJÄLP av REST API-anrop

Hanterade identiteter för Azure-resurser är en funktion i Microsoft Entra-ID. Alla Azure-tjänster som stöder hanterade identiteter för Azure-resurser har sin egen tidslinje. Var noga med att kontrollera tillgänglighetsstatus för hanterade identiteter för din resurs och kända problem innan du börjar.

Hanterade identiteter för Azure-resurser tillhandahåller Azure-tjänster med en automatiskt hanterad systemidentitet i Microsoft Entra-ID. Du kan använda den här identiteten för att autentisera mot alla tjänster som har stöd för Microsoft Entra-autentisering, utan att behöva ha några autentiseringsuppgifter i koden.

I den här artikeln får du lära dig hur du utför följande hanterade identiteter för Azure-resursåtgärder på en virtuell Azure-dator med curl för att göra anrop till Azure Resource Manager REST-slutpunkten:

  • Aktivera och inaktivera den systemtilldelade hanterade identiteten på en virtuell Azure-dator
  • Lägga till och ta bort en användartilldelad hanterad identitet på en virtuell Azure-dator

Om du inte redan har ett Azure-konto registrerar du dig för ett kostnadsfritt konto innan du fortsätter.

Förutsättningar

Systemtilldelad hanterad identitet

I det här avsnittet får du lära dig hur du aktiverar och inaktiverar systemtilldelad hanterad identitet på en virtuell Azure-dator med curl för att göra anrop till Azure Resource Manager REST-slutpunkten.

Aktivera systemtilldelad hanterad identitet när en virtuell Azure-dator skapas

Om du vill skapa en virtuell Azure-dator med den systemtilldelade hanterade identiteten aktiverad behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Skapa en resursgrupp för inneslutning och distribution av den virtuella datorn och dess relaterade resurser med hjälp av az group create. Du kan hoppa över det här steget om du redan har en resursgrupp som du vill använda i stället:

    az group create --name myResourceGroup --location westus
    
  2. Skapa ett nätverksgränssnitt för den virtuella datorn:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  4. Använd Azure Cloud Shell och skapa en virtuell dator med CURL för att anropa Azure Resource Manager REST-slutpunkten. I följande exempel skapas en virtuell dator med namnet myVM med en systemtilldelad hanterad identitet, vilket identifieras i begärandetexten med värdet "identity":{"type":"SystemAssigned"}. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

      {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"SystemAssigned"
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }  
    

Aktivera systemtilldelad identitet på en befintlig virtuell Azure-dator

För att aktivera systemtilldelad hanterad identitet på en virtuell dator som ursprungligen etablerades utan den, behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Använd följande CURL-kommando för att anropa Azure Resource Manager REST-slutpunkten för att aktivera systemtilldelad hanterad identitet på den virtuella datorn enligt vad som anges i begärandetexten av värdet {"identity":{"type":"SystemAssigned"} för en virtuell dator med namnet myVM. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    Viktigt!

    För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som har tilldelats till den virtuella datorn måste du lista de användartilldelade hanterade identiteterna med hjälp av det här CURL-kommandot: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Om du har några användartilldelade hanterade identiteter tilldelade till den virtuella datorn enligt värdet i identity svaret går du vidare till steg 3 som visar hur du behåller användartilldelade hanterade identiteter samtidigt som du aktiverar systemtilldelad hanterad identitet på den virtuella datorn.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {  
        "identity":{  
           "type":"SystemAssigned"
        }
     }
    
  3. Om du vill aktivera systemtilldelad hanterad identitet på en virtuell dator med befintliga användartilldelade hanterade identiteter måste du lägga SystemAssigned till värdet type .

    Om den virtuella datorn till exempel har de användartilldelade hanterade identiteterna ID1 och ID2 tilldelats till den, och du vill lägga till systemtilldelad hanterad identitet till den virtuella datorn, använder du följande CURL-anrop. Ersätt <ACCESS TOKEN> och <SUBSCRIPTION ID> med värden som är lämpliga för din miljö.

    API-versionen 2018-06-01 lagrar användartilldelade hanterade identiteter i userAssignedIdentities värdet i ett ordlisteformat i stället för identityIds värdet i ett matrisformat som används i API-versionen 2017-12-01.

    API VERSION 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{  
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{  
    
              }
           }
        }
     }
    

    API VERSION 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

Inaktivera systemtilldelad hanterad identitet från en virtuell Azure-dator

Om du vill inaktivera systemtilldelad hanterad identitet på en virtuell dator behöver ditt konto rolltilldelningen Virtuell datordeltagare . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Uppdatera den virtuella datorn med CURL för att anropa Azure Resource Manager REST-slutpunkten för att inaktivera systemtilldelad hanterad identitet. I följande exempel inaktiveras systemtilldelad hanterad identitet som identifieras i begärandetexten av värdet {"identity":{"type":"None"}} från en virtuell dator med namnet myVM. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    Viktigt!

    För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som har tilldelats till den virtuella datorn måste du lista de användartilldelade hanterade identiteterna med hjälp av det här CURL-kommandot: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Om du har några användartilldelade hanterade identiteter tilldelade till den virtuella datorn enligt värdet i svaret går du vidare till steg 3 som visar hur du behåller användartilldelade hanterade identiteter samtidigt som identity du inaktiverar systemtilldelad hanterad identitet på den virtuella datorn.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

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

    Om du vill ta bort systemtilldelad hanterad identitet från en virtuell dator som har användartilldelade hanterade identiteter tar du bort SystemAssigned från {"identity":{"type:" "}} värdet samtidigt som värdet och userAssignedIdentities ordlistevärdena behålls UserAssigned om du använder API-version 2018-06-01. Om du använder API-version 2017-12-01 eller tidigare behåller du matrisen identityIds .

Användartilldelad hanterad identitet

I det här avsnittet får du lära dig hur du lägger till och tar bort användartilldelad hanterad identitet på en virtuell Azure-dator med CURL för att göra anrop till Azure Resource Manager REST-slutpunkten.

Tilldela en användartilldelad hanterad identitet när en virtuell Azure-dator skapas

För att tilldela en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningarna Virtuell datordeltagare och Hanterad identitetsoperator . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Skapa ett nätverksgränssnitt för den virtuella datorn:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  4. Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här: Skapa en användartilldelad hanterad identitet.

  5. Skapa en virtuell dator med CURL för att anropa Azure Resource Manager REST-slutpunkten. I följande exempel skapas en virtuell dator med namnet myVM i resursgruppen myResourceGroup med en användartilldelad hanterad identitet ID1, enligt värdet "identity":{"type":"UserAssigned"}i begärandetexten . Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    API VERSION 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {  
        "location":"westus",
        "name":"myVM",
        "identity":{  
           "type":"UserAssigned",
           "identityIds":[  
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{  
           "hardwareProfile":{  
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{  
              "imageReference":{  
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{  
                 "caching":"ReadWrite",
                 "managedDisk":{  
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[  
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{  
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{  
              "networkInterfaces":[  
                 {  
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{  
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    
    

    API VERSION 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    

Tilldela en användartilldelad hanterad identitet till en befintlig virtuell Azure-dator

För att tilldela en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningarna Virtuell datordeltagare och Hanterad identitetsoperator . Inga andra microsoft Entra-katalogrolltilldelningar krävs.

  1. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här, Skapa en användartilldelad hanterad identitet.

  3. För att säkerställa att du inte tar bort befintliga användar- eller systemtilldelade hanterade identiteter som har tilldelats till den virtuella datorn måste du ange de identitetstyper som tilldelats den virtuella datorn med hjälp av följande CURL-kommando. Om du har tilldelats hanterade identiteter till vm-skalningsuppsättningen visas de under i identity värdet.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Om du har några användar- eller systemtilldelade hanterade identiteter tilldelade till den virtuella datorn enligt värdet i identity svaret går du vidare till steg 5 som visar hur du behåller den systemtilldelade hanterade identiteten när du lägger till en användartilldelad hanterad identitet på den virtuella datorn.

  4. Om du inte har några användartilldelade hanterade identiteter tilldelade till den virtuella datorn använder du följande CURL-kommando för att anropa AZURE Resource Manager REST-slutpunkten för att tilldela den första användartilldelade hanterade identiteten till den virtuella datorn.

    I följande exempel tilldelas en användartilldelad hanterad identitet ID1 till en virtuell dator med namnet myVM i resursgruppen myResourceGroup. Ersätt <ACCESS TOKEN> med det värde som du fick i föregående steg när du begärde en ägaråtkomsttoken och värdet <SUBSCRIPTION ID> efter behov för din miljö.

    API VERSION 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        }
     }
    

    API VERSION 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. Om du har en befintlig användartilldelad eller systemtilldelad hanterad identitet tilldelad till den virtuella datorn:

    API VERSION 2018-06-01

    Lägg till den användartilldelade hanterade identiteten i userAssignedIdentities ordlistevärdet.

    Om du till exempel har systemtilldelad hanterad identitet och den användartilldelade hanterade identiteten ID1 som för närvarande är tilldelad till den virtuella datorn och vill lägga till den användartilldelade hanterade identiteten ID2 i den:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    API VERSION 2017-12-01

    Behåll de användartilldelade hanterade identiteterna som du vill behålla i identityIds matrisvärdet när du lägger till den nya användartilldelade hanterade identiteten.

    Om du till exempel har systemtilldelad hanterad identitet och den användartilldelade hanterade identiteten ID1 som för närvarande är tilldelad till den virtuella datorn och vill lägga till den användartilldelade hanterade identiteten ID2 i den:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

Ta bort en användartilldelad hanterad identitet från en virtuell Azure-dator

Om du vill ta bort en användartilldelad identitet till en virtuell dator behöver ditt konto rolltilldelningen Virtuell datordeltagare .

  1. Hämta en ägaråtkomsttoken som du ska använda i nästa steg i auktoriseringshuvudet för att skapa den virtuella datorn med en systemtilldelad hanterad identitet.

    az account get-access-token
    
  2. För att säkerställa att du inte tar bort några befintliga användartilldelade hanterade identiteter som du vill behålla tilldelade till den virtuella datorn eller ta bort den systemtilldelade hanterade identiteten måste du ange de hanterade identiteterna med hjälp av följande CURL-kommando:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Om du har tilldelats hanterade identiteter till den virtuella datorn visas de i svaret i identity värdet.

    Om du till exempel har användartilldelade hanterade identiteter ID1 och ID2 tilldelats till den virtuella datorn och bara vill behålla ID1 den systemtilldelade identiteten:

    API VERSION 2018-06-01

    Lägg till null den användartilldelade hanterade identiteten som du vill ta bort:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    API VERSION 2017-12-01

    Behåll endast de användartilldelade hanterade identiteter som du vill behålla i matrisen identityIds :

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Begärandehuvuden

    Begärandehuvud beskrivning
    Innehållstyp Obligatoriska. Ange till application/json.
    Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

    Begärandetext

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

Om den virtuella datorn har både systemtilldelade och användartilldelade hanterade identiteter kan du ta bort alla användartilldelade hanterade identiteter genom att växla till att endast använda systemtilldelad hanterad identitet med hjälp av följande kommando:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Begärandehuvuden

Begärandehuvud beskrivning
Innehållstyp Obligatoriska. Ange till application/json.
Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

Begärandetext

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

Om den virtuella datorn bara har användartilldelade hanterade identiteter och du vill ta bort alla använder du följande kommando:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Begärandehuvuden

Begärandehuvud beskrivning
Innehållstyp Obligatoriska. Ange till application/json.
Auktorisering Obligatoriska. Ange till en giltig Bearer åtkomsttoken.

Begärandetext

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

Nästa steg

Information om hur du skapar, listar eller tar bort användartilldelade hanterade identiteter med hjälp av REST finns i: