> 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.md).

# Ligar ao Azure Automation

## Visão geral

{% embed url="<https://www.youtube.com/watch?v=Ijp9XnE8UuA>" %}

Para permitir que o RealmJoin Portal forneça [runbooks ](/pt/automacao/runbooks.md)para automatizar tarefas diárias, você deve conectar uma [Azure Automation](https://learn.microsoft.com/en-us/azure/automation/overview) Conta. Esta Azure Automation Account servirá como anfitriã dos seus runbooks e fornecerá as [permissões](/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md) necessárias para que os runbooks funcionem no seu ambiente.

## Considerações

A Managed Identity da Azure Automation Account [Managed Identity](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) requer permissões extensivas [permissões ](/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md)no seu ambiente, como a capacidade de modificar objetos de grupo ou de utilizador no Entra ID ou gerir caixas de correio no Exchange Online. Limite o acesso administrativo a esta conta para evitar o uso indevido destes privilégios.

Ao utilizar uma Azure Automation Account existente, note que o RealmJoin Portal cria, atualiza e remove automaticamente runbooks provenientes do [repositório online partilhado de runbooks](https://github.com/realmjoin/realmjoin-runbooks). Esta funcionalidade poderá não ser suportada numa Azure Automation Account existente. Se tiver dúvidas, recomendamos criar uma Azure Automation Account dedicada para o RealmJoin Runbooks.

## Pré-requisitos

* privilégios de Administrador Global
* Acesso ao PowerShell com o [Az](https://learn.microsoft.com/en-us/powershell/azure/?view=azps-15.3.0) módulo ou [AZ CLI](https://learn.microsoft.com/en-us/cli/azure/?view=azure-cli-latest)
* permissões de Contribuidor numa subscrição do Azure
* [Requisitos do runbook](/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md)

## Instruções

{% stepper %}
{% step %}

#### Criar uma Azure Automation Account

1. Navegue até ao seu [Azure Portal > Automation Accounts](https://portal.azure.com/#create/Microsoft.AutomationAccount)
2. Criar uma nova Azure Automation Account
3. No separador Básicos, escolha a Subscrição, Grupo de Recursos, Nome da Azure Automation Account e Região pretendidos<br>

   <figure><img src="/files/dcf07a797e97ef02fee4544ad0371151a22670f8" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Recomenda-se um Grupo de Recursos separado para a sua Azure Automation Account
{% endhint %}

4. No separador Avançadas, certifique-se de que a Identidade Gerida atribuída pelo sistema está ativada

   <figure><img src="/files/bb2cf09cfa9c6f3735eeb77db0c02cb5212e6bf5" alt=""><figcaption></figcaption></figure>
5. Selecione Rever + Criar e crie a sua Azure Automation Account
6. Navegue até ao Grupo de Recursos que contém a sua Azure Automation Account
7. No separador IAM, atribua a Azure Automation Account como Contribuidor
   {% endstep %}

{% step %}

#### Atribuir permissões à Azure Automation Account

Os runbooks partilhados do RealmJoin utilizam a identidade gerida atribuída pelo sistema da Azure Automation para interagir com o Entra ID, a API do Microsoft Graph, etc.

As permissões da Identidade Gerida não podem atualmente ser concedidas através do Azure Portal. Use Microsoft Graph ou PowerShell para atribuir estas permissões.

1. Transfira os seguintes scripts de PowerShell e ficheiros JSON para a mesma pasta.\
   O script atribuirá o conjunto completo de permissões necessário ao RealmJoin. As funções e permissões podem ser revistas na [Requisitos](/pt/automacao/connecting-azure-automation/azure-ad-roles-and-permissions.md) secção e ajustadas conforme necessário nos ficheiros JSON.

{% tabs %}
{% tab title="GrantAppPermToEntApp.ps1" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/GrantAppPermToEntApp.ps1>" %}
{% endtab %}

{% tab title="AssignAzureADRoleToEntApp.ps1" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/AssignAzureADRoleToEntApp.ps1>" %}
{% endtab %}

{% tab title="RJvNextPermissions.json" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/RealmJoinVnext/RJvNextPermissions.json>" %}
{% endtab %}

{% tab title="RJvNextRoles.json" %}
{% @github-files/github-code-block url="<https://github.com/Workplace-Foundation/approle-and-directoryrole-granter/blob/main/RealmJoinVnext/RJvNextRoles.json>" %}
{% endtab %}
{% endtabs %}

2. Anote o ID do Objeto da Managed Identity da Azure Automation Account em Definições da Conta > Identidade

   <figure><img src="/files/49e47a0e1ed67d5b48b0ac46cfbd546f756c1b7d" alt=""><figcaption></figcaption></figure>
3. Abra uma janela do PowerShell.
4. Navegue até à pasta que contém os ficheiros transferidos

```
cd c:\temp\myfolder
```

5. Desbloqueie os scripts, se necessário\
   ![](/files/844f2e6d7875fa327ee483b47d643b9f9681eac6)
6. Atribua permissões do Microsoft Graph à sua Azure Automation Account usando GrantAppPermToEntApp.ps1, substituindo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx pelo ID do Objeto da sua Azure Automation Account

```
. .\GrantAppPermToEntApp.ps1 -enterpriseAppObjId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -permissionsTemplate .\RJvNextPermissions.json
```

7. Atribua funções de administrador do Entra ID à sua Azure Automation Account usando AssignAzureADRoleToEntApp.ps1, substituindo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx pelo ID do Objeto da sua Azure Automation Account

```
. .\AssignAzureADRoleToEntApp.ps1 -objectId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -rolesTemplate .\RJvNextRoles.json
```

8. A Azure Automation Account deverá agora ter as permissões corretas para executar runbooks<br>
   {% endstep %}

{% step %}

#### Configuração do RealmJoin Runbook - Parte 1

1. No RealmJoin Portal vá para '[Definições -> Runbooks](https://portal.realmjoin.com/settings/runbooks-configuration)'.<br>

   <figure><img src="/files/2a1943415b9acdeea0f25e441aefda87769f7c9c" alt=""><figcaption></figcaption></figure>
2. Preencha o Tenant ID, o Subscription ID e o nome do Grupo de Recursos pertencentes à Azure Automation Account\
   O Tenant ID na [página de visão geral do Entra ID](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview)

   <figure><img src="/files/e6a1f453d012e1059ce1f6420f534bfb927ff923" alt=""><figcaption></figcaption></figure>
3. Copie o script a vermelho abaixo *ResourceGroup.*\
   Este script cria um Service Principal no Entra ID com acesso à sua Azure Automation Account, permitindo ao RealmJoin gerir, executar e monitorizar runbooks.\
   O script é atualizado com base nas entradas do Tenant ID, Subscription ID e Grupo de Recursos.<br>

   <figure><img src="/files/ee55479b4f96cd2bbe2f25b23a3860209c29b691" alt=""><figcaption></figcaption></figure>
4. Deixe o assistente aberto por enquanto. Voltaremos em breve na parte 2.
   {% endstep %}

{% step %}

#### Conceder acesso do RealmJoin ao Azure Automation

{% hint style="info" %}
Pode usar [Azure CloudShell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview), assim não precisa de instalar e autenticar uma cópia local do AZ CLI.
{% endhint %}

1. Execute o script copiado anteriormente no PowerShell.

   <figure><img src="/files/0d47dd7513fe4efa4d0e717bde43e7024413b092" alt=""><figcaption></figcaption></figure>
2. Anote os valores de `appId` e `password`.\
   Será criada a Registo de Aplicação "RealmJoin Runbook Management".<br>

   ![Registos de Aplicações no Azure Portal](/files/4e5b78c840632aee87946ca1c047a6c5da9e431e)
   {% endstep %}

{% step %}

#### Configuração do RealmJoin Runbook - Parte 2

1. No RealmJoin Portal, volte à janela/assistente aberto para '[Definições -> Runbooks](https://portal.realmjoin.com/settings/runbooks-configuration)'
2. Preencha os valores em falta para `appId` e `password` criado na etapa anterior
3. Preencha o nome da Azure Automation Account criada [anteriormente](#create-an-azure-automation-account)
4. Escolha a Branch do repositório de runbooks partilhado que pretende seguir.\
   Se tiver dúvidas, escolha `production`\
   Todas as branches de runbooks podem ser consultadas aqui: <https://github.com/realmjoin/realmjoin-runbooks>
5. Escolha a mesma localização da sua Azure Automation Account para garantir que os seus runbooks são executados na região correta do [Azure](https://docs.microsoft.com/en-us/azure/availability-zones/az-overview)

![Ligação da Azure Automation Account no RealmJoin Portal](/files/93efa49e0f381e1938d0a03932d79f34c18c2ae6)

6. Prima "Save" para iniciar a importação inicial dos runbooks. Deixe esta janela aberta até ver a mensagem "Sync completed".

![](/files/959b02e32fff69fb2f857fe116a95b90ac079669)
{% endstep %}
{% endstepper %}


---

# 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.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.
