module PowerShell SCEPmanClient

SCEPmanClient est un module PowerShell destiné à interagir avec l'API REST de SCEPman. Étant indépendant de la plate-forme et compatible avec Windows PowerShell v5, vous pouvez utiliser ce module pour demander des certificats pour tous les cas d'utilisation pour lesquels l'API REST peut être utilisée :

  • Émission automatique de certificats de serveur

  • Certificats client pour appareils non gérés

  • Inscription de certificats sur des appareils Linux

Installation

Le module SCEPmanClient est disponible sur le PowerShell Gallery et peut être installé avec la commande suivante :

Install-Module -Name SCEPmanClient
circle-info

Suivez le guide de Microsoft sur la façon d'installer PowerShell sur Linuxarrow-up-right ou MacOSarrow-up-right.

Prérequis

Pour que le module fonctionne comme prévu, vous devrez ajouter une petite modification à votre déploiement SCEPman :

1

Ajouter l'URL de la page d'accueil

Ajoutez l'URL du service d'application de SCEPman : Accédez à la Branding & Properties section de l'enregistrement d'application. Ajoutez l'URL du service d'application de SCEPman dans le champ URL de la page d'accueil :

Ceci est nécessaire pour que le module puisse automatiquement rechercher l'ID client de l'enregistrement d'application requis pour la récupération du jeton d'accès.

2

Permettre à Azure PowerShell d'interagir avec l'enregistrement d'application

Dans l'enregistrement d'application, accédez à Expose an API et créez une portée personnalisée qui peut être utilisée pour autoriser l'ID client 1950a258-227b-4e31-a9cf-717495945fc2 (Microsoft Azure PowerShell)

Informations d'exemple pour une portée d'API personnalisée

Après avoir créé une portée d'API, l'application Azure PowerShell peut être autorisée :

Application Microsoft Azure PowerShell autorisée
3

Activer le point de terminaison EST

Configuration

Nécessaire pour le renouvellement du certificat

Configurez votre App Service SCEPman pour accepter les certificats clients mTLS. Dans le volet Configuration de la section Paramètres, vérifiez que le mode de certificat client dans Certificats clients entrants est défini sur Optionnel.

Ne définissez pas le mode de certificat client sur Exiger ou Autoriser, car cela perturberait le fonctionnement normal de SCEPman sur les points de terminaison SCEP !

Variables d'environnement

Pour pouvoir utiliser ce scénario, vous devez définir les variables d'environnement suivantes sur le service d’application SCEPman.

Nécessaire pour l'enregistrement et le renouvellement des certificats

Définissez cette variable sur true pour activer la validation des demandes de signature de certificat (CSR).

Nécessaire pour le renouvellement du certificat

Définissez cette variable sur true pour activer les renouvellements de certificats.

Nécessaire pour le renouvellement du certificat

Définissez cette variable sur une liste séparée par des virgules des types de certificats pour lesquels vous souhaitez autoriser le renouvellement. Consultez la documentation de la variable liée pour la liste des types de certificats possibles.

Exemple : Statique,IntuneUser,IntuneDevice

Autorisations

SCEPman a différents rôles qui permettront l'inscription de différents types de certificats. Vous pouvez les attribuer dans la SCEPman-api (nom par défaut) Enterprise Application :

CSR DB Requesters

Ce rôle n'est attribuable par défaut qu'aux principaux de service (par exemple les enregistrements d'application) et permet de demander des certificats avec des sujets et usages arbitraires.

Enrôlement via APIchevron-right

CSR Self Service

Ce rôle peut être attribué aux utilisateurs et permettra l'inscription de certificats avec les restrictions suivantes :

  • Seulement EKU ClientAuth

  • Les certificats d'utilisateur doivent correspondre au UPN de l'utilisateur soit dans le sujet soit dans le nom alternatif de sujet UPN

  • Les certificats d'appareil doivent avoir un sujet ou un SAN que SCEPman peut mapper à un objet appareil appartenant à l'utilisateur authentifié

Enrôlement en libre-servicechevron-right

Exemples d'utilisation

Utiliser l'authentification Azure

Authentification interactive

Lors de la demande d'un nouveau certificat sans spécifier le mécanisme d'authentification, l'utilisateur sera authentifié de manière interactive par défaut. En utilisant le -SubjectFromUserContext paramètre, le sujet du certificat et le SAN UPN seront automatiquement remplis en fonction du contexte de l'utilisateur connecté :

Connexion d'appareil

Si vous souhaitez demander un nouveau certificat sur un système sans environnement de bureau, vous pouvez utiliser le -DeviceCode paramètre pour effectuer l'authentification réelle dans une autre session :

Authentification par principal de service

Dans des scénarios entièrement automatisés, un enregistrement d'application peut être utilisé pour l'authentification. Inférer le sujet à partir du contexte authentifié ne sera pas possible dans ce cas.

Le splatting des paramètres rendra également l'exécution plus lisible :

S'authentifier en utilisant des certificats

Une fois qu'un certificat a été émis en utilisant un contexte authentifié, nous pouvons l'utiliser pour le renouveler sans fournir à nouveau de contexte.

CertificateBySubject

L'interaction avec les magasins de clés n'est possible que sous Windows

Lors de la fourniture du CertificateBySubject paramètre, le module tentera automatiquement de trouver un certificat approprié pour le renouvellement dans les CurrentUser et LocalMachine magasins de clés.

La valeur saisie sera comparée par expression rationnelle aux sujets de tous les certificats disponibles.

Fournir un certificat spécifique

CertificateFromFile

Sur les systèmes Linux, un renouvellement de certificat peut être effectué en passant les chemins d'un certificat existant et de sa clé privée.

Lorsque vous utilisez une clé privée chiffrée, il vous sera demandé le mot de passe. Vous pouvez également passer directement le mot de passe de la clé en utilisant le PlainTextPassword paramètre.

Utiliser SCEPman avec un Azure Web Application Firewall

Avec les profils SSL activés, le WAF terminera les connexions TLS. Cela rompra à son tour les renouvellements de certificats utilisant EST car la procédure repose sur le mTLS pour l'authentification. Dans ce cas, le UseSCEPRenewal paramètre peut être utilisé pour effectuer à la place un renouvellement de certificat conforme au protocole SCEP.

Veuillez noter que cela nécessite une configuration SCEPman supplémentaire concernant le point de terminaison SCEP statique :

  • AppConfig:StaticValidation:Enabled : true

  • AppConfig:StaticValidation:AllowRenewals : true

  • AppConfig:StaticValidation:ReenrollmentAllowedCertificateTypes: Static (Selon les types destinés au renouvellement)

Mis à jour

Ce contenu vous a-t-il été utile ?