> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md).

# Requisitos de execução de runbooks

Esta página da wiki aborda quais requisitos e permissões (ao nível do sistema) têm de ser concedidos para que os runbooks possam ser executados.

## Módulos do PowerShell

{% hint style="info" %}
A secção Módulos do PowerShell é atualizada automaticamente com base no [repositório público](https://github.com/realmjoin/realmjoin-runbooks).
{% endhint %}

Os runbooks partilhados disponíveis no [GitHub](https://github.com/realmjoin/realmjoin-runbooks) esperam/usar os seguintes módulos do Windows PowerShell:

| Módulo                           | Versão mínima nos runbooks |
| -------------------------------- | -------------------------- |
| `Az.Accounts`                    | 5.5.2                      |
| `Az.Compute`                     | 11.8.0                     |
| `Az.DesktopVirtualization`       | 6.0.0                      |
| `Az.ManagementPartner`           | 0.8.0                      |
| `Az.Storage`                     | 9.7.2                      |
| `ExchangeOnlineManagement`       | 3.9.2                      |
| `Microsoft.Graph.Authentication` | 2.39.0                     |
| `MicrosoftTeams`                 | 7.9.0                      |
| `PnP.PowerShell`                 | 3.4.1                      |
| `RealmJoin.RunbookHelper`        | 0.8.9                      |

O RealmJoin Portal importará e instalará automaticamente estes módulos se forem referenciados de dentro de um runbook. Esta importação também respeitará as versões mínimas especificadas para os módulos.

## Permissões

{% hint style="info" %}
A secção Permissões é atualizada automaticamente com base no [repositório público](https://github.com/realmjoin/realmjoin-runbooks).
{% endhint %}

Os runbooks partilhados do RealmJoin usam a [identidade gerenciada atribuída pelo sistema](https://learn.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) para interagir com o Entra ID, a API do Microsoft Graph etc.

A lista seguinte de funções e permissões permitir-lhe-á usar todos os runbooks atualmente disponíveis no nosso repositório partilhado.

Não é recomendável reduzir estas funções/permissões, uma vez que os runbooks são testados apenas contra este conjunto de permissões. Se reduzir o conjunto de funções/permissões, alguns runbooks deixarão de funcionar.

### Funções do Entra ID

Atribua as seguintes funções do Entra ID à identidade gerenciada

* Developer de Aplicações
* Administrador de Dispositivos na Cloud
* Administrador do Exchange
* Administrador do Intune
* Administrador do Teams
* Administrador de Utilizadores

### Permissões da API do Graph

Conceda as seguintes permissões da API do Graph à identidade gerenciada

* `Application.ReadWrite.All`
* `Application.ReadWrite.OwnedBy`
* `AppRoleAssignment.ReadWrite.All`
* `AuditLog.Read.All`
* `BitlockerKey.Read.All`
* `Channel.ReadBasic.All`
* `ChannelMember.ReadWrite.All`
* `CloudPC.ReadWrite.All`
* `Device.ReadWrite.All`
* `DeviceLocalCredential.Read.All`
* `DeviceManagementApps.ReadWrite.All`
* `DeviceManagementConfiguration.ReadWrite.All`
* `DeviceManagementManagedDevices.PrivilegedOperations.All`
* `DeviceManagementManagedDevices.ReadWrite.All`
* `DeviceManagementServiceConfig.ReadWrite.All`
* `Directory.ReadWrite.All`
* `Group.Create`
* `Group.ReadWrite.All`
* `GroupMember.ReadWrite.All`
* `IdentityRiskyUser.ReadWrite.All`
* `InformationProtectionPolicy.Read.All`
* `Mail.Send`
* `Organization.Read.All`
* `Place.Read.All`
* `Policy.Read.All`
* `Reports.Read.All`
* `ReportSettings.ReadWrite.All`
* `RoleAssignmentSchedule.Read.Directory`
* `RoleManagement.Read.All`
* `RoleManagement.Read.Directory`
* `ServiceHealth.Read.All`
* `Team.Create`
* `TeamMember.ReadWrite.All`
* `TeamSettings.ReadWrite.All`
* `User.ReadWrite.All`
* `UserAuthenticationMethod.ReadWrite.All`
* `WindowsUpdates.ReadWrite.All`

### Outras permissões de API de aplicações

Conceda as seguintes permissões da API do Office 365 Exchange Online à identidade gerenciada

* `Exchange.ManageAsApp`

Conceda as seguintes permissões da API do WindowsDefenderATP à identidade gerenciada

* `Machine.Read.All`
* `Machine.Isolate`
* `Machine.RestrictExecution`
* `Ti.ReadWrite.All`

Conceda as seguintes permissões da API do SharePoint à identidade gerenciada

* `User.Read.All`
* `Sites.Read.All`
* `Sites.FullControl.All`

### Conceder Funções e Permissões

Atualmente, não é possível conceder permissões a Managed Identities usando o Azure Portal. Recomendamos usar scripts de Microsoft Graph / PowerShell para isso.

{% hint style="info" %}
`Set-RJAutomationAccount` do módulo RealmJoin PowerShell — veja [Ligação ao Azure Automation](/pt/automacao/connecting-azure-automation.md) — já atribui as **permissões de API** que agrega para Microsoft Graph, Exchange Online, Defender e SharePoint quando configura ou atualiza a Automation Account.

Não **atribui** as **funções do Entra ID** listadas acima, e o conjunto de permissões incluído é mantido separadamente desta página, que é gerada a partir do [repositório de runbooks](https://github.com/realmjoin/realmjoin-runbooks). Utilize os scripts abaixo para as funções do Entra ID e para adicionar qualquer permissão de API de que um runbook precise e que o módulo não cubra.
{% endhint %}

Pode encontrar um exemplo deste processo [aqui](https://github.com/Workplace-Foundation/approle-and-directoryrole-granter). Os ficheiros JSON que ele espera são publicados no [repositório de runbooks](https://github.com/realmjoin/realmjoin-runbooks/tree/production/docs/other/json):

```powershell
. .\GrantAppPermToEntApp.ps1 -enterpriseAppObjId "<ManagedIdentityObjectId>" -permissionsTemplate .\AllRealmJoinRunbooks_collected_permissions.json
. .\AssignAzureADRoleToEntApp.ps1 -objectId "<ManagedIdentityObjectId>" -rolesTemplate .\AllRealmJoinRunbooks_collected_rbacroles.json
```

O ID do objeto da identidade gerenciada é mostrado no Azure Portal, na Automation Account, em Account Settings > Identity.

### Permissões de Recursos do Azure

Conceda pelo menos acesso de "Contributor" à subscrição ou grupo de recursos que aloja a Azure Automation Account para os runbooks

Alguns runbooks usarão um Azure Storage Account para armazenar relatórios ou cópias de segurança. Conceda pelo menos acesso de "Contributor" à subscrição ou ao grupo de recursos correspondente. A maioria dos runbooks pode então criar os recursos dentro do grupo de recursos por conta própria.

## Métodos de Autenticação

### Managed Identities

O Azure Automation suporta [Managed Identities](https://docs.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) (atribuída pelo sistema) como a principal forma de autenticação. Isto substitui as contas RunAs descontinuadas.

Os RealmJoin Runbooks atualmente suportam contas RunAs se nenhuma identidade gerenciada estiver configurada.

{% hint style="warning" %}
Se uma Managed Identity e uma RunAs Account estiverem configuradas ao mesmo tempo, os runbooks do repositório partilhado do RealmJoin preferirão automaticamente usar a Managed Identity ao usar versões mais recentes do nosso `RealmJoin.RunbookHelper` Módulo a partir da v0.8.0.

Versões mais antigas do módulo não conseguiam utilizar totalmente Managed Identities e preferiam a RunAs Account.

Certifique-se de que concede as permissões necessárias à Managed Identity ou de que a desativa completamente para usar apenas a RunAs Account.
{% endhint %}

### Segredo do cliente

Alguns runbooks privados podem precisar de autenticação do tipo ClientID/Secret. Atualmente, não há runbooks partilhados que exijam ClientID e Secret.

Se necessário, um ClientID e Secret podem ser armazenados nas credenciais gerenciadas chamadas "realmjoin-automation-cred" na Azure Automation Account.

Atualmente, a "realmjoin-automation-cred" na automation account é criada por predefinição pelo RJ-Wizard, mas preenchida com valores aleatórios - terão de ser preenchidos com valores corretos.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
