> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/pt/gestao-de-certificados/active-directory/general-configuration.md).

# Configuração geral

Para permitir que o SCEPman trate com sucesso os pedidos SOAP recebidos, precisamos de seguir alguns passos:

{% stepper %}
{% step %}

### Domínio personalizado

Para uma autenticação bem-sucedida com o SCEPman, certifique-se de que um domínio personalizado usando um `registro A` está apontado para o App Service. Caso contrário, o cliente não conseguirá solicitar um ticket Kerberos válido do Domain Controller.

{% hint style="info" %}
O domínio personalizado não precisa de se assemelhar ao FQDN do seu domínio AD. Portanto, ter um domínio `ad.contoso.local` não significa que precise de um domínio personalizado idêntico ou semelhante para o SCEPman.

Consulte o problema conhecido abaixo relativo a [WS\_E\_ENDPOINT\_ACCESS\_DENIED](/pt/gestao-de-certificados/active-directory/general-configuration.md#ws_e_endpoint_access_denied) para mais informações.
{% endhint %}

Certifique-se de que o SCEPman está configurado para ser acessível usando um domínio personalizado:

{% content-ref url="/pages/39608d06863bc8258e26ef9ccc7a89eee0d00765" %}
[Domínio personalizado](/pt/configuracao-do-azure/custom-domain.md)
{% endcontent-ref %}
{% endstep %}

{% step %}

### BaseUrl

Para permitir autenticações bem-sucedidas, certifique-se de que a [AppConfig:BaseUrl](/pt/configuracao-do-scepman/application-settings/basics.md#appconfig-baseurl) variável corresponde ao seu domínio personalizado.

| Definição         | Valor                        |
| ----------------- | ---------------------------- |
| AppConfig:BaseUrl | Exemplo: scepman.contoso.com |

**Em alternativa**, se preferir aceder ao Endpoint do AD usando um URL diferente dos seus outros endpoints do SCEPman, use a definição dedicada [AppConfig:ActiveDirectory:BaseUrl](/pt/configuracao-do-scepman/application-settings/active-directory/general.md#appconfig-activedirectory-baseurl) definição.

| Definição                         | Valor                           |
| --------------------------------- | ------------------------------- |
| AppConfig:ActiveDirectory:BaseUrl | Exemplo: adendpoint.contoso.com |
| {% endstep %}                     |                                 |

{% step %}

### Criar Service Principal

Use o `New-SCEPmanADPrincipal` Cmdlet do módulo PowerShell do SCEPman para criar o Service Principal no seu domínio local do Active Directory. Também exportará um keytab desta conta e encriptá-lo-á com o certificado CA do SCEPman.

Pode executar este comando num Domain Controller ou num servidor associado ao domínio que tenha instalada a `RSAT-AD-Tools` funcionalidade. Também precisará das seguintes permissões na OU em que pretende criar o principal:

Na própria OU:

* Criar objetos de computador

Nos objetos de computador descendentes:

* Repor palavra-passe
* Escrever `msDS-SupportedEncryptionTypes`
* Escrever `servicePrincipalName`
* Escrever `userPrincipalName`

A variante abaixo também requer acesso de rede HTTPS de saída à sua instância do SCEPman.

{% hint style="info" %}
Se o seu computador com acesso a um Domain Controller não tiver acesso à rede, existem variantes do CMDlet que funcionam sem isso, mas requerem alguma preparação adicional, como transferir o certificado CA do SCEPman e copiar a CA para a máquina que executa o CMDlet.
{% endhint %}

```powershell
Install-Module SCEPman -Force
New-SCEPmanADPrincipal -Name "SCEPmanAD" -AppServiceUrl "scepman.contoso.com" -OU
"OU=Example,DC=contoso,DC=local"
```

Executar este comando fará o seguinte:

1. Criar um objeto de computador na `OU=Example,DC=contoso,DC=local` Unidade Organizacional.
2. Transferir o certificado CA do SCEPman para encriptar o keytab no passo 5.
3. Adicionar um nome de principal de serviço (SPN) ao objeto de computador.
4. Criar um keytab para a conta de computador contendo a chave de encriptação com base na palavra-passe do computador.
5. Encriptar o keytab com o certificado CA do SCEPman, para que apenas o SCEPman o possa desencriptar novamente usando a chave privada da CA.
6. Gerar a saída do keytab encriptado, para que possa ser transferido para a configuração do SCEPman.

A saída codificada em Base64 deve então ser adicionada à variável de ambiente **AppConfig:ActiveDirectory:Keytab** no seu App Service do SCEPman.
{% endstep %}

{% step %}

### Adicionar Keytab ao SCEPman

A integração pode ser facilmente ativada adicionando as seguintes variáveis de ambiente no **App Service do SCEPman.** Dependendo do seu caso de uso, ative um ou mais dos modelos de certificado disponíveis:

*Exemplo com todos os modelos de certificado ativados:*

| Definição                                                                                                                                                              | Valor                                                                                               |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [AppConfig:ActiveDirectory:Keytab](appconfig:ActiveDirectory:Keytab)                                                                                                   | Keytab codificado em Base64 para o Service Principal criado em [Passo 3](#create-service-principal) |
| [AppConfig:ActiveDirectory:Computer:Enabled](/pt/configuracao-do-scepman/application-settings/active-directory/computer-template.md#appconfig-activedirectory-enabled) | true                                                                                                |
| [AppConfig:ActiveDirectory:User:Enabled](/pt/configuracao-do-scepman/application-settings/active-directory/user-template.md#appconfig-activedirectory-enabled)         | true                                                                                                |
| [AppConfig:ActiveDirectory:DC:Enabled](/pt/configuracao-do-scepman/application-settings/active-directory/dc-template.md#appconfig-activedirectory-enabled)             | true                                                                                                |
| [AppConfig:ActiveDirectory:RdpServer:Enabled](/pt/configuracao-do-scepman/application-settings/active-directory/rdp-template.md#appconfig-activedirectory-enabled)     | true                                                                                                |
| {% endstep %}                                                                                                                                                          |                                                                                                     |
| {% endstepper %}                                                                                                                                                       |                                                                                                     |

## Problemas conhecidos

### WS\_E\_ENDPOINT\_ACCESS\_DENIED

```
Erro: WS_E_ENDPOINT_ACCESS_DENIED 
Hex: 0x803d0005
Dec: -2143485947
```

Sabe-se que este erro ocorre durante a validação do servidor CEP quando está a utilizar os *padrão* URI do Azure App Service. Este erro é causado pelo protocolo Kerberos ao pedir um nome de principal de serviço do `registro A` serviço a que se pretende aceder. No caso dos domínios padrão do app service, por exemplo `contoso.azurewebsites.net` é um `CNAME` e aponta para um `registro A` semelhante a:

```
waws-prod-ab1-234-c56d.westeurope.cloudapp.azure.com
```

Como este `registro A` de um host de infraestrutura não é garantido que seja consistente no futuro, adicionar um nome de principal de serviço para este host é **não recomendado**.

Certifique-se de adicionar um domínio personalizado ao seu app service e usar um `registro A` no seu fornecedor de DNS para o apontar para o app service em vez de um `CNAME`.

{% content-ref url="/pages/39608d06863bc8258e26ef9ccc7a89eee0d00765" %}
[Domínio personalizado](/pt/configuracao-do-azure/custom-domain.md)
{% endcontent-ref %}

### ERROR\_INVALID\_PARAMETER

```
Erro: ERROR_INVALID_PARAMETER
Hex: 0x80070057
Dec: -2147024809
```

Este erro ocorre durante o registo do servidor CEP se introduzir um URI que comece com `http://`. Certifique-se de registar um servidor CEP apenas usando `https://` .

### ERROR\_ACCESS\_DENIED

```
Erro: ERROR_ACCESS_DENIED
Hex: 0x80070005
Dec: -2147024891
```

Ao registar um servidor CEP no contexto da máquina, o utilizador atuante (a conta que iniciou `gpmc.msc`) precisa de ser membro do grupo local Administrators no computador enquanto edita a GPO.

Certifique-se de iniciar `gpmc.msc` com permissões elevadas neste caso.


---

# 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.scepman.com/pt/gestao-de-certificados/active-directory/general-configuration.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.
