jborean93.win_laps
Rôle Ansible win_laps
Installe et configure l'Application de Solution de Mot de Passe d'Administrateur Local sur un hôte Windows.
Cela peut être utilisé pour :
- Installer les composants côté serveur et ajouter les objets et permissions de schéma Active Directory requis
- Créer une GPO pour appliquer automatiquement la configuration LAPS aux clients
- Installer les composants côté client
Ce rôle est principalement un proof of concept et permet de configurer facilement un domaine de test avec LAPS intégré. Il n'y a aucune raison de ne pas l'exécuter dans un environnement réel, mais en raison des changements complexes que LAPS nécessite dans AD, veuillez le tester avant de toucher un environnement de production.
Exigences
- Windows Server 2012 R2+
Remarque : Ce rôle a été testé sur Windows Server 2016, d'autres versions devraient fonctionner mais cela n'est pas garanti.
Exigences pour les composants côté serveur
Lorsque vous utilisez ce rôle pour installer les composants côté serveur, vous devrez :
- Vous connecter en tant qu'utilisateur qui fait partie du groupe de domaine
Schema Admin
- Ou, spécifier un utilisateur appartenant au groupe
Schema Admin
via la variableopt_laps_domain_username
ouopt_laps_domain_password
- Vous assurer que vous êtes connecté à un contrôleur de domaine en tant qu'administrateur
Exigences de configuration de GPO
Lorsque vous utilisez ce rôle pour configurer la politique GPO, vous devez vous assurer que vous êtes connecté en tant qu'utilisateur disposant des permissions pour créer de nouveaux GPO et les lier aux unités organisationnelles cibles.
Exigences pour les composants côté client
La seule exigence pour installer les composants côté client est d'être administrateur sur l'hôte.
Variables
Variables Obligatoires
Lorsque opt_laps_install_server
ou opt_laps_configure_gpo
est True
, les variables suivantes sont obligatoires :
man_laps_ou_containers
: Une liste d'unités organisationnelles à configurer avec l'installation de LAPS. Cela appliquera les permissions appropriées dans AD ainsi que liera le GPO LAPS nouvellement créé si nécessaire.
Les valeurs pour man_laps_ou_containers
doivent être le nom complet distingué de l'OU, par exemple OU=Workstations,DC=domain,DC=local
.
Variables Optionnelles
Les variables suivantes sont optionnelles :
opt_laps_admin_account
: Change le nom du compte administrateur à gérer avec LAPS, par défaut le compteBUILTIN\Administrator
opt_laps_configure_gpo
: Lorsqu'elle est définie surTrue
et queopt_laps_install_server
estTrue
, crée un GPO pour appliquer la configuration LAPS et le lie àman_laps_out_containers
(par défaut :False
)opt_laps_install_client
: Lorsqu'elle est définie surTrue
, installe les composants côté client (par défaut :False
)opt_laps_install_powershell
: Lorsqu'elle est définie surTrue
, installe le module PowerShell LAPSAdmPwd.PS
(par défaut :False
)opt_laps_install_server
: Lorsqu'elle est définie surTrue
, installe et configure les composants côté serveur ainsi que les configurations Active Directory (par défaut :False
)opt_laps_install_ui
: Lorsqu'elle est définie surTrue
, installe l'application LAPS UI (par défaut :False
)opt_laps_install_source
: Le chemin ou l'URL de l'installateur LAPS à installer, par défaut l'URL de téléchargement de Microsoftopt_laps_product_id
: Spécifie l'ID de produit unique de l'installateur LAPS utilisé pour les vérifications d'idempotence, par défaut l'installateur sera ignoré si%ProgramFiles%\LAPS
existe déjàopt_laps_skip_reboot
: Lorsqu'elle est définie surTrue
, ne redémarre pas l'hôte si l'installation de LAPS indique qu'un redémarrage est nécessaire, définiraout_laps_reboot_required
si cela a été sauté (par défaut :False
)
Les variables optionnelles suivantes peuvent être définies pour contrôler la configuration du serveur :
opt_laps_domain_server
: Spécifier le contrôleur de domaine cible pour ajouter la configuration LAPS, par défautlocalhost
opt_laps_domain_username
: Remplacer l'utilisateur de connexion utilisé pour configurer AD, ce compte doit être membre du groupeSchema Admins
opt_laps_domain_password
: Le mot de passe pouropt_laps_domain_username
Les variables optionnelles suivantes peuvent être définies pour contrôler la configuration de GPO :
opt_laps_enforce_password_expiry
: Correspond à la politiqueNe pas autoriser un temps d'expiration de mot de passe plus long que requis par la politique
opt_laps_gpo_name
: Le nom de l'objet de politique de groupe contenant la configuration LAPSopt_laps_password_policy_age
: L'âge maximum du mot de passe en jours (par défaut :30
)opt_laps_password_policy_complexity
: La politique de complexité du mot de passe, peut être l'une des suivantes :uppercase
uppercase,lowercase
uppercase,lowercase,digits
uppercase,lowercase,digits,symbols
par défaut
opt_laps_password_policy_length
: La longueur du mot de passe à générer (par défaut :14
)
Variables de Sortie
out_laps_reboot_required
: Ceci est défini surTrue
lorsqueopt_laps_skip_reboot
estTrue
et qu'un redémarrage est nécessaire pour compléter l'installation
Dépendances du Rôle
Aucune
Exemples de Playbooks
- name: installer le client LAPS avec l'interface utilisateur
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
opt_laps_install_client: True
opt_laps_install_ui: True
- name: installer le serveur LAPS et le configurer pour 1 OU
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
- OU=Accounting,DC=domain,DC=local
opt_laps_install_server: True
- name: installer le serveur LAPS et créer une GPO
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
opt_laps_install_server: True
opt_laps_configure_gpo: True
Une fois le rôle exécuté, le module win_ad_dacl
et d'autres seront disponibles dans le chemin Ansible. Ce module peut être utilisé pour appliquer l'accès en lecture/écriture aux attributs de mot de passe et d'expiration à d'autres comptes. Par défaut, seuls les administrateurs de domaine ou le compte d'ordinateur réel peuvent accéder à ces valeurs. Pour ajouter un nouvel utilisateur ou groupe au DACL, vous pouvez exécuter une tâche comme :
- name: ajouter l'accès en lecture aux utilisateurs pour l'attribut de mot de passe
win_ad_dacl:
# il est préférable d'utiliser le nom complet distingué pour l'OU
path: OU=Workstations,DC=ansible,DC=laps
state: present
# Les ACE contiennent une liste de droits à appliquer
aces:
# Ajoute l'accès en lecture à l'attribut de mot de passe
- rights: ReadProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwd
access: allow
account: ANSIBLE\PasswordUsers
# Ajoute des accès en lecture et en écriture à l'attribut d'expiration du mot de passe
- rights: ReadProperty, WriteProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwdExpirationTime
access: allow
account: ANSIBLE\ExpiryUsers
Voir library/win_ad_dacl.py
pour plus de détails.
Les modules dans library
ne sont pas garantis de rester les mêmes dans chaque version de rôle. Assurez-vous de lire le changelog pour tout changement apporté à ces modules avant de mettre à jour la version du rôle.
Tests
Ce rôle dépend d'un domaine configuré fonctionnant sur deux hôtes différents. Cela est difficile à configurer dans un environnement CI gratuit, donc les seuls tests qui se dérouleront se feront localement via Vagrant. Pour tester ce rôle, procédez comme suit :
pip install pypsrp
cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv
Ces étapes peuvent prendre un certain temps en fonction de la disponibilité des boîtes Vagrant. L'ensemble de tests actuel installe les composants serveur sur le contrôleur de domaine et les composants CSE client sur l'autre serveur pour s'assurer que nous pouvons récupérer le mot de passe.
Liste d'attente
- Ajouter un paramètre optionnel pour contrôler le SACL (audit) de chaque attribut AD Aucune - les demandes de fonctionnalités sont les bienvenues.
ansible-galaxy install jborean93.win_laps