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éTypeObligatoireDescription
networkShareStringL’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.
authTypeStringMéthode d’authentification : krb (Kerberos/SSO), pwd (nom d’utilisateur + mot de passe) ou guest. Par défaut : krb.
mountPointStringRemplace 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.
displayNameStringNom affiché pour ce partage dans l’application. Utilise le nom du partage si non défini.
usernameStringPrédéfinit un nom d’utilisateur pour les partages de type pwd. Si omis, l’utilisateur sera invité à en saisir un.
externalKerberosManagementStringDé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.
kerberosRealmStringRemplacement du realm Kerberos par partage. Utilisé conjointement avec externalKerberosManagement pour identifier le profil externe à assigner. Utilise par défaut le paramètre global kerberosRealm.
autoMountString"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éTypePar défautDescription
kerberosRealmStringDomaine 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.
kerberosProfileDisplayNameStringNom 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.
usernameOverrideStringRemplace 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éTypePar défautDescription
ExpirationCountdownStartDayInteger14Avertissement 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.
ExpirationNotificationStartDayInteger14Avertissement 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.
passwordChangeURLStringURL 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).
allowPasswordChangeBooleanfalseLorsque 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éfinir ExpirationCountdownStartDay sur 0 dé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éTypePar défautDescription
autostartBooleanfalseLorsqu’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.
canChangeAutostartBooleantrueContrô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.
canQuitBooleantrueLorsque true, l’utilisateur peut quitter l’application depuis la barre de menus. Définir sur false pour supprimer entièrement l’élément Quitter.
unmountOnExitBooleantrueLorsque 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 osascript tell application "System Events" to delete login item "…" ne fonctionne pas pour les éléments enregistrés avec SMAppService. System Events ne gère que les éléments de connexion utilisateur à l’ancienne.
  • Lorsque autostart = false est appliqué via une clé MDM verrouillée, NSM appelle SMAppService.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 = false comme 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éTypePar défautDescription
locationStringChemin 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.
cleanupLocationDirectoryBooleanfalseLorsque 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.
showMountsInMenuBooleantrueLorsque 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.
helpURLStringURL 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
menuConnectSharesAction Monter les partages
menuDisconnectSharesAction Démonter les partages
menuShowSharesMountDirAfficher 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éTypePar défautDescription
disableAutoUpdateFrameworkBooleanfalseInterrupteur 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é.
SUEnableAutomaticChecksBooleantrueLorsque 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é.
SUAutomaticallyUpdateBooleantrueLorsque 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.

SignalAction
SIGUSR1Démonter tous les partages
SIGUSR2Monter 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.