# Configuration générale

Pour permettre à SCEPman de traiter correctement les requêtes SOAP entrantes, nous devons suivre quelques étapes :

{% stepper %}
{% step %}

### Domaine personnalisé et BaseUrl

Pour une authentification réussie avec SCEPman, assurez-vous qu’un domaine personnalisé utilisant un `enregistrement A` pointe vers l’App Service. Sinon, le client ne parviendra pas à demander un ticket Kerberos valide au contrôleur de domaine.

{% hint style="info" %}
Le domaine personnalisé n’a pas besoin de ressembler au FQDN de votre domaine AD. Ainsi, avoir un domaine `ad.contoso.local` ne signifie pas que vous devez utiliser un domaine personnalisé identique ou similaire pour SCEPman.

Voir ci-dessous le problème connu concernant [WS\_E\_ENDPOINT\_ACCESS\_DENIED](#ws_e_endpoint_access_denied) pour plus d’informations à ce sujet.
{% endhint %}

Assurez-vous que SCEPman est configuré pour être accessible à l’aide d’un domaine personnalisé :

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

La même exigence s’applique également après la demande initiale de stratégie (liste des modèles de certificats) pour l’inscription des certificats. Pour permettre des authentifications réussies, assurez-vous que la [AppConfig:BaseUrl](https://docs.scepman.com/fr/configuration-scepman/application-settings/basics#appconfig-baseurl) variable correspond à votre domaine personnalisé ou utilisez le [AppConfig:ActiveDirectory:BaseUrl](https://docs.scepman.com/fr/configuration-scepman/application-settings/active-directory/general#appconfig-activedirectory-baseurl) paramètre dédié si vous préférez accéder au point de terminaison AD via une URL différente de vos autres points de terminaison SCEPman.
{% endstep %}

{% step %}

### Créer un principal de service

Utilisez l’indicateur `New-SCEPmanADPrincipal` Cmdlet du module PowerShell SCEPman pour créer le principal de service dans votre domaine Active Directory local. Il exportera également un keytab à partir de ce compte et le chiffrera avec le certificat CA de SCEPman.

Vous pouvez exécuter cette commande sur un contrôleur de domaine ou sur un serveur joint au domaine qui a installé le [`RSAT-AD-Tools`](#user-content-fn-1)[^1] fonctionnalité. Vous aurez également besoin des autorisations suivantes dans l’OU dans laquelle vous souhaitez créer le principal :

Sur l’OU elle-même :

* Créer des objets ordinateur

Sur les objets ordinateur descendants :

* Réinitialiser le mot de passe
* Écrire `msDS-SupportedEncryptionTypes`
* Écrire `servicePrincipalName`
* Écrire `userPrincipalName`

La variante ci-dessous nécessite également un accès réseau HTTPS sortant vers votre instance SCEPman.

{% hint style="info" %}
Si votre ordinateur ayant accès à un contrôleur de domaine n’a pas d’accès réseau, il existe des variantes de la CMDlet qui fonctionnent sans, mais elles nécessitent une préparation supplémentaire, comme le téléchargement du certificat CA de SCEPman et la copie de la CA sur la machine qui exécute la CMDlet.
{% endhint %}

{% code overflow="wrap" lineNumbers="true" expandable="true" %}

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

{% endcode %}

L’exécution de cette commande effectuera les actions suivantes :

1. Créer un objet ordinateur dans l’ `OU=Example,DC=contoso,DC=com` unité d’organisation.
2. Télécharger le certificat CA de SCEPman pour chiffrer le keytab à l’étape 5.
3. Ajouter un nom de principal de service (SPN) à l’objet ordinateur.
4. Créer un keytab pour le compte ordinateur contenant la clé de chiffrement basée sur le mot de passe de l’ordinateur.
5. Chiffrer le keytab avec le certificat CA de SCEPman, afin que seul SCEPman puisse le déchiffrer à nouveau à l’aide de la clé privée de la CA.
6. Produire le keytab chiffré, afin qu’il puisse être transféré à la configuration de SCEPman.

La sortie encodée en Base64 doit ensuite être ajoutée à la variable d’environnement **AppConfig:ActiveDirectory:Keytab** de votre App Service SCEPman.
{% endstep %}

{% step %}

### Ajouter le keytab à SCEPman

L’intégration peut être facilement activée en ajoutant les variables d’environnement suivantes dans l’ **App Service SCEPman.** Selon votre cas d’utilisation, activez un ou plusieurs des modèles de certificats disponibles :

*Exemple avec tous les modèles de certificats activés :*

<table data-full-width="true"><thead><tr><th>Paramètre</th><th>Valeur</th></tr></thead><tbody><tr><td>AppConfig:ActiveDirectory:Keytab</td><td>Keytab encodé en Base64 pour le principal de service créé à l’étape 1</td></tr><tr><td>AppConfig:ActiveDirectory:Computer:Enabled</td><td>true</td></tr><tr><td>AppConfig:ActiveDirectory:User:Enabled</td><td>true</td></tr><tr><td>AppConfig:ActiveDirectory:DC:Enabled</td><td>true</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

## Problèmes connus

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

```
Erreur : WS_E_ENDPOINT_ACCESS_DENIED 
Hex : 0x803d0005
Déc : -2143485947
```

Cette erreur est connue pour se produire lors de la validation du serveur CEP lorsque vous utilisez les *par défaut* URI de l’Azure App Service. Cette erreur est causée par le protocole Kerberos qui demande un nom de principal de service correspondant à l’enregistrement A du service auquel on souhaite accéder. Dans le cas des domaines App Service par défaut, par exemple `contoso.azurewebsites.net` n’est qu’un CNAME et pointe vers un enregistrement A similaire à :

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

Comme cet enregistrement A d’un hôte d’infrastructure n’est pas garanti d’être cohérent à l’avenir, l’ajout d’un nom de principal de service pour cet hôte est **non recommandé**.

Assurez-vous d’ajouter un domaine personnalisé à votre App Service et d’utiliser un enregistrement A chez votre fournisseur DNS pour y pointer l’App Service au lieu d’un CNAME.

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

### ERROR\_INVALID\_PARAMETER

```
Erreur : ERROR_INVALID_PARAMETER
Hex : 0x80070057
Déc : -2147024809
```

Cette erreur se produit lors de l’enregistrement du serveur CEP si vous saisissez une URI qui commence par `http://`. Assurez-vous d’enregistrer un serveur CEP uniquement en utilisant `https://`

### ERROR\_ACCESS\_DENIED

```
Erreur : ERROR_ACCESS_DENIED
Hex : 0x80070005
Déc : -2147024891
```

Lors de l’enregistrement d’un serveur CEP dans le contexte de la machine, l’utilisateur agissant (le compte qui a lancé `gpmc.msc`) doit être membre du groupe local Administrateurs sur l’ordinateur pendant la modification de la GPO.

Assurez-vous de lancer `gpmc.msc` avec des privilèges élevés dans ce cas.

[^1]: {% code fullWidth="true" %}

    ```powershell
    Install-WindowsFeature -Name RSAT-AD-Tools
    ```

    {% endcode %}
