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

# Ligar o Azure Automation

Ligue uma Azure Automation Account ao RealmJoin Portal com o módulo PowerShell do RealmJoin, para que o RealmJoin possa implementar, executar e monitorizar runbooks no seu tenant.

## Visão geral

Para que o RealmJoin Portal forneça [runbooks](/pt/automatizacao/runbooks.md) para automatizar tarefas diárias, você deve conectar uma [Azure Automation](https://learn.microsoft.com/en-us/azure/automation/overview) Conta. Ela atua como o host dos seus runbooks e fornece as [permissões](/pt/automatizacao/connecting-azure-automation/azure-ad-roles-and-permissions.md) que os runbooks precisam para funcionar no seu ambiente.

A Automation Account é configurada com o [módulo RealmJoin PowerShell](/pt/implementacao/onboarding-realmjoin-portal/advanced-setup.md). O Portal gera para você um comando pronto para copiar — não há registro de aplicativo para criar nem segredo do cliente para gerenciar.

{% hint style="info" %}
Os runbooks já estão configurados para o seu Tenant com o legado **RealmJoin Runbook Management** registro de aplicativo? Então consulte [Mudando para o aplicativo gerenciado do RealmJoin](/pt/automatizacao/connecting-azure-automation/managed-app-migration.md). Ele mantém sua Automation Account e seus runbooks e remove o segredo do cliente por Tenant.
{% endhint %}

## Considerações

A Identidade Gerenciada da Automation Account [Identidade gerenciada](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) requer amplas permissões [permissões](/pt/automatizacao/connecting-azure-automation/azure-ad-roles-and-permissions.md) no seu ambiente, como a capacidade de modificar objetos de grupo ou usuário no Entra ID ou gerenciar caixas de correio no Exchange Online. Limite o acesso administrativo a esta conta para evitar o uso indevido desses privilégios.

Ao usar uma Automation Account existente, observe que o RealmJoin Portal cria, atualiza e remove automaticamente os runbooks provenientes do [repositório online compartilhado de runbooks](https://github.com/realmjoin/realmjoin-runbooks). Essa funcionalidade pode não ser suportada em uma Automation Account existente. Em caso de dúvida, recomendamos criar uma Azure Automation Account dedicada para runbooks da RealmJoin — o que o comando de configuração faz para você.

## O que a configuração implanta

Executar o comando de configuração cria:

* O **RealmJoin Azure Resources** service principal no seu tenant Entra ID (se ainda não existir)
* Uma **Automation Account** com uma identidade gerenciada atribuída pelo sistema, na região do grupo de recursos — ou sua Automation Account existente, se você indicar uma
* **Contributor** para o service principal da RealmJoin, com escopo nessa Automation Account, para que a RealmJoin possa sincronizar e iniciar runbooks
* O **permissões de aplicativo** para a identidade gerenciada incluída no módulo — Microsoft Graph, Office 365 Exchange Online, Windows Defender ATP e SharePoint Online

O RealmJoin autentica-se no Azure com seu próprio aplicativo multi-tenant. Nenhum registro de aplicativo nem segredo do cliente são criados no seu tenant, e o RealmJoin não recebe permissão fora dessa Automation Account.

{% hint style="warning" %}
Da identidade gerenciada **funções de diretório do Entra ID** — Intune Administrator, Exchange Administrator, User Administrator e assim por diante — não são **não** atribuídos pelo comando de configuração. Ainda precisam ser concedidos separadamente, veja [Concedendo funções e permissões](/pt/automatizacao/connecting-azure-automation/azure-ad-roles-and-permissions.md#granting-roles-and-permissions). Sem eles, grande parte dos runbooks compartilhados não funcionará.
{% endhint %}

## Pré-requisitos

### No RealmJoin Portal

* Uma função que concede acesso à área de Configurações (`CanReadSettingsDetails`, veja [Permissões disponíveis](/pt/administracao-e-definicoes/permission/custom-roles/available-permissions.md)). A página de configurações gera o comando de configuração, incluindo um token de integração de curta duração.

### No Azure

* Uma assinatura Azure e um **grupo de recursos existente** para implantar — o módulo não cria o grupo de recursos. Recomenda-se um grupo de recursos separado para a Automation Account.
* Opcionalmente, uma Automation Account existente. Se você não indicar uma, uma conta é criada para você.

### Na máquina que executa o PowerShell

* **PowerShell 5.1** ou posterior (Windows PowerShell ou PowerShell 7)
* Acesso à [PowerShell Gallery](https://www.powershellgallery.com/packages/RealmJoin) para instalar o módulo RealmJoin
* O `Az.Accounts`, `Az.Resources` e `Az.Automation` módulos — o módulo RealmJoin os instala automaticamente nas versões fixadas, para o usuário atual

### Permissões da conta com a qual você entra

* **Microsoft Entra ID:** permissão para criar service principals **e conceder permissões de aplicativo** — a configuração atribui funções de aplicativo do Graph, Exchange, Defender e SharePoint à identidade gerenciada. Na prática, isso significa *Global Administrator* ou *Privileged Role Administrator*.
* **assinatura Azure:** permissão para implantar no grupo de recursos **e** para criar atribuições de função nele — por exemplo *Owner*, ou *Contributor* combinado com *User Access Administrator* / *Role Based Access Control Administrator*.
* O login acontece por meio de `Connect-AzAccount`, que usa o **Azure PowerShell** aplicativo de primeira parte. Tenants que restringem o consentimento do usuário podem precisar conceder primeiro o consentimento de administrador a esse aplicativo.

{% hint style="warning" %}
Execute o comando em uma **sessão local do PowerShell recém-aberta** e evite **Azure Cloud Shell**. O módulo RealmJoin exige versões exatas dos `Az.*` módulos. Se uma versão diferente já estiver carregada na sessão — o que normalmente acontece no Cloud Shell — o módulo é interrompido com um conflito de versão que só pode ser resolvido abrindo uma nova sessão.
{% endhint %}

## Configuração

{% stepper %}
{% step %}

#### Prepare o grupo de recursos

No Azure Portal, crie ou selecione o grupo de recursos que deve conter a Automation Account. Anote o nome dele e a ID da assinatura em que ele está.

Se você quiser usar uma **existente** Automation Account, anote também o nome dela.
{% endstep %}

{% step %}

#### Copie o comando do RealmJoin Portal

No RealmJoin Portal, vá para **Configurações → Runbooks** (<https://portal.realmjoin.com/settings/runbooks-configuration>).

A página informa que a configuração de runbooks é gerenciada pelo módulo RealmJoin PowerShell e exibe um bloco de comando. Use o **Copiar** botão para copiá-lo.

```powershell
$latest = [version](Find-Module RealmJoin -Repository PSGallery -ErrorAction Stop).Version
if (-not (Get-Module -ListAvailable RealmJoin | Where-Object Version -ge $latest)) {
    Install-Module RealmJoin -Force -AllowClobber -ErrorAction Stop
}
Import-Module RealmJoin -Force
Set-RJAutomationAccount -Token "<Token>" 6>&1
```

{% hint style="info" %}
**Sobre `6>&1`:** esses comandos relatam seu progresso no fluxo Information do PowerShell. O `6>&1` redirecionamento exibe essa saída no console — sem ele, você não verá nenhuma mensagem de progresso.
{% endhint %}
{% endstep %}

{% step %}

#### Adicione os parâmetros de destino

`Set-RJAutomationAccount` precisa saber onde implantar. Complete a última linha antes de executá-lo:

```powershell
Set-RJAutomationAccount -ResourceGroupName "rg-realmjoin" -SubscriptionId "<SubscriptionId>" -Token "<Token>" 6>&1
```

* `-ResourceGroupName` é obrigatório. Se você omitir, o PowerShell solicitará isso.
* `-SubscriptionId` é opcional — sem ele, a assinatura do seu contexto atual do Azure é usada, e você é solicitado a escolher se houver várias disponíveis.
* `-AutomationAccountName` é opcional. Passe-o para usar uma **existente** Automation Account; caso contrário, uma nova é criada com um nome gerado.

{% hint style="warning" %}
Direcionar o comando para uma Automation Account existente também impõe as configurações que a RealmJoin espera nela: uma identidade gerenciada atribuída pelo sistema, o SKU Basic e acesso de rede público. Verifique se isso corresponde aos seus requisitos antes de reutilizar uma conta.
{% endhint %}
{% endstep %}

{% step %}

#### Execute o comando

Cole o bloco em uma nova sessão do PowerShell e execute-o. O token é válido por cerca de uma hora — se tiver expirado, recarregue a página de configurações e copie o comando novamente.

Você será solicitado a entrar com `Connect-AzAccount`. Se sua conta tiver acesso a vários tenants ou assinaturas, o módulo solicitará que você escolha.

A implantação é executada em três etapas — service principal, Automation Account, permissões — e informa cada recurso à medida que ele é criado. Uma única execução normalmente leva alguns minutos.

{% hint style="info" %}
Quer ver primeiro o que aconteceria? Acrescente `-WhatIf` para uma prévia What-If do Azure Resource Manager. Observe que entrar e instalar os `Az` módulos ainda acontece, porque a prévia precisa de ambos.
{% endhint %}
{% endstep %}

{% step %}

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

A configuração concede à identidade gerenciada suas permissões de aplicativo, mas não suas funções de diretório do Entra ID. Atribua-as agora — veja [Concedendo funções e permissões](/pt/automatizacao/connecting-azure-automation/azure-ad-roles-and-permissions.md#granting-roles-and-permissions) para a lista atual e um script que faz isso.

A ID do objeto da identidade gerenciada é mostrada no Azure Portal na Automation Account em Configurações da conta > Identidade.

<figure><img src="https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2F4ecZSM3NW9PWJJlaNmR4%2Fimage.png?alt=media&amp;token=e5d5b56b-50f3-4f35-a41b-7cb4230dd3f3" alt=""><figcaption><p>Identidade gerenciada da Automation Account</p></figcaption></figure>
{% endstep %}

{% step %}

#### Verifique no Portal e inicie a primeira sincronização

Volte para **Configurações → Runbooks** e selecione **Atualizar**. RealmJoin detecta a nova configuração e inicia a importação inicial do runbook. Deixe a página aberta até a sincronização ser concluída.

A assinatura, o grupo de recursos, o nome da Automation Account e a localização agora são exibidos somente leitura em **Conexão Azure** — eles são mantidos pelo módulo PowerShell a partir de agora.
{% endstep %}
{% endstepper %}

## Configurações que você gerencia no Portal

Duas configurações continuam editáveis em **Configurações → Runbooks** após a configuração:

* **Branch** — a branch do [repositório compartilhado de runbooks](https://github.com/realmjoin/realmjoin-runbooks) que você deseja acompanhar. A configuração define isso como `production`, que é a escolha certa, a menos que você tenha um motivo para divergir.
* **Ativar sincronização do Hybrid Runbook Worker** e o grupo de workers a ser usado, veja [Hybrid Runbook Worker](/pt/automatizacao/runbooks/hybrid-runbook-worker.md). O grupo precisa estar registrado na Automation Account antes de poder ser selecionado aqui.

Salvar qualquer uma delas dispara uma sincronização de runbooks.

Se você encontrar problemas de configuração ou permissão mais tarde, o **Exibir cmdlet** botão em Conexão Azure traz o comando de volta — executá-lo novamente é seguro e aplica apenas o que estiver faltando.

## Configuração legada (registro de aplicativo por Tenant)

{% hint style="warning" %}
A configuração abaixo cria uma **RealmJoin Runbook Management** registro de aplicativo com um segredo do cliente no seu tenant. Ela é documentada apenas como referência para tenants configurados dessa forma no passado. Não a use para novas configurações — siga o [Configuração](#setup) acima, ou [mude uma configuração existente para o aplicativo gerenciado](/pt/automatizacao/connecting-azure-automation/managed-app-migration.md).
{% endhint %}

<details>

<summary>Mostrar a configuração legada</summary>

Nesse caminho, a Automation Account foi criada manualmente no Azure Portal, suas permissões foram atribuídas com dois scripts externos e a RealmJoin autenticou-se com uma app registration por Tenant e segredo do cliente.

**Parte 1 — Criar uma Automation Account do Azure**

1. Navegue até o seu [Azure Portal > Automation Accounts](https://portal.azure.com/#create/Microsoft.AutomationAccount) e crie uma nova Automation Account.
2. Na guia Básico, escolha sua assinatura, grupo de recursos, nome da Automation Account e região.
3. Na guia Avançado, certifique-se de que a identidade gerenciada atribuída pelo sistema esteja ativada.
4. Selecione Revisar + Criar e crie sua Automation Account.
5. Navegue até o grupo de recursos que contém a Automation Account e, na guia IAM, atribua a Automation Account como Contributor.

![Criando a Automation Account](https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FqjBLc2zH3XCCqfAViEsU%2Fimage.png?alt=media\&token=257816e0-eb8a-478c-973f-fb288324d8c8)

![Ativando a identidade gerenciada atribuída pelo sistema](https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FM9N3OxNzrzQXFxSaKIpP%2Fimage.png?alt=media\&token=1e7c4d5b-d604-415b-89e0-4816a7f04a26)

**Parte 2 — Atribuir permissões à Automation Account**

As permissões da identidade gerenciada não podem ser concedidas por meio do Azure Portal. Os [approle-and-directoryrole-granter](https://github.com/Workplace-Foundation/approle-and-directoryrole-granter) scripts atribuem tanto as permissões de aplicativo quanto as funções do Entra ID a partir dos arquivos JSON 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
```

**Parte 3 — Criar o service principal da RealmJoin**

No Portal, em Configurações > Runbooks, o Tenant ID, o ID da assinatura e o grupo de recursos foram inseridos primeiro; a página então mostrou um trecho de Azure CLI para executar, que criou a **RealmJoin Runbook Management** registro de aplicativo com direitos de Contributor no grupo de recursos:

```
az provider register --namespace Microsoft.Automation
az ad sp create-for-rbac -n "RealmJoin Runbook Management" --role contributor --scopes /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroup>
```

**Parte 4 — Concluir o assistente**

De volta ao Portal, o `appId` e `password` dessa saída foram inseridos junto com o nome da Automation Account, a branch do repositório compartilhado de runbooks (`production`) e a localização da Automation Account. Salvar iniciou a importação inicial dos runbooks.

![Conexão da Automation Account no RealmJoin Portal](https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FA0X3M2c9d13pxVt87Pf8%2Fimage.png?alt=media\&token=8e2f2b18-c3b1-4704-8cc8-eb4d43297dd1)

</details>


---

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