# Simular um Ambiente de Runbook

## Vista geral

### Criar um registo de aplicação

Criamos um registo de aplicação do Azure para simular o início de sessão no estilo de aplicação no Microsoft Entra.&#x20;

<figure><img src="https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FAELajVV85Wm6a1Mwtmew%2Fimage.png?alt=media&#x26;token=15d94203-906f-4d0f-8c7b-77e8e032201b" alt=""><figcaption><p>Criar um registo de aplicação</p></figcaption></figure>

### Conceder permissões

Concederemos as mesmas permissões que a identidade gerida teria. Utilizaremos o mesmo [AppRoleGranter Toolkit](https://github.com/hcoberdalhoff/approle-and-directoryrole-granter) para este propósito.

Substituir `{AppRegObjectId}` pelo ID do objeto do seu registo de aplicação.

```powershell
git clone https://github.com/hcoberdalhoff/approle-and-directoryrole-granter.git
cd "approle-and-directoryrole-granter\RealmJoinVnext"
. .\AllInOne.ps1 -appRegObjectId "{AppRegObjectId}"
```

### Criar e carregar um certificado de desenvolvimento

Consulte [aqui ](https://github.com/realmjoin/RealmJoin.RunbookHelper/blob/main/DevCertificates.ps1)para um exemplo de como criar um RunbookHelper Dev-Certificate. Substituir `{Variables}` em conformidade.&#x20;

O `{AppID}` refere-se ao ID da aplicação / ID do cliente do Registo de Aplicações.

Se não tiver um ID de subscrição específico, utilize apenas uma subscrição predefinida do seu tenant. (Na maioria dos casos, isso não importa.)

```powershell
New-SelfSignedCertificate -Subject 'CN=AzureRunAsConnection, OU={AppID}, DC={TenantID}, O={SubscriptionID}' `
    -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(10) -KeySpec Signature | `
    Export-Certificate -FilePath "AzureRunAsConnection.cer"
```

Obterá um ficheiro `AzureRunAsConnection.cer` que deve carregar para os segredos do Registo de Aplicações.

{% hint style="info" %}
Se quiser servir várias aplicações / ambientes, pode substituir o "AzureRunAsConnection" predefinido em`CN=AzureRunAsConnection` por um nome personalizado ao criar o certificado para esse ambiente.

Pode então selecionar qual o ambiente/certificado (por exemplo, "OtherEnv") a utilizar para ligar com `Connect-RjRbGraph -AutomationConnectionName "OtherEnv"`

Desta forma, pode aceder a vários ambientes a partir da mesma máquina.
{% endhint %}

<figure><img src="https://686519968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2Fo2vVY6YO0gimSWg4XOfV%2Fimage.png?alt=media&#x26;token=958b8b21-c0fa-464e-aba9-954c008eea8c" alt=""><figcaption><p>Carregamento do certificado</p></figcaption></figure>

### Utilização

Basta usar `Connect-RjRbGraph` para autenticar na aplicação.&#x20;

Certifique-se de remover certificados de desenvolvimento mais antigos usando o mmc.exe da sua coleção de certificados pessoais, se existirem, para evitar conflitos/falhas de início de sessão.
