> 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/automatizacao/connecting-azure-automation/azure-ad-roles-and-permissions.md).

# Requisitos de execução de runbook

Esta página wiki aborda quais os requisitos e permissões (ao nível do sistema) que 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 em [GitHub](https://github.com/realmjoin/realmjoin-runbooks) esperam/usam 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.41.2                     |
| `MicrosoftTeams`                 | 7.9.0                      |
| `PnP.PowerShell`                 | 3.4.1                      |
| `RealmJoin.RunbookHelper`        | 0.8.10                     |

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 gerida atribuída pelo sistema](https://learn.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) para interagir com Entra ID, Microsoft Graph API 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 com 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 gerida

* Programador de aplicações
* Administrador de Dispositivos na Cloud
* Administrador do Exchange
* Administrador do Intune
* Administrador do Teams
* Administrador de utilizadores

### Permissões da API Graph

Conceda as seguintes permissões da API Graph à identidade gerida

* `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`
* `Sites.Read.All`
* `Team.Create`
* `Team.ReadBasic.All`
* `TeamMember.ReadWrite.All`
* `TeamSettings.ReadWrite.All`
* `User.ReadWrite.All`
* `UserAuthenticationMethod.ReadWrite.All`
* `WindowsUpdates.ReadWrite.All`

### Outras permissões da API da aplicação

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

* `Exchange.ManageAsApp`

Conceda as seguintes permissões da API WindowsDefenderATP à identidade gerida

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

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

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

### Concessão de funções e permissões

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

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

Não **não** atribui as **funções do Entra ID** listadas acima, e o respetivo conjunto de permissões é 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 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 gerida é 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 ao grupo de recursos que aloja a Azure Automation Account para os runbooks

Alguns runbooks utilizarão uma 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 poderá então criar, por si só, os recursos dentro do grupo de recursos.

## Métodos de autenticação

### Identidades geridas

Azure Automation suporta [Identidades geridas](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 obsoletas.

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

{% hint style="warning" %}
Se uma Managed Identity e uma conta RunAs 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 as identidades geridas e preferiam a conta RunAs.

Certifique-se de que concede as permissões necessárias à Managed Identity ou de que a desativa completamente para usar apenas a conta RunAs.
{% 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 geridas chamadas "realmjoin-automation-cred" na conta de Azure Automation.

Atualmente, o "realmjoin-automation-cred" na automation account é criado por predefinição pelo RJ-Wizard, mas preenchido com valores aleatórios - teriam 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
