# Guia estendido

{% hint style="warning" %}
Apenas SCEPman Enterprise Edition
{% endhint %}

Isto o guiará por todas as etapas para implementar o SCEPman para um ambiente de nível empresarial com requisitos avançados, por exemplo, convenções de nomenclatura, redundância ou autoescalonamento.

## Implantação no Azure

Vamos começar com os requisitos e uma visão geral dos recursos.\
Tenha em mente que precisa de planear um design útil dos recursos do Azure.

### Pré-requisitos

#### Obrigatório

* [ ] Convenção de nomenclatura de recursos do Azure.
* [ ] Subscrição do Azure (pelo menos direitos de Contributor nessa subscrição).
* [ ] Direitos de owner do Azure (pelo menos ao nível de Resource Group).
* [ ] Microsoft Entra ID (Azure AD) "Global administrator" (Consentimento para aceder à Graph API).
* [ ] Certifique-se de definir as suas políticas do Azure [de acordo com os requisitos do SCEPman](https://docs.scepman.com/pt/outros/security-faq#azure-cis) (por exemplo, não impor TLS).
* [ ] CNAME do Domínio Público (*scepman.yourdomain.com*), apenas se for usada redundância geográfica.
* [ ] Certificado SSL (ou use [App Service Managed Certificate](https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate#create-a-free-certificate-preview)), apenas se for usada redundância geográfica.
* [ ] SCEPman Enterprise Edition License Key.

#### Opcional

* [ ] CNAME do Domínio Público (*scepman.yourdomain.com*), apenas se for usado um domínio personalizado.
* [ ] Certificado SSL (Wildcard-) (ou use [App Service Managed Certificate](https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate#create-a-free-certificate-preview)), apenas se for usado um domínio personalizado.

### Visão Geral dos Recursos do Azure

Os seguintes recursos são recomendados para um ambiente de produção.

Além disso, se estiver a usar Private Endpoints, tem [sete recursos adicionais do Azure.](https://docs.scepman.com/pt/configuracao-do-azure/private-endpoints#azure-resources-used-for-private-endpoints)

## Passos de configuração

{% stepper %}
{% step %}

### Implementar os serviços base do SCEPman

{% hint style="warning" %}
Este é um **passo** obrigatório.
{% endhint %}

Faça a sua escolha sobre se gostaria de implantar com um **Windows** ou **Linux** App Service Plan. Ambos os métodos de implantação permitirão escolher o seu Sistema Operativo.

Para começar a implantação, você precisa seguir as nossas instruções de configuração, utilizando um **ARM Template**

{% content-ref url="../deployment-options/enterprise-deployment" %}
[enterprise-deployment](https://docs.scepman.com/pt/implantacao-do-scepman/deployment-options/enterprise-deployment)
{% endcontent-ref %}

ou, alternativamente, o nosso **Terraform** script:

{% content-ref url="../deployment-options/terraform-deployment" %}
[terraform-deployment](https://docs.scepman.com/pt/implantacao-do-scepman/deployment-options/terraform-deployment)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Realizar passos pós-implementação (atribuições de permissões)

{% hint style="warning" %}
Este é um **passo** obrigatório.
{% endhint %}

Para ligar corretamente todos os componentes do SCEPman, várias permissões precisam ser atribuídas. Siga estes passos para estabelecer as ligações relevantes:

{% content-ref url="../permissions/post-installation-config" %}
[post-installation-config](https://docs.scepman.com/pt/implantacao-do-scepman/permissions/post-installation-config)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Adicionar permissões do Certificate Master

{% hint style="success" %}
Este é um **passo** passo para **Enterprise** **Edition** clientes. **Community Edition** utilizadores podem ignorar este passo.
{% endhint %}

O Certificate Master é uma funcionalidade da **Enterprise Edition** que permite aos administradores gerar e revogar certificados manualmente. Siga estes passos para conceder acesso ao Certificate Master.

{% content-ref url="../../configuracao-do-scepman/rbac" %}
[rbac](https://docs.scepman.com/pt/configuracao-do-scepman/rbac)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Criar Certificado Raiz

{% hint style="warning" %}
Este é um **passo** obrigatório.
{% endhint %}

Após a conclusão da implementação e da atribuição de permissões, precisa de criar o certificado raiz para o SCEPman:

{% content-ref url="../first-run-root-cert" %}
[first-run-root-cert](https://docs.scepman.com/pt/implantacao-do-scepman/first-run-root-cert)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Configurar um Domínio Personalizado e um Certificado SSL

{% hint style="success" %}
Este é um **recomendado** etapa. No entanto, **ignore** esta etapa se estiver a implementar redundância geográfica.
{% endhint %}

Para disponibilizar o seu SCEPman no seu domínio específico, precisa de criar um **Domínio Personalizado** no **App Service.**

{% content-ref url="../../configuracao-do-azure/custom-domain" %}
[custom-domain](https://docs.scepman.com/pt/configuracao-do-azure/custom-domain)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Atualizações manuais

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

Por predefinição, o SCEPman adota uma abordagem [evergreen](https://docs.scepman.com/pt/configuracao-do-azure/update-strategy#evergreen-approach) em relação às atualizações. Caso precise de controlo total sobre as suas atualizações do SCEPman, configure um deployment slot conforme descrito no guia seguinte na secção **Configuração do Deployment Slot**.

{% content-ref url="../../configuracao-do-azure/update-strategy" %}
[update-strategy](https://docs.scepman.com/pt/configuracao-do-azure/update-strategy)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Implementar o Application Insights

{% hint style="success" %}
Isto é **recomendado** obrigatório.
{% endhint %}

O Application Insights pode ser usado para obter uma visão geral do desempenho do App Service e para obter informações mais detalhadas sobre o processamento de pedidos do SCEPman. Recomendamos configurar sempre o Application Insights para monitorizar, manter e otimizar o App Service.

{% content-ref url="../../configuracao-do-azure/application-insights" %}
[application-insights](https://docs.scepman.com/pt/configuracao-do-azure/application-insights)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Configurar o Health Check

{% hint style="success" %}
Isto é **recomendado** obrigatório.
{% endhint %}

Os Health Checks podem ser configurados para notificar os administradores no caso de o SCEPman App Service não responder.

{% content-ref url="../../configuracao-do-azure/health-check" %}
[health-check](https://docs.scepman.com/pt/configuracao-do-azure/health-check)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Certifique-se de que o SCEPman tem recursos suficientes

{% hint style="warning" %}
Este é um **passo** obrigatório.
{% endhint %}

Depois de mover o SCEPman para um ambiente de produção, deve garantir que o SCEPman está equipado com capacidade de processamento suficiente. Por isso, reveja o nosso guia de dimensionamento do Azure e atualize o nível do seu App Service Plan, se necessário. Pode adiar isto até depois da sua PoC ou da fase de avaliação.

{% content-ref url="../../configuracao-do-azure/azure-sizing" %}
[azure-sizing](https://docs.scepman.com/pt/configuracao-do-azure/azure-sizing)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Configurar Autoescalonamento

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

A solução SCEPman tem duas tarefas diferentes e requisitos de desempenho.\
Uma tarefa é o processo de emissão de certificados: Após a configuração da solução SCEPman, precisamos de implantar certificados em todos os dispositivos (certificados de utilizador e/ou dispositivo), mas esta é uma tarefa única e, após a implantação inicial, isso só acontece quando um novo dispositivo é inscrito ou os certificados precisam ser renovados. Nessas situações, o SCEPman enfrentará um pico de pedidos SCEP.

A segunda tarefa é a validação de certificados: Após implantarmos certificados nos dispositivos, esses certificados precisam de ser validados sempre que os utilizamos. Para cada autenticação baseada em certificado, os clientes, gateways ou o sistema RADIUS (depende do que você usa) enviarão um pedido OCSP para o SCEPman App Service. Isso causará uma carga permanente de pedidos no App Service.

Para ter um desempenho otimizado e controlar os custos, recomendamos configurar a funcionalidade de Autoescalonamento do App Service. Com esta funcionalidade, a sua aplicação pode escalar horizontalmente e reduzir a escala com base em métricas.

{% content-ref url="../../configuracao-do-azure/azure-sizing/autoscaling" %}
[autoscaling](https://docs.scepman.com/pt/configuracao-do-azure/azure-sizing/autoscaling)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Configurar Redundância Geográfica

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

Configurar uma instância redundante geograficamente para o SCEPman pode melhorar a disponibilidade do serviço e a resiliência, distribuindo cargas de trabalho por várias regiões do Azure.&#x20;

No entanto, é importante notar que esta configuração pode levar a custos maiores no Azure devido aos recursos adicionais e à replicação de dados envolvidos. A Microsoft fornece um SLA de 99,95% para Azure App Services, o que é adequado na maioria dos cenários.

{% content-ref url="../../configuracao-do-azure/geo-redundancy" %}
[geo-redundancy](https://docs.scepman.com/pt/configuracao-do-azure/geo-redundancy)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Configure os seus perfis de implementação de MDM

{% hint style="success" %}
Este é um **recomendado** obrigatório.
{% endhint %}

Com a conclusão dos passos acima, temos uma implementação funcional do SCEPman e podemos agora implementar certificados nos dispositivos.

Utilize um (ou mais) dos artigos seguintes para implementar certificados com a sua solução MDM preferida:

{% content-ref url="../../gerenciamento-de-certificados/microsoft-intune" %}
[microsoft-intune](https://docs.scepman.com/pt/gerenciamento-de-certificados/microsoft-intune)
{% endcontent-ref %}

{% content-ref url="../../gerenciamento-de-certificados/jamf" %}
[jamf](https://docs.scepman.com/pt/gerenciamento-de-certificados/jamf)
{% endcontent-ref %}

{% content-ref url="../../gerenciamento-de-certificados/static-certificates" %}
[static-certificates](https://docs.scepman.com/pt/gerenciamento-de-certificados/static-certificates)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Emitir certificados manualmente ou assinar CSRs usando o Certificate Master <a href="#manually-issue-certificates-or-sign-csrs-using-the-certificate-master" id="manually-issue-certificates-or-sign-csrs-using-the-certificate-master"></a>

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

Siga o link abaixo para saber como emitir certificados de servidor TLS com base numa lista de FQDNs ou assinar qualquer CSR usando o componente Certificate Master.

{% content-ref url="../../gerenciamento-de-certificados/certificate-master" %}
[certificate-master](https://docs.scepman.com/pt/gerenciamento-de-certificados/certificate-master)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Emitir Certificados usando a Enrollment REST API

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

O SCEPman apresenta uma API REST para registar certificados. Esta é uma alternativa aos endpoints SCEP, que exigem o estilo de autenticação SCEP, enquanto a API REST usa identidades Microsoft para autenticação. O protocolo também é muito mais simples do que o SCEP.

{% content-ref url="../../gerenciamento-de-certificados/api-certificates" %}
[api-certificates](https://docs.scepman.com/pt/gerenciamento-de-certificados/api-certificates)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Criar Bloqueios nos recursos do Azure do SCEPman

{% hint style="info" %}
Este é um **opcional** obrigatório.
{% endhint %}

Por predefinição, o SCEPman não aplica quaisquer bloqueios aos recursos do Azure. Se utilizar bloqueios de recursos e quiser configurá-los, a lista seguinte descreve que tipos de bloqueio podem ser aplicados a cada recurso do SCEPman.

* **Key Vault:** Soft Delete e Purge Protection já fornecem proteção contra eliminação acidental. O SCEPman não modifica o recurso após a criação da chave da CA, portanto um **ReadOnlyLock** é tecnicamente possível.
* **Storage Account:** Apenas um **DeleteLock** é possível, pois o SCEPman precisa de escrever informações de certificados na tabela. Se um Storage Account for eliminado acidentalmente, você perde informações sobre certificados já emitidos.
* **App Services:** Um **ReadOnlyLock** é teoricamente possível, mas tem de ser removido sempre que modificar a configuração do SCEPman. Um App Service eliminado pode ser facilmente reinstalado, mas terá apenas a configuração predefinida, pelo que todas as alterações manuais terão de ser reconfiguradas manualmente. Uma combinação de **DeleteLock** e **ReadOnlyLock** ajuda a mitigar este risco.
* **Log Analytics Workspace:** Um **DeleteLock** é tecnicamente possível, mas você apenas perderia registos recolhidos durante o período de retenção, o que não afeta a disponibilidade do serviço SCEPman.
* **Outros Recursos do Azure:** Estes não armazenam dados e podem ser recriados sem perda de informação. Um **DeleteLock** e **ReadOnlyLock** pode ser útil para alguns deles. Alguns não podem ser eliminados de forma alguma porque têm dependências num dos serviços principais mencionados acima.

{% endstep %}
{% endstepper %}
