> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/fr/automatisation/runbooks/runbook-references/org/security/sync-mfa-secure-users-to-group_scheduled.md).

# Synchronisation planifiée des utilisateurs MFA sécurisés vers un groupe

### Description

Ce runbook synchronise un groupe Entra ID avec tous les utilisateurs membres ayant au moins une méthode d'authentification "sécurisée" enregistrée, sur la base du rapport d'enregistrement des méthodes d'authentification Entra ID. Les groupes de méthodes considérés comme sécurisés sont configurables via des interrupteurs (Passkeys/FIDO2, identifiants de plateforme, application Microsoft Authenticator, OTP logiciel, OTP matériel, authentification par certificat). Les utilisateurs qui n'ont plus de méthode sécurisée enregistrée sont retirés du groupe. Un mode strict optionnel ("SecureOnly") disqualifie en outre les utilisateurs ayant n'importe quelle méthode non sécurisée (téléphone, e-mail, questions de sécurité) enregistrée en plus de leur méthode sécurisée. Les utilisateurs invités et les membres de groupe non utilisateurs ne sont jamais modifiés.

Optionnellement, un rapport détaillé peut être envoyé par e-mail et/ou téléversé vers un Azure Storage Account (en renvoyant des liens de téléchargement temporaires). Le rapport contient des fichiers CSV et un classeur Excel formaté avec une feuille de couverture d'informations (paramètres choisis et nombres de résultats), les modifications effectuées et une évaluation par utilisateur de tous les utilisateurs membres. Les fichiers de rapport ne sont générés que lorsque l'e-mail ou le lien de téléchargement est activé.

### Fonctionnement

Le runbook lit le rapport d'enregistrement des méthodes d'authentification Entra ID [userRegistrationDetails](https://learn.microsoft.com/en-us/graph/api/authenticationmethodsroot-list-userregistrationdetails) (`userRegistrationDetails`) et met en miroir le groupe cible par rapport à tous les **utilisateurs membres** qui sont éligibles :

* Un utilisateur est éligible lorsqu'au moins une de ses méthodes enregistrées appartient à l'ensemble sécurisé configuré. **sécurisée** ensemble.
* En **mode strict** (`SecureOnly`), un utilisateur ne doit en outre avoir aucune méthode de l'ensemble **non sécurisé** enregistrée — un utilisateur passkey qui conserve également un facteur SMS n'est pas éligible.
* Les utilisateurs éligibles qui ne sont pas encore membres du groupe sont ajoutés ; les membres qui ne sont plus éligibles sont supprimés (synchronisation en miroir).
* Les utilisateurs invités ne sont jamais ajoutés ni supprimés. Les membres du groupe non utilisateurs (appareils, principaux de service, groupes imbriqués) ne sont jamais modifiés.

Le groupe cible doit être géré exclusivement par ce runbook.

### Groupes de méthodes sécurisées

Chaque interrupteur contrôle quelles `valeurs methodsRegistered` sont comptées comme sécurisées :

| Interrupteur                        | Par défaut | Valeurs couvertes                                                                    |
| ----------------------------------- | ---------- | ------------------------------------------------------------------------------------ |
| Passkeys / clés de sécurité FIDO2   | activé     | `fido2SecurityKey`, `passKeyDeviceBound`, `passKeyDeviceBoundAuthenticator`          |
| Identifiants de plateforme          | activé     | `windowsHelloForBusiness`, `passKeyDeviceBoundWindowsHello`, `macOsSecureEnclaveKey` |
| Application Microsoft Authenticator | activé     | `microsoftAuthenticatorPush`, `microsoftAuthenticatorPasswordless`                   |
| OTP logiciel                        | désactivé  | `softwareOneTimePasscode`                                                            |
| OTP matériel                        | désactivé  | `hardwareOneTimePasscode`                                                            |
| Authentification par certificat     | activé     | `certificateBasedAuthentication`                                                     |

### Mode strict (SecureOnly)

Avec le mode strict activé, les utilisateurs ayant enregistré l'une des méthodes non sécurisées intégrées suivantes ne sont jamais éligibles :

`mobilePhone`, `alternateMobilePhone`, `officePhone`, `email`, `securityQuestion`

Si une méthode se retrouve à la fois dans l'ensemble sécurisé et dans l'ensemble non sécurisé (possible uniquement via les paramètres de remplacement), la méthode non sécurisée l'emporte — de tels utilisateurs ne sont jamais éligibles en mode strict. Le runbook avertit à ce sujet au démarrage.

### Référence de classification des méthodes

Utilisez les valeurs Graph exactes de ce tableau lorsque vous construisez les chaînes de remplacement séparées par des virgules :

| `valeurs methodsRegistered` value    | Nom convivial                                                       | Classification | Couvert par l'interrupteur (par défaut)      |
| ------------------------------------ | ------------------------------------------------------------------- | -------------- | -------------------------------------------- |
| `fido2SecurityKey`                   | Clé de sécurité FIDO2                                               | Sécurisé       | Passkeys / FIDO2 (activé)                    |
| `passKeyDeviceBound`                 | Passkey (liée à l'appareil)                                         | Sécurisé       | Passkeys / FIDO2 (activé)                    |
| `passKeyDeviceBoundAuthenticator`    | Passkey dans Microsoft Authenticator                                | Sécurisé       | Passkeys / FIDO2 (activé)                    |
| `windowsHelloForBusiness`            | Windows Hello for Business                                          | Sécurisé       | Identifiants de plateforme (activé)          |
| `passKeyDeviceBoundWindowsHello`     | Passkey dans Windows Hello                                          | Sécurisé       | Identifiants de plateforme (activé)          |
| `macOsSecureEnclaveKey`              | Identifiant de plateforme pour macOS                                | Sécurisé       | Identifiants de plateforme (activé)          |
| `microsoftAuthenticatorPush`         | Microsoft Authenticator (notification push)                         | Sécurisé       | Application Microsoft Authenticator (activé) |
| `microsoftAuthenticatorPasswordless` | Microsoft Authenticator (connexion sans mot de passe par téléphone) | Sécurisé       | Application Microsoft Authenticator (activé) |
| `softwareOneTimePasscode`            | Jeton OATH logiciel (application TOTP)                              | Sécurisé       | OTP logiciel (désactivé)                     |
| `hardwareOneTimePasscode`            | Jeton OATH matériel                                                 | Sécurisé       | OTP matériel (désactivé)                     |
| `certificateBasedAuthentication`     | Authentification par certificat                                     | Sécurisé       | Authentification par certificat (activé)     |
| `mobilePhone`                        | Téléphone (SMS / appel vocal)                                       | Non sécurisé   | liste non sécurisée intégrée                 |
| `alternateMobilePhone`               | Téléphone alternatif (appel vocal)                                  | Non sécurisé   | liste non sécurisée intégrée                 |
| `officePhone`                        | Téléphone professionnel (appel vocal)                               | Non sécurisé   | liste non sécurisée intégrée                 |
| `email`                              | E-mail (SSPR uniquement)                                            | Non sécurisé   | liste non sécurisée intégrée                 |
| `securityQuestion`                   | Questions de sécurité (SSPR uniquement)                             | Non sécurisé   | liste non sécurisée intégrée                 |
| `temporaryAccessPass`                | Temporary Access Pass                                               | Neutre         | n'est jamais éligible, ne disqualifie jamais |

Les valeurs Graph inconnues ou futures sont traitées comme neutres, sauf si elles sont explicitement listées dans un paramètre de remplacement.

### Paramètres de remplacement

Les deux paramètres de remplacement sont masqués par défaut et destinés à la personnalisation du runbook RealmJoin :

* **SecureMethodsOverride** — liste de valeurs séparées par des virgules qui définit l'ensemble sécurisé. Lorsqu'il est défini, `valeurs methodsRegistered` tous **les interrupteurs de groupe de méthodes sont ignorés. Exemple :** fido2SecurityKey,passKeyDeviceBound,passKeyDeviceBoundAuthenticator,windowsHelloForBusiness `fido2SecurityKey,passKeyDeviceBound,passKeyDeviceBoundAuthenticator,windowsHelloForBusiness`
* **UnsecureMethodsOverride** — liste séparée par des virgules qui remplace la liste non sécurisée intégrée. Évaluée uniquement en mode strict. Exemple : `mobilePhone,alternateMobilePhone,officePhone,email,securityQuestion,softwareOneTimePasscode`

Les valeurs inconnues génèrent un avertissement mais sont tout de même évaluées, de sorte que les futures valeurs Graph puissent être utilisées avant que cette documentation ne soit mise à jour.

### Rapport par e-mail et liens de téléchargement

Optionnellement, un rapport détaillé peut être fourni - particulièrement utile pour examiner la toute première exécution (idéalement en combinaison avec le mode simulation) :

* **Envoyer le rapport par e-mail** (`SendEmail`, désactivé par défaut) : envoie le rapport aux destinataires configurés. Le champ destinataire n'apparaît que lorsque l'e-mail est activé. Nécessite le `RJReport.EmailSender` paramètre du tenant (voir la [configuration du rapport par e-mail](https://github.com/realmjoin/realmjoin-runbooks/tree/master/docs/general/setup-email-reporting.md)).
* **Créer des liens de téléchargement de fichiers** (`CreateDownloadLink`, désactivé par défaut) : téléverse les fichiers du rapport vers un Azure Storage Account et renvoie des liens de téléchargement temporaires (utilise les `RJReport.StorageAccount.*` paramètres du tenant).

Les fichiers de rapport ne sont générés que lorsqu'au moins une des deux options est activée. Le rapport se compose de :

* **mfa-secure-users-group-sync-changes.csv** - toutes les modifications effectuées (ou, en simulation, en attente) avec les détails des méthodes par utilisateur
* **mfa-secure-users-group-sync-all-users.csv** - l'évaluation de chaque utilisateur membre : méthodes enregistrées, classification sécurisée/non sécurisée, éligibilité et appartenance au groupe
* **mfa-secure-users-group-sync-report.xlsx** - les mêmes données sous forme de classeur Excel formaté : une feuille de couverture "Info" avec les paramètres choisis et les nombres de résultats, une feuille "Changes" (les utilisateurs ajoutés sont surlignés en vert, les supprimés en rouge) et une feuille "All Users"

Dans les grands tenants, les fichiers CSV bruts peuvent dépasser la limite de taille des pièces jointes des e-mails (Graph rejette les mails d'environ 4 Mo au total). Lorsque les fichiers CSV dépassent un budget de 2,5 Mo, l'e-mail est envoyé avec uniquement le classeur Excel en pièce jointe (qui contient les données complètes sous forme compressée) et une note expliquant l'omission ; un envoi complet de taille trop grande est également réessayé automatiquement avec le seul classeur. L'envoi via lien de téléchargement inclut toujours tous les fichiers quelle que soit leur taille.

### Notes et limites

* Le rapport d'enregistrement nécessite un **licence Entra ID P1 ou P2** .
* Le rapport n'inclut pas **les utilisateurs désactivés** ou supprimés en douceur — ces comptes sont retirés du groupe lors de l'exécution suivante.
* Les données du rapport peuvent accuser un retard par rapport aux changements d'enregistrement récents ; une méthode nouvellement enregistrée peut nécessiter un cycle de synchronisation pour être prise en compte.
* Le runbook traite les grands tenants (20k+ utilisateurs) via des lectures paginées du rapport et des écritures groupées avec relances automatiques en cas de limitation.

### Planification

La synchronisation est idempotente — une seule planification récurrente (par ex. quotidienne) maintient le groupe à jour, et les relances après des échecs partiels se réparent d'elles-mêmes. Recommandation : exécutez une fois avec **Simulation (WhatIf)** activée et examinez la sortie du job avant de planifier le runbook en mode réel.

### Emplacement

Organization → Security → Sync MFA Secure Users To Group (Scheduled)

**Nom complet du runbook**

rjgit-org\_security\_sync-MFA-secure-users-to-group\_scheduled

### Autorisations

#### Autorisations d'application

* **Type**: Microsoft Graph
  * AuditLog.Read.All
  * Group.Read.All
  * GroupMember.ReadWrite.All
  * User.Read.All
  * Organization.Read.All
  * Mail.Send

### Paramètres

#### TargetGroupId

Le groupe Entra ID vers lequel synchroniser. Les membres de ce groupe seront gérés exclusivement par ce runbook.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | true   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### IncludePasskeys

Compter les passkeys et les clés de sécurité FIDO2 comme sécurisées (fido2SecurityKey, passKeyDeviceBound, passKeyDeviceBoundAuthenticator).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Vrai    |
| Type              | Booléen |

#### IncludePlatformCredentials

Compter les identifiants de plateforme comme sécurisés (windowsHelloForBusiness, passKeyDeviceBoundWindowsHello, macOsSecureEnclaveKey).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Vrai    |
| Type              | Booléen |

#### IncludeMicrosoftAuthenticator

Compter l'application Microsoft Authenticator comme sécurisée (microsoftAuthenticatorPush, microsoftAuthenticatorPasswordless).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Vrai    |
| Type              | Booléen |

#### IncludeSoftwareOtp

Compter les OTP logiciels / applications TOTP d'authentificateur comme sécurisés (softwareOneTimePasscode).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### IncludeHardwareOtp

Compter les jetons OTP matériels comme sécurisés (hardwareOneTimePasscode).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### IncludeCertificateBasedAuth

Compter l'authentification par certificat comme sécurisée (certificateBasedAuthentication).

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Vrai    |
| Type              | Booléen |

#### SecureOnly

Mode strict : les utilisateurs ayant enregistré n'importe quelle méthode non sécurisée (mobilePhone, alternateMobilePhone, officePhone, email, securityQuestion) ne sont jamais éligibles, même s'ils ont aussi une méthode sécurisée. Ils sont retirés du groupe s'ils en sont déjà membres.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### SecureMethodsOverride

Optionnel. Liste séparée par des virgules des valeurs methodsRegistered qui définissent l'ensemble sécurisé. Lorsqu'il est défini, TOUS les interrupteurs de groupes de méthodes sont ignorés. Voir la documentation du runbook pour toutes les valeurs connues.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### UnsecureMethodsOverride

Optionnel. Liste séparée par des virgules des valeurs methodsRegistered qui remplacent la liste non sécurisée intégrée. Évaluée uniquement en mode strict (SecureOnly).

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### WhatIfMode

Simulation : journalise quels utilisateurs seraient ajoutés ou supprimés sans modifier le groupe.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### SendEmail

Si activé, le rapport est envoyé par e-mail avec des pièces jointes CSV et Excel (xlsx). Désactivé par défaut.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### EmailTo

Adresse(s) e-mail des destinataires du rapport. Peut être une seule adresse ou plusieurs adresses séparées par des virgules (chaîne). Utilisé uniquement lorsque SendEmail est activé.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### EmailFrom

L'adresse e-mail de l'expéditeur. Provient des paramètres du tenant RJReport.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### ReportFileFormat

Contrôle quels formats de fichiers de rapport sont générés et livrés : « CSV uniquement », « CSV et XLSX » (par défaut) ou « XLSX uniquement ».

| Propriété         | Valeur      |
| ----------------- | ----------- |
| Obligatoire       | faux        |
| Valeur par défaut | CSV et XLSX |
| Type              | Chaîne      |

#### CreateDownloadLink

Si activé, les fichiers du rapport sont téléversés vers un Azure Storage Account et des liens de téléchargement à durée limitée sont renvoyés. Désactivé par défaut.

| Propriété         | Valeur  |
| ----------------- | ------- |
| Obligatoire       | faux    |
| Valeur par défaut | Faux    |
| Type              | Booléen |

#### ContainerName

Nom du conteneur de stockage utilisé pour le téléversement. Configuré par runbook (et non un paramètre global RJReport).

| Propriété         | Valeur                         |
| ----------------- | ------------------------------ |
| Obligatoire       | faux                           |
| Valeur par défaut | sync-mfa-secure-users-to-group |
| Type              | Chaîne                         |

#### ResourceGroupName

Groupe de ressources qui contient le Storage Account. Provenant des paramètres du Tenant RJReport.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### StorageAccountName

Nom du Storage Account utilisé pour le téléversement. Provenant des paramètres du Tenant RJReport.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut |        |
| Type              | Chaîne |

#### LinkExpiryDays

Nombre de jours avant l’expiration du lien de téléchargement généré. Provenant des paramètres du Tenant RJReport.

| Propriété         | Valeur |
| ----------------- | ------ |
| Obligatoire       | faux   |
| Valeur par défaut | 6      |
| Type              | Int32  |

[Retour à l'aperçu de la référence des runbooks](/fr/automatisation/runbooks/runbook-references.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/fr/automatisation/runbooks/runbook-references/org/security/sync-mfa-secure-users-to-group_scheduled.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
