jborean93.win_laps

Rôle Ansible win_laps

Statut du Build Rôle Ansible Galaxy win_openssh

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 variable opt_laps_domain_username ou opt_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 compte BUILTIN\Administrator
  • opt_laps_configure_gpo : Lorsqu'elle est définie sur True et que opt_laps_install_server est True, 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 sur True, installe les composants côté client (par défaut : False)
  • opt_laps_install_powershell : Lorsqu'elle est définie sur True, installe le module PowerShell LAPS AdmPwd.PS (par défaut : False)
  • opt_laps_install_server : Lorsqu'elle est définie sur True, 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 sur True, 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 Microsoft
  • opt_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 sur True, ne redémarre pas l'hôte si l'installation de LAPS indique qu'un redémarrage est nécessaire, définira out_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éfaut localhost
  • opt_laps_domain_username : Remplacer l'utilisateur de connexion utilisé pour configurer AD, ce compte doit être membre du groupe Schema Admins
  • opt_laps_domain_password : Le mot de passe pour opt_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 politique Ne 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 LAPS
  • opt_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 sur True lorsque opt_laps_skip_reboot est True 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.
À propos du projet

Install LAPS on a Windows host

Installer
ansible-galaxy install jborean93.win_laps
Licence
mit
Téléchargements
1.4k
Propriétaire