Assegnare ruoli di Azure usando l'API REST
Il controllo degli accessi in base al ruolo di Azure è il sistema di autorizzazione che si usa per gestire l'accesso alle risorse di Azure. Per concedere l'accesso, assegnare ruoli a utenti, gruppi, entità servizio o identità gestite in un ambito specifico. Questo articolo descrive come assegnare ruoli usando l'API REST.
Prerequisiti
Per assegnare ruoli di Azure, è necessario disporre di:
Microsoft.Authorization/roleAssignments/write
autorizzazioni, ad esempio Controllo di accesso Amministrazione istrator basato su ruoli o accesso utente Amministrazione istrator
È necessario usare le versioni seguenti:
2015-07-01
o versione successiva per assegnare un ruolo di Azure2018-09-01-preview
o versione successiva per assegnare un ruolo di Azure a una nuova entità servizio
Per altre informazioni, vedere Versioni API delle API REST di Controllo degli accessi in base al ruolo di Azure.
Assegnare un ruolo di Azure
Per assegnare un ruolo, usare Le assegnazioni di ruolo - Creare l'API REST e specificare l'entità di sicurezza, la definizione del ruolo e l'ambito. Per chiamare questa API, è necessario avere accesso all'azioneMicrosoft.Authorization/roleAssignments/write
, ad esempio role based Controllo di accesso Amministrazione istrator.
Usare l'API REST per l'elenco delle definizioni del ruolo o vedere Ruoli predefiniti per ottenere l'identificatore per la definizione del ruolo da assegnare.
Usare uno strumento GUID per generare un identificatore univoco che verrà usato per l'identificatore dell'assegnazione di ruolo. Il formato dell'identificatore è:
00000000-0000-0000-0000-000000000000
Iniziare con la richiesta e il corpo seguenti:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{ "properties": { "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "principalId": "{principalId}" } }
All'interno dell'URI sostituire {scope} con l'ambito per l'assegnazione di ruolo.
Ambito Type providers/Microsoft.Management/managementGroups/{groupId1}
Gruppo di gestione subscriptions/{subscriptionId1}
Subscription subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1
Gruppo di risorse subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1
Resource Nell'esempio precedente microsoft.web è un provider di risorse che fa riferimento a un'istanza di servizio app. Analogamente, è possibile usare qualsiasi altro provider di risorse e specificare l'ambito. Per altre informazioni, vedere Provider e tipi di risorse di Azure e operazioni supportate del provider di risorse di Azure.
Sostituire {roleAssignmentId} con l'identificatore GUID dell'assegnazione di ruolo.
All'interno del corpo della richiesta sostituire {scope} con lo stesso ambito dell'URI.
Sostituire {roleDefinitionId} con l'identificatore della definizione del ruolo.
Sostituire {principalId} con l'identificatore di oggetto dell'utente, del gruppo o dell'entità servizio a cui verrà assegnato il ruolo.
La richiesta e il corpo seguenti assegnano il ruolo lettore di backup a un utente nell'ambito della sottoscrizione:
PUT https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}"
}
}
Il testo seguente è un esempio di output:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-05-06T23:55:23.7679147Z",
"updatedOn": "2022-05-06T23:55:23.7679147Z",
"createdBy": null,
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
Nuova entità servizio
Se si crea una nuova entità servizio e si prova ad assegnare subito un ruolo a tale entità, in alcuni casi l'assegnazione di ruolo può avere esito negativo. Ad esempio, se si crea una nuova identità gestita e quindi si tenta di assegnare un ruolo a tale entità servizio, l'assegnazione di ruolo potrebbe non riuscire. Il motivo di questo errore è probabilmente un ritardo di replica. L'entità servizio viene creata in un'area. L'assegnazione di ruolo potrebbe tuttavia verificarsi in un'area diversa che non ha ancora replicato l'entità servizio.
Per risolvere questo scenario, usare Le assegnazioni di ruolo - Creare l'API REST e impostare la principalType
proprietà su ServicePrincipal
. È anche necessario impostare su apiVersion
2018-09-01-preview
o versione successiva. 2022-04-01
è la prima versione stabile.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"principalType": "ServicePrincipal"
}
}