# Requisitos

## Módulos PowerShell

{% hint style="info" %}
A secção de Módulos 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/utilizam os seguintes módulos Windows PowerShell:

| Módulo                           | Versão mínima nos runbooks |
| -------------------------------- | -------------------------- |
| `Az.Accounts`                    | 5.3.4                      |
| `Az.Compute`                     | 5.1.1                      |
| `Az.DesktopVirtualization`       | 5.4.1                      |
| `Az.ManagementPartner`           | 0.7.5                      |
| `Az.Resources`                   | 9.0.1                      |
| `Az.Storage`                     | 9.6.0                      |
| `ExchangeOnlineManagement`       | 3.9.2                      |
| `Microsoft.Graph.Authentication` | 2.35.1                     |
| `MicrosoftTeams`                 | 7.6.0                      |
| `RealmJoin.RunbookHelper`        | 0.8.5                      |

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 utilizam a [identidade gerida atribuída pelo sistema](https://learn.microsoft.com/en-us/azure/automation/enable-managed-identity-for-automation) do Azure Automation para interagir com Entra ID, MS Graph API, etc.

A seguinte lista de funções e permissões permitir-lhe-á utilizar 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

* Desenvolvedor de Aplicativos
* Administrador de Dispositivos na Cloud
* Administrador do Exchange
* Administrador do Teams
* Administrador de Usuários

### Permissões da Graph API

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

* `Application.Read.All`
* `Application.ReadWrite.OwnedBy`
* `AuditLog.Read.All`
* `BitLockerKey.Read.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.Read.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`
* `Team.Create`
* `TeamSettings.ReadWrite.All`
* `User.ReadWrite.All`
* `UserAuthenticationMethod.ReadWrite.All`
* `WindowsUpdates.ReadWrite.All`

### Permissões de API de outras aplicações

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

* `Exchange.ManageAsApp`

Conceda as seguintes permissões de API do WindowsDefenderATP à identidade gerida

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

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

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

### Atribuição de Funções e Permissões

Atualmente, não é possível conceder permissões às Identidades Geridas usando o Azure Portal. Recomendamos usar MS Graph / scripting em PowerShell para isso.

Pode encontrar um exemplo deste processo [aqui](https://github.com/Workplace-Foundation/approle-and-directoryrole-granter).

### Permissões de Recursos Azure

Conceda, no mínimo, acesso de "Contribuidor" à 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, no mínimo, acesso de "Contribuidor" à subscrição ou ao grupo de recursos correspondente. A maioria dos runbooks poderá então criar os recursos dentro do grupo de recursos por conta própria.

## Métodos de Autenticação

### Identidades Geridas

O 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 RunAs Accounts descontinuadas.

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

{% hint style="warning" %}
Se uma Identidade Gerida e uma RunAs Account estiverem configuradas ao mesmo tempo, os runbooks do repositório partilhado do RealmJoin passarão automaticamente a preferir usar a Identidade Gerida ao utilizar 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 RunAs Account.

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

### Segredo do cliente

Alguns runbooks privados podem necessitar de autenticação do tipo ClientID/Secret. Atualmente não existem 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 Azure Automation Account.

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


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
