Résoudre l’erreur des droits d’accès insuffisants
Problème
Le provisionnement d’utilisateurs entrants vers Active Directory fonctionne comme prévu pour la plupart des utilisateurs. Toutefois, pour certains utilisateurs, les journaux d’approvisionnement affichent l’erreur suivante :
ERROR: InsufficientAccessRights-SecErr: The user has insufficient access rights.. Access is denied. \nError Details: Problem 4003 - INSUFF_ACCESS_RIGHTS.
OR
ERROR:
"Message":"The user has insufficient access rights.",
"ResponseResultCode":"InsufficientAccessRights",
"ResponseErrorMessage":"00002098: SecErr: DSID-03150F94, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0",
The user has insufficient access rights.
Les journaux d’approvisionnement affichent le code d’erreur : HybridSynchronizationActiveDirectoryInsufficientAccessRights
.
Cause
Par défaut, le compte provAgentgMSA$
GMSA de l’agent d’approvisionnement dispose d’une autorisation de lecture/écriture sur tous les objets utilisateur du domaine. Il existe deux causes possibles qui peuvent entraîner l’erreur ci-dessus.
- Cause 1 : L’objet utilisateur fait partie d’une unité d’organisation qui n’hérite pas des autorisations au niveau du domaine.
- Cause 2 : l’objet utilisateur appartient à un groupe Active Directory protégé. De par leur conception, les objets utilisateur sont régis par des autorisations associées à un conteneur spécial appelé
AdminSDHolder
. Cela explique pourquoi leprovAgentgMSA$
compte ne peut pas mettre à jour ces comptes appartenant à des groupes Active Directory protégés. Vous pouvez essayer de remplacer et de fournir explicitement au compteprovAgentgMSA$
un accès en écriture aux comptes d'utilisateurs, mais cela ne fonctionnera pas. Pour sécuriser les comptes d’utilisateurs privilégiés contre une mauvaise utilisation des autorisations déléguées, il existe un processus en arrière-plan appelé SDProp qui s’exécute toutes les 60 minutes et garantit que les utilisateurs appartenant à un groupe protégé sont toujours gérés par les autorisations définies sur leAdminSDHolder
conteneur. Même l’approche consistant à ajouter leprovAgentgMSA$
compte au groupe Domain Administration ne fonctionnera pas.
Résolution
Commencez par vérifier ce qui est à l’origine du problème. Pour vérifier si la cause 1 est la source du problème :
- Ouvrez la console de gestion des utilisateurs et ordinateurs Active Directory.
- Sélectionnez l’unité d’organisation associée à l’utilisateur.
- Cliquez avec le bouton droit et accédez à Propriétés -> Sécurité -> Avancé. Si le bouton Activer l'héritage s'affiche, ça confirme que la Cause-1 est la source du problème.
- Cliquez sur Activer l’héritage pour que les autorisations au niveau du domaine s’appliquent à cette unité d’organisation.
Notes
N’oubliez pas de vérifier l’ensemble de la hiérarchie, du niveau du domaine jusqu’à l’unité d’organisation qui contient les comptes affectés. L’héritage doit être activé pour toutes les unités d’organisation/conteneurs parentes afin que les autorisations appliquées au niveau du domaine puissent descendre en cascade vers l’objet final.
Si la Cause 1 n’est pas la source du problème, la cause 2 est potentiellement la source du problème. Il existe deux options de résolution possibles.
Option 1 : Supprimer l'utilisateur concerné du groupe AD protégé. Pour trouver la liste des utilisateurs régis par cette autorisation AdminSDHolder
, Cx peut appeler la commande suivante :
Get-AdObject -filter {AdminCount -gt 0}
Articles de référence :
- Voici un exemple de script PowerShell qui peut être utilisé pour effacer l’indicateur AdminCount et réactiver l’héritage sur les utilisateurs concernés.
- Utilisez les étapes décrites dans cet article : Rechercher des comptes orphelins pour rechercher des comptes orphelins (les comptes qui ne font pas partie d’un groupe protégé, mais dont l’indicateur AdminCount est toujours défini sur 1)
L’option 1 peut ne pas toujours fonctionner
Il existe un processus appelé Processus SDPROP (Security Descriptor Propagation) qui s’exécute toutes les heures sur le contrôleur de domaine qui détient le rôle FSMO de l’émulateur PDC. C’est ce processus qui définit l’attribut AdminCount
sur 1. La fonction main de SDPROP consiste à protéger les comptes Active Directory hautement privilégiés, en veillant à ce qu’ils ne puissent pas être supprimés ou modifiés, accidentellement ou intentionnellement, par des utilisateurs ou des processus avec moins de privilèges.
Il existe un processus appelé Processus SDPROP (Security Descriptor Propagation) qui s’exécute toutes les heures sur le contrôleur de domaine qui détient le rôle FSMO de l’émulateur PDC. C’est ce processus qui définit l’attribut AdminCount
sur 1. La fonction principale de SDPROP est de protéger les comptes Active Directory hautement privilégiés. Le processus SDPROP garantit que les comptes ne peuvent pas être supprimés ou que leurs droits ne sont pas modifiés accidentellement ou intentionnellement par des utilisateurs ou des processus disposant de moins de privilèges.
Articles de référence qui expliquent la raison en détail :
Option 2 : Modifier les autorisations par défaut du conteneur AdminSDHolder
Si l’option 1 n’est pas possible et ne fonctionne pas comme prévu, demandez à Cx de vérifier avec leur administrateur AD et leurs administrateurs de sécurité s’ils sont autorisés à modifier les autorisations par défaut du AdminSDHolder
conteneur. Cet article explique l’importance du AdminSDHolder
conteneur. Une fois que Cx obtient l’approbation interne pour mettre à jour les autorisations de AdminSDHolder
conteneur, il existe deux façons de mettre à jour les autorisations.
- Utilisez
ADSIEdit
comme présenté dans cet article. - Utilisez l’outil en ligne de commande
DSACLS
. Voici un exemple de script qui peut être utilisé comme point de départ et Cx peut l’ajuster en fonction de ses besoins.
$dcFQDN = "<FQDN Of The Nearest RWDC Of Domain>"
$domainDN = "<Domain Distinguished Name>"
$domainNBT = "<Domain NetBIOS Name>"
$dsaclsCMD = "DSACLS '\\$dcFQDN\CN=AdminSDHolder,CN=System,$domainDN' /G '$domainNBT\provAgentgMSA$:RPWP;<Attribute To Write To>'"
Invoke-
Expression $dsaclsCMD | Out-Null
Si le Cx a besoin d’aide supplémentaire pour résoudre les problèmes liés aux autorisations AD locales, faites appel à l’équipe du support technique Windows Server. Cet article sur les problèmes AdminSDHolder avec Microsoft Entra Connect contient d’autres exemples d’utilisation de DSACLS.
Option 3 : Affecter le contrôle total au compte provAgentgMSA
Attribuez des autorisations de contrôle total au provAgentGMSA
compte. Nous recommandons cette étape en cas de problèmes liés au déplacement d’un objet utilisateur d’une unité d’organisation de conteneur à une autre lorsque l’objet utilisateur n’appartient pas à un groupe d’utilisateurs protégé.
Dans ce scénario, demandez à Cx d’effectuer les étapes suivantes et de retester l’opération de déplacement.
- Connectez-vous au contrôleur de domaine AD en tant qu’administrateur.
- Ouvrez la ligne de commande PowerShell avec
run
en tant qu'administrateur. - À l’invite PowerShell, exécutez la commande DSACLS suivante qui accorde le contrôle général/total générique au compte GMSA de l’agent d’approvisionnement.
dsacls "dc=contoso,dc=com" /I:T /G "CN=provAgentgMSA,CN=Managed Service Accounts,DC=contoso,DC=com:GA"
Remplacez par dc=contoso,dc=com
votre nœud racine ou le conteneur d’unité d’organisation approprié. Si vous utilisez un GMSA personnalisé, mettez à jour la valeur DN pour provAgentgMSA
.
Option 4 : Ignorer le compte GMSA et utiliser un compte de service créé manuellement Cette option doit uniquement être utilisée comme solution de contournement temporaire pour débloquer la situation jusqu’à ce que le problème d’autorisation GMSA soit examiné et résolu. Nous vous recommandons d’utiliser le compte GMSA. Vous pouvez définir l’option de Registre pour ignorer la configuration GMSA et reconfigurer l’agent d’approvisionnement Microsoft Entra Connect pour utiliser un compte de service créé manuellement avec les autorisations appropriées.