Guide de l'administrateur informatique (MDM)
Déploiement via MDM
Network Share Mounter peut être entièrement configuré à l’aide d’un profil de configuration macOS standard. Tous les paramètres sont lus depuis le domaine de préférences de.fau.rrze.NetworkShareMounter.
Pour simplifier la création de profils, nous fournissons un schéma de manifeste JSON pour Jamf Pro et un manifeste pour iMazing Profile Editor.
Pour la distribution via AutoPKG, des recettes sont disponibles sur de.fau.rrze.pkg.networkShareMounter.
1. Partages gérés (managedNetworkShares)
Le tableau managedNetworkShares définit les partages réseau déployés centralement pour les utilisateurs. Chaque entrée est un dictionnaire contenant les clés suivantes :
| Clé | Type | Obligatoire | Description |
|---|---|---|---|
networkShare | String | ✓ | L’URL du partage, par ex. smb://fileserver.example.com/share. L’espace réservé %USERNAME% est remplacé à l’exécution par le nom de connexion macOS de l’utilisateur. |
authType | String | ✓ | Méthode d’authentification : krb (Kerberos/SSO), pwd (nom d’utilisateur + mot de passe) ou guest. Par défaut : krb. |
mountPoint | String | Remplace le nom du répertoire local utilisé comme point de montage. Pertinent uniquement lorsque l’emplacement de montage n’est pas /Volumes. Laisser vide pour utiliser le nom du partage. | |
displayName | String | Nom affiché pour ce partage dans l’application. Utilise le nom du partage si non défini. | |
username | String | Prédéfinit un nom d’utilisateur pour les partages de type pwd. Si omis, l’utilisateur sera invité à en saisir un. | |
externalKerberosManagement | String | Définir sur "true" si les tickets Kerberos pour ce partage sont gérés par un outil externe (liaison AD, Jamf Connect, Apple SSO Extension). NSM montera le partage sans interférer avec la gestion des tickets et n’affichera pas l’avertissement « profil requis ». Pertinent uniquement pour authType: krb. | |
kerberosRealm | String | Remplacement du realm Kerberos par partage. Utilisé conjointement avec externalKerberosManagement pour identifier le profil externe à assigner. Utilise par défaut le paramètre global kerberosRealm. | |
autoMount | String | "true" (par défaut) : le partage est monté automatiquement au démarrage et lors des changements réseau. "false" : le partage apparaît dans le menu mais n’est jamais monté automatiquement — l’utilisateur peut le monter à la demande. |
Exemple de payload :
<key>managedNetworkShares</key>
<array>
<!-- Partage Kerberos, monté automatiquement, gestion externe des tickets -->
<dict>
<key>networkShare</key>
<string>smb://fileserver.example.com/global</string>
<key>authType</key>
<string>krb</string>
<key>externalKerberosManagement</key>
<string>true</string>
<key>displayName</key>
<string>Global Data</string>
</dict>
<!-- Partage par mot de passe, répertoire personnel par utilisateur, montage manuel uniquement -->
<dict>
<key>networkShare</key>
<string>smb://home.example.com/%USERNAME%</string>
<key>authType</key>
<string>pwd</string>
<key>mountPoint</key>
<string>My Home Drive</string>
<key>autoMount</key>
<string>false</string>
</dict>
</array>
Remarque : le tableau networkShares hérité de la version 2 est encore accepté pour la compatibilité ascendante, mais ne doit pas être utilisé dans les nouveaux profils.
2. Authentification et Kerberos
Ces clés configurent la manière dont NSM gère les tickets Kerberos et l’identité des utilisateurs.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
kerberosRealm | String | — | Domaine Kerberos/AD pour l’authentification des utilisateurs (par ex. EXAMPLE.COM). Lorsqu’il est configuré, NSM gère automatiquement l’obtention et le renouvellement des tickets Kerberos. Requis pour le SSO Kerberos géré par l’application. |
kerberosProfileDisplayName | String | — | Nom d’affichage convivial pour le profil d’authentification Kerberos dans les préférences de l’application. Si non défini, le nom du realm (par ex. EXAMPLE.COM) est utilisé tel quel. Utile lorsqu’un nom lisible comme « Réseau d'entreprise » est préférable à la chaîne technique du realm. |
usernameOverride | String | — | Remplace la variable %USERNAME% utilisée dans les chemins de partages. À utiliser lorsque le nom de connexion macOS local diffère du nom d’utilisateur AD ou réseau. |
Gestion de l’expiration des mots de passe
Lorsque kerberosRealm est configuré, NSM peut avertir les utilisateurs avant l’expiration de leur mot de passe AD. Deux seuils indépendants contrôlent le comportement des avertissements :
| Clé | Type | Par défaut | Description |
|---|---|---|---|
ExpirationCountdownStartDay | Integer | 14 | Avertissement passif. Nombre de jours avant l’expiration du mot de passe à partir duquel un compte à rebours silencieux apparaît dans la barre de menus. L’utilisateur ne le voit qu’en ouvrant le menu — aucune interruption du flux de travail. Définir sur 0 pour désactiver entièrement toutes les fonctions d’expiration. Correspond à la clé homonyme de l’Apple Kerberos SSO Extension. |
ExpirationNotificationStartDay | Integer | 14 | Avertissement actif. Nombre de jours avant l’expiration à partir duquel une boîte de dialogue d’avertissement s’affiche automatiquement une fois par jour calendaire. Doit être défini en dessous de ExpirationCountdownStartDay pour que la boîte de dialogue n’interrompe l’utilisateur que lorsque l’expiration est vraiment imminente. Correspond à la clé homonyme de Jamf Connect / Apple Kerberos SSO Extension. |
passwordChangeURL | String | — | URL d’un portail web de libre-service pour les mots de passe (SSPR). Si définie, un bouton Modifier le mot de passe apparaît dans la boîte de dialogue d’expiration et ouvre cette URL dans le navigateur par défaut. Sinon, l’utilisateur peut modifier son mot de passe directement dans l’application (nécessite kerberosRealm). |
allowPasswordChange | Boolean | false | Lorsque true, un élément permanent Modifier le mot de passe… est affiché dans la barre de menus en permanence, même avant l’atteinte du seuil d’expiration. Il se transforme automatiquement en compte à rebours d’expiration lorsque le seuil est atteint. Si passwordChangeURL est également définie, le clic ouvre cette URL au lieu de la boîte de dialogue intégrée. Correspond à la clé homonyme de l’Apple Kerberos SSO Extension. |
Conseil — stratégie d’expiration à deux niveaux : Définissez
ExpirationCountdownStartDayà une valeur supérieure àExpirationNotificationStartDay. Exemple : le compte à rebours apparaît à 14 jours (passif, visible uniquement dans le menu), la boîte de dialogue à 7 jours (active, une fois par jour). DéfinirExpirationCountdownStartDaysur0désactive entièrement les deux avertissements.
3. Démarrage automatique et cycle de vie de l’application
Ces clés contrôlent si l’application démarre automatiquement à la connexion et comment elle se comporte à la fermeture.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
autostart | Boolean | false | Lorsqu’elle est déployée comme clé MDM verrouillée, la valeur est appliquée à chaque démarrage de l’application. Lorsqu’elle est déployée comme valeur par défaut non verrouillée, elle n’est appliquée qu’au premier démarrage — l’utilisateur conserve ensuite le contrôle. |
canChangeAutostart | Boolean | true | Contrôle uniquement la visibilité du bouton de démarrage automatique dans les préférences de l’application. Définir sur false pour le griser. N’affecte pas l’application MDM. Pour forcer l’état du démarrage automatique à chaque lancement, déployer autostart comme clé verrouillée. |
canQuit | Boolean | true | Lorsque true, l’utilisateur peut quitter l’application depuis la barre de menus. Définir sur false pour supprimer entièrement l’élément Quitter. |
unmountOnExit | Boolean | true | Lorsque true, tous les partages gérés sont automatiquement démontés à la fermeture de l’application. |
Fonctionnement de l’application du démarrage automatique (macOS 13+)
NSM utilise l’API SMAppService d’Apple pour s’enregistrer comme élément de connexion. macOS gère cela comme un LaunchAgent dans /Library/LaunchAgents/de.fau.rrze.NetworkShareMounter.plist (propriété root). Il s’agit du comportement macOS standard, avec les implications suivantes pour les administrateurs MDM :
- La commande
osascripttell application "System Events" to delete login item "…"ne fonctionne pas pour les éléments enregistrés avecSMAppService. System Events ne gère que les éléments de connexion utilisateur à l’ancienne. - Lorsque
autostart = falseest appliqué via une clé MDM verrouillée, NSM appelleSMAppService.unregister()à chaque démarrage et macOS supprime automatiquement le fichier LaunchAgent. - Si vous gérez le démarrage automatique via votre propre LaunchAgent ou payload d’éléments de connexion, définissez
autostart = falsecomme clé verrouillée pour empêcher NSM d’enregistrer un élément en conflit.
Empêcher les utilisateurs de désactiver le démarrage automatique
macOS 13 (Ventura) et les versions ultérieures permettent aux utilisateurs de désactiver librement les applications en arrière-plan via les Préférences Système. Pour forcer le démarrage automatique et empêcher les utilisateurs de désactiver NSM, déployez un payload Managed Login Items avec votre profil de configuration :
- Rule Type:
Bundle Identifier - Rule Value:
de.fau.rrze.NetworkShareMounter
Déclencher le démarrage automatique initial
En raison de la conception de sécurité de macOS, une application doit être lancée au moins une fois avant que l’enregistrement de l’élément de connexion prenne effet. Pour un déploiement silencieux sans interaction de l’utilisateur, configurez votre MDM pour lancer NSM une fois immédiatement après l’installation ou à la première connexion.
Exemple de politique Jamf :
- Trigger: Login
- Frequency: Once per user per computer
- Command:
sudo -u $(stat -f%Su /dev/console) open -a "/Applications/Network Share Mounter.app"
4. Interface utilisateur
Ces clés contrôlent l’emplacement de montage, l’apparence de la barre de menus et les éléments de menu accessibles aux utilisateurs.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
location | String | — | Chemin où les partages réseau sont montés. La valeur par défaut est un dossier localisé dans le répertoire personnel de l’utilisateur (par ex. ~/Network Shares). ⚠️ Il est vivement recommandé de laisser ce champ vide et d’utiliser la valeur par défaut. Le modifier peut briser l’intégration avec le Finder. |
cleanupLocationDirectory | Boolean | false | Lorsque true, NSM supprime les fichiers et répertoires vides dans l’emplacement de montage qui empêcheraient un partage d’être monté. Lire attentivement la documentation avant d’activer cette option — elle modifie le système de fichiers de l’utilisateur. |
showMountsInMenu | Boolean | true | Lorsque true, les partages montés et démontés sont listés individuellement dans la barre de menus pour un accès rapide en un clic. |
helpURL | String | — | URL vers le service d’assistance interne ou la documentation informatique de votre organisation. Lorsqu’elle est définie, un élément À propos de Network Share Mounter apparaît dans la barre de menus et ouvre cette URL dans le navigateur par défaut. |
Personnalisation des éléments du menu
Vous pouvez afficher, masquer ou désactiver les éléments individuels de la barre de menus à l’aide des clés suivantes. Définissez la valeur sur hidden pour supprimer complètement l’élément, ou sur disabled pour le griser sans le supprimer. Si une clé n’est pas définie, l’élément s’affiche normalement.
| Clé | Contrôle |
|---|---|
menuConnectShares | Action Monter les partages |
menuDisconnectShares | Action Démonter les partages |
menuShowSharesMountDir | Afficher les partages montés (ouvre le dossier de montage dans le Finder) |
menuShowShares | Éléments individuels des partages dans la liste |
menuSettings | Élément Préférences… |
menuCheckUpdates | Élément Rechercher des mises à jour… |
menuAbout | Élément À propos de Network Share Mounter (visible uniquement si helpURL est définie) |
menuQuit | Élément Quitter Network Share Mounter |
Exemple — masquer Préférences et Mises à jour aux utilisateurs :
<key>menuSettings</key>
<string>hidden</string>
<key>menuCheckUpdates</key>
<string>hidden</string>
5. Gestion des mises à jour logicielles
NSM utilise le framework Sparkle pour les mises à jour automatiques. Dans les environnements gérés, il est généralement préférable de le désactiver et de gérer les mises à jour via MDM.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
disableAutoUpdateFramework | Boolean | false | Interrupteur principal. Définir sur true pour désactiver entièrement le framework de mise à jour Sparkle. Lorsqu’il est désactivé, aucune vérification de mise à jour n’est effectuée et l’élément Rechercher des mises à jour est supprimé. |
SUEnableAutomaticChecks | Boolean | true | Lorsque le framework est activé, contrôle si NSM recherche activement de nouvelles versions en arrière-plan. Définir sur false pour supprimer les vérifications tout en maintenant le framework chargé. |
SUAutomaticallyUpdate | Boolean | true | Lorsque true, les mises à jour sont téléchargées et installées automatiquement sans demander confirmation à l’utilisateur. Prend effet uniquement lorsque SUEnableAutomaticChecks est également true. |
Remarque : la clé héritée enableAutoUpdater (logique inversée) est encore acceptée et migrée automatiquement au premier démarrage. Utiliser disableAutoUpdateFramework dans tous les nouveaux profils.
6. Scripting et automatisation
NSM répond aux signaux UNIX, ce qui permet à des scripts externes de déclencher des opérations de montage et de démontage sans utiliser l’interface de l’application. Cela est utile pour les flux de travail de portails en libre-service permettant aux utilisateurs de « réparer » les lecteurs réseau.
| Signal | Action |
|---|---|
SIGUSR1 | Démonter tous les partages |
SIGUSR2 | Monter tous les partages |
Exemple :
# Obtenir le PID
NSM_PID=$(pgrep -x "Network Share Mounter")
# Démonter tous les partages
kill -SIGUSR1 "$NSM_PID"
# Monter tous les partages
kill -SIGUSR2 "$NSM_PID"
7. Problèmes connus et compatibilité
Jamf Pro : la collecte d’inventaire (recon) se bloque
Lorsque les partages sont montés dans le répertoire personnel de l’utilisateur (comportement par défaut), le processus d’inventaire Jamf Pro (recon) peut se bloquer indéfiniment. Cela se produit parce que Jamf tente de calculer la taille totale du répertoire personnel, ce qui l’amène à parcourir tous les partages réseau montés.
Solution : Dans Jamf Pro, accédez à Settings > Computer Management - Management Framework > Inventory Collection et désactivez Include home directory sizes. Vous pouvez également définir la clé location sur un chemin en dehors du répertoire personnel, comme /Volumes.
Network Share Mounter v3
Si vous utilisez encore le Network Share Mounter hérité (v3/v2), la documentation est disponible dans notre dépôt.