# Solution de mot de passe administrateur local (LAPS)

Notre solution Local Administrator Password Solution (LAPS) a été conçue pour résoudre le problème de l’utilisation de comptes identiques dans votre environnement pour l’assistance utilisateur ou l’élévation de privilèges. LAPS crée des mots de passe forts pour les comptes locaux, qui sont stockés en toute sécurité dans *votre propre* [Azure Key Vault](https://docs.realmjoin.com/fr/agent-realmjoin/realmjoin-client/local-admin-password-solution-laps/keyvault). Pour l’audit, vous avez la possibilité de fournir une [Application Insights](https://docs.realmjoin.com/fr/agent-realmjoin/realmjoin-client/local-admin-password-solution-laps/application-insights) instance ou un [Log Analytics Workspace](https://docs.realmjoin.com/fr/journaux/log-analytics).

## Prérequis

Avant de commencer avec LAPS, vous devez remplir les prérequis suivants :

* Configurer [Application Insights](#application-insights) OU [Log Analytics Workspace](https://docs.realmjoin.com/fr/journaux/log-analytics)
* Activer explicitement les types de comptes LAPS à l’aide des paramètres de groupe (ou d’utilisateur)

Nous examinerons les deux ci-dessous.

## Journalisation

Application Insights et Log Analytics jouent un rôle important lors de l’utilisation de LAPS. Les demandes de mot de passe déclenchées par LAPS sont consignées par RealmJoin et envoyées vers l’instance Application Insights ou le Log Analytics Workspace configuré. De cette façon, vous avez une visibilité complète sur qui récupère les mots de passe.&#x20;

Il suffit de choisir un seul mode de journalisation — soit Application Insights, soit Log Analytics. La journalisation est facultative lors de la configuration de LAPS et peut être ignorée si votre organisation n’a pas besoin de ces informations.

Vous trouverez plus de détails dans nos [Application Insights](https://docs.realmjoin.com/fr/agent-realmjoin/realmjoin-client/local-admin-password-solution-laps/application-insights) et [articles Log Analytics.](https://docs.realmjoin.com/fr/journaux/log-analytics) articles.

## Paramètres de groupe

LAPS prend en charge les paramètres globaux suivants.

| Clé du paramètre                   | Valeur par défaut | Description                                                                                                                                                         |
| ---------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LocalAdminManagement.Inactive      | `false`           | Définir sur `true` pour désactiver cette fonctionnalité. Cela nettoiera et **supprimera** tous les comptes locaux.                                                  |
| LocalAdminManagement.CheckInterval | `"01:00"`         | Intervalle pour les vérifications de configuration internes ([HH:mm](https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings)) |

Les types de comptes suivants sont pris en charge.

| Clé du paramètre                       | Valeur par défaut        |
| -------------------------------------- | ------------------------ |
| LocalAdminManagement.EmergencyAccount  | `undefined` (*inactive*) |
| LocalAdminManagement.SupportAccount    | `undefined` (*inactive*) |
| LocalAdminManagement.PrivilegedAccount | `undefined` (*inactive*) |

Chaque type de compte peut être configuré indépendamment à l’aide des paramètres communs suivants. Certains types disposent de paramètres spéciaux décrits dans leur section respective.

{% hint style="info" %}
Dans le tableau suivant `$` représente l’un des trois `Account` objets JSON ci-dessus.
{% endhint %}

| Clé du paramètre   | Valeur par défaut                                                    | Description                                                                                    |
| ------------------ | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| $.NamePattern      | `"ADM-{HEX:8}"`                                                      | Spécial. Voir [compte privilégié](#privileged-account). Doit comporter 20 caractères ou moins. |
| $.DisplayName      | `"RealmJoin Local Administrator"`                                    | Nom d’affichage                                                                                |
| $.PasswordCharSet  | `"!#%+23456789:=?@ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnopqrstuvwxyz"` | Jeu de caractères pour le générateur de mots de passe (exclut les caractères ressemblants)     |
| $.PasswordLength   | 20                                                                   | Longueur du mot de passe                                                                       |
| $.PasswordPreset   | 0                                                                    | Modèles de mot de passe prédéfinis, voir [Génération de mot de passe](#password-generation).   |
| $.MaxStaleness     | Spécial. Voir [Recréation du compte](#account-recreation).           | Modèles de mot de passe prédéfinis, voir [Génération de mot de passe](#password-generation).   |
| $.OnDemand         | Spécial. Voir [compte d’assistance](#support-account).               | Créer le compte uniquement lorsqu’il est demandé.                                              |
| $.Expiration       | Spécial. Voir [compte d’assistance](#support-account).               | Date d’expiration fixe du compte (format ISO-8601)                                             |
| $.PasswordRenewals | Spécial. Voir [compte privilégié](#privileged-account).              | Date d’expiration fixe du compte (format ISO-8601)                                             |

## Mot de passe **génération**

Par défaut, de vrais mots de passe aléatoires seront générés sur la base des paramètres `PasswordCharSet` et `PasswordLength`. Le jeu de caractères par défaut a été choisi pour exclure les caractères visuellement similaires comme `I1l` et `O0`. Le générateur de nombres aléatoires cryptographique de Windows est utilisé pour fournir une aléa de haute qualité pour la génération.

{% hint style="info" %}
RealmJoin gérera automatiquement les problèmes liés aux exigences de complexité de Windows lors de la création du compte. Comme pour tous les mots de passe vraiment aléatoires, il est parfois possible que les mots de passe générés ne satisfassent pas aux exigences de complexité. Si cela se produit, RealmJoin effectuera jusqu’à trois cycles de génération de mots de passe jusqu’à ce qu’un mot de passe valide soit généré. Il subsiste une faible probabilité statistique que tous les essais soient dépassés. Dans ce cas, vous verrez un message dans le fichier journal du service similaire à `Tous les essais ont été dépassés`. Le processus complet redémarrera lors de la prochaine exécution des vérifications de configuration internes (voir le paramètre `CheckInterval`).
{% endhint %}

Les mots de passe véritablement aléatoires peuvent être difficiles à utiliser, c’est pourquoi des modèles prédéfinis spéciaux sont également pris en charge.

* Préréglage 1 ⇒ `[1 majuscule][3 minuscule][4 chiffre]`
  * `Tuci9325`
  * `Lnso5050`
  * `Khwn2174`
* Préréglage 2 ⇒ `Key-[6 chiffres]-[6 chiffres]-[6 chiffres]-[6 chiffres]-[6 chiffres]-[6 chiffres]-[6 chiffres]-[6 chiffres]`
  * Le paramètre PasswordLength est pris en charge ! Ce paramètre détermine le nombre de blocs de chiffres.
  * `Key-012993-230956-976475` (PasswordLength = 3)
  * `Key-497254-679158-631224-278319` (PasswordLength = 4)
  * `Key-506179-861369-706482-613244-730371-097689-404350-340073` (par défaut)
* Préréglage 3 ⇒ `[mot]-[mot]-[mot]-[mot]-[mot]-[mot]` généré à partir de [Eff Long List](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt)​
  * Le paramètre PasswordLength est pris en charge ! Ce paramètre détermine le nombre de mots.
  * `Exciting-Unearth-Cried-87` (PasswordLength = 3)
  * `Neurology-Astute-Debate-Marshy-15` (PasswordLength = 4)
  * `Marshy-Darkened-Undertake-Reset-Shrouded-Wise-26` (par défaut)

## Recréation du compte

Après qu’un compte a été utilisé, RealmJoin peut être configuré pour supprimer et recréer le compte à l’aide du paramètre `MaxStaleness` . De cette façon, les comptes seront toujours propres. S’ils ne sont pas configurés, les comptes ne seront jamais recréés et resteront indéfiniment.

{% hint style="danger" %}
RealmJoin supprimera le compte et son profil. **Tous les fichiers seront définitivement supprimés.**

Si un compte est toujours utilisé — toujours connecté, session ouverte, application lancée avec comme ADM et toujours en cours d’exécution — le compte expirera quand même, mais ne pourra pas être supprimé. **Un nouveau compte ne peut pas être créé tant que l’ancien compte n’a pas été supprimé.**
{% endhint %}

## Évitement des conflits

Même si RealmJoin fait de son mieux pour éviter les conflits de nommage lors de la gestion des comptes sur un appareil, il existe toujours la possibilité que des comptes existent déjà sur un appareil, provoquant des conflits. C’est pourquoi le paramètre `NamePattern` prend en charge ces jetons ayant une signification particulière pour RealmJoin. Les jetons seront transformés par la fonction spécifiée et son paramètre de longueur suivant les deux-points.

* `{HEX:8}` ⇒ `F4D027EF`, `B3C4F74E`, ... (caractères hexadécimaux aléatoires)
* `{DEC:6}` ⇒ `506453`, `066946`, ... (caractères décimaux aléatoires)
* `{COUNT:2}` ⇒ `01`, `02`, ... (compteur, restera `01` s’il n’y a pas de conflits)

## Compte d’urgence

Ce type de compte est votre accès de secours à l’appareil en cas de défaillance catastrophique. Il sera créé de manière proactive. Ainsi, vous aurez toujours un accès pour la reprise. Nous recommandons de le configurer pour la [recréation du compte](#account-recreation).

*Exemple*

Clé `LocalAdminManagement.EmergencyAccount` (pour les paramètres communs, voir [paramètres de groupe](#group-settings))

```json
{
  "NamePattern": "ADM-Emergency-{HEX:4}",
  "DisplayName": "Emergency Access",
  "MaxStaleness": "04:00",
  "PasswordPreset": 2
}
```

## compte d’assistance

Ce type de compte peut être configuré pour une création à la demande. Il est conçu pour être utilisé dans une fenêtre temporelle limitée de 12 heures en mode à la demande.

{% hint style="danger" %}
Les comptes d’assistance et leurs profils seront supprimés 12 heures après la demande du compte, quelle que soit l’utilisation (après la déconnexion de l’utilisateur d’assistance). **Tous les fichiers seront définitivement supprimés.**
{% endhint %}

{% hint style="danger" %}
Lors de l’utilisation du mode à la demande, la recréation du compte (`MaxStaleness`) *ne doit pas être utilisée*. Cela peut interférer avec votre flux de travail d’assistance.
{% endhint %}

Exigences pour le flux de travail à la demande :

* Le mode est activé en définissant `"OnDemand": true`.
* Un utilisateur est connecté
* L’agent RealmJoin est en cours d’exécution
* L’appareil est connecté à Internet
* L’appareil peut joindre le backend RealmJoin

{% hint style="info" %}
Il peut falloir jusqu’à 30 minutes pour que l’agent RealmJoin détecte la demande. L’utilisateur connecté peut accélérer ce processus en choisissant « Sync this device » dans le menu de la zone de notification RealmJoin.
{% endhint %}

Lorsqu’il n’est pas en mode à la demande, il sera créé de manière proactive.

*Exemple*

Clé `LocalAdminManagement.SupportAccount` (pour les paramètres communs, voir [paramètres de groupe](#group-settings))

```json
{
  "NamePattern": "ADM-Support-User-{HEX:2}",
  "DisplayName": "Support User",
  "OnDemand": true,
  "PasswordPreset": 1
}
```

## compte privilégié

Ce type de compte est conçu pour être utilisé par des utilisateurs expérimentés qui ont besoin de privilèges administrateur réguliers mais contrôlés sur leurs propres appareils. Une date d’expiration fixe du compte peut être spécifiée (`Expiration`).

{% hint style="danger" %}
Pour ce type de compte, la recréation (`MaxStaleness`) *ne doit pas être utilisée*. L’objectif est d’avoir un compte persistant pour vos utilisateurs.
{% endhint %}

Les rotations forcées de mot de passe sont prises en charge :

1. `2021-11-20T12:34:56+01:00`: Tout horodatage explicite au format ISO-8601. Plusieurs horodatages peuvent être spécifiés.
2. `DayAfterCreate`: Après la création du compte, le mot de passe du compte sera modifié. Cela est utile lorsque les utilisateurs sont censés configurer Windows Hello pour des options de connexion supplémentaires.
3. `Annuel`, `Mensuel` ou `Hebdomadaire`: L’intervalle le plus court est prioritaire (`Hebdomadaire` > `Mensuel` > `Annuel`). Si aucune autre condition n’est spécifiée, les valeurs par défaut sont « 1er jour du mois » pour `Mensuel` ou « lundi » pour `Hebdomadaire`. De plus, `Annuel` est défini par défaut sur la date de dernière définition du mot de passe + 365 jours. Les sept jours de la semaine peuvent être spécifiés. Donc si `Wednesday` et `Hebdomadaire` sont spécifiés, le mot de passe sera modifié chaque mercredi. Si `Wednesday` et `Mensuel` sont spécifiés, le mot de passe sera modifié le premier mercredi de chaque mois. Combiner `Annuel` avec les jours de la semaine fixera l’échéance au jour de semaine spécifié le plus tard possible juste avant l’expiration des 365 jours.

*Exemple*

Clé `LocalAdminManagement.PrivilegedAccount` (pour les paramètres communs, voir [paramètres de groupe](#group-settings))

```json
{
  "NamePattern": "Privileged-User-{COUNT:1}",
  "DisplayName": "Privileged User",
  "PasswordRenewals": ["DayAfterCreate", "Monthly", "Thursday"],
  "PasswordPreset": 3,
  "PasswordLength": 3
}
```

## Accéder aux mots de passe

Utilisez le RealmJoin Portal pour accéder aux mots de passe.<br>

<figure><img src="https://1100180853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FnrPze5jW4F0Fdr83WluM%2Fimage.png?alt=media&#x26;token=5c42cafc-c92a-4803-8ab7-254e0df392e0" alt=""><figcaption></figcaption></figure>

## Activer le libre-service

Les utilisateurs peuvent accéder aux comptes créés sur leurs *propres* appareils (ils sont « PrimaryUser ») lorsque la fonctionnalité est activée à l’aide du *RealmJoin Portal* à partir de la version `2022.5.1`. Pour activer, définissez un paramètre à l’aide de la clé `Allow.SelfLAPS`. Ce paramètre peut être défini sur des groupes et des utilisateurs. Comme pour tous les paramètres préfixés par `Allow.*` , ils sont combinés par un ET entre l’utilisateur et tous ses groupes.

```json
{
  "EmergencyAccount": true,
  "SupportAccount": true,
  "PrivilegedAccount": true
}
```

La valeur peut aussi être un simple booléen `true`/`false`. Cela peut être utilisé comme caractère générique et englobe tous les types de comptes actuels et futurs. Veuillez noter que cela n’est recommandé que pour désactiver l’accès (`false`).

{% hint style="info" %}
Dans le passé, il était recommandé de définir ce paramètre sur `true`. Cependant, à mesure que nous continuons à étendre RealmJoin, de nouveaux types de comptes seront ajoutés. Il est donc fortement recommandé de migrer toutes les valeurs `true` vers la notation objet plus explicite
{% endhint %}

Un exemple de configuration pourrait ressembler à ceci :

| Groupe                           |                                                           | Commentaire                                                                                                                                                                    |
| -------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Tous les travailleurs à distance | `{ "EmergencyAccount": true }`                            | Les travailleurs à distance peuvent accéder au compte d’urgence de leurs propres appareils.                                                                                    |
| Tous les développeurs            | `{ "EmergencyAccount": true, "PrivilegedAccount": true }` | Les développeurs peuvent accéder à leur compte d’urgence et à leur compte privilégié — qu’ils soient ou non des travailleurs à distance.                                       |
| Tous les stagiaires              | `false`                                                   | Les stagiaires ne doivent jamais avoir accès à aucun des trois types de compte **et** à tous les futurs types, même s’ils sont des travailleurs à distance ou des développeurs |

{% hint style="info" %}
SelfLAPS est plus puissant que le rôle LAPS standard. Cela dit, si un utilisateur administrateur administre LAPS avec son compte utilisateur habituel, il ne pourra pas administrer son propre LAPS.

Atténuation : activez SelfLAPS pour ces comptes administrateur ou utilisez des comptes administrateur séparés.
{% endhint %}
