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
- Om du inte känner till hanterade identiteter för Azure-resurser kan du läsa Vad är hanterade identiteter för Azure-resurser?. Mer information om systemtilldelade och användartilldelade hanterade identitetstyper finns i Hanterade identitetstyper.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
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.
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
Skapa ett nätverksgränssnitt för den virtuella datorn:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
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
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.
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
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 iidentity
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" } }
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ärdettype
.Om den virtuella datorn till exempel har de användartilldelade hanterade identiteterna
ID1
ochID2
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 iuserAssignedIdentities
värdet i ett ordlisteformat i stället föridentityIds
värdet i ett matrisformat som används i API-versionen2017-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.
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
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 somidentity
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 ochuserAssignedIdentities
ordlistevärdena behållsUserAssigned
om du använder API-version 2018-06-01. Om du använder API-version 2017-12-01 eller tidigare behåller du matrisenidentityIds
.
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.
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
Skapa ett nätverksgränssnitt för den virtuella datorn:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
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
Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här: Skapa en användartilldelad hanterad identitet.
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.
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
Skapa en användartilldelad hanterad identitet med hjälp av anvisningarna här, Skapa en användartilldelad hanterad identitet.
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.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" ] } }
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 identitetenID2
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 identitetenID2
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 .
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
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
ochID2
tilldelats till den virtuella datorn och bara vill behållaID1
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: