Windows : les mises à jour de mai 2022 à l’origine de problèmes d’authentification !
Suite à l'installation des mises à jour Mai 2022 sortie à l'occasion du Patch Tuesday, certains utilisateurs rencontrent des problèmes d'authentification. Des investigations sont en cours chez Microsoft à ce sujet.
Sur Reddit, la discussion "Patch Tuesday Megathread" de ce mois-ci fait référence à des problèmes d'authentification, notamment via l'Active Directory, ou les utilisateurs et ordinateurs ne parviennent plus à s'authentifier alors que les informations d'identification sont valides. Par ailleurs, Quentin, un lecteur d'IT-Connect a publié un commentaire avec le message suivant : "ATTENTION : sur Server 2016, cette KB a eu pour effet sur notre infra de « casser » le NPS (802.1X). L’authentification par certificat ne fonctionnait plus, obligé de désinstaller cette KB.". Microsoft a listé plusieurs fonctionnalités impactées, ce qui semble aller dans ce sens : Network Policy Server (NPS), Routing and Remote access Service (RRAS), Radius, Extensible Authentication Protocol (EAP), and Protected Extensible Authentication Protocol (PEAP).
D'après les différents signalements, ces dysfonctionnements touchent l'ensemble des versions de Windows, aussi bien du Windows Server 2012 R2, du Windows Server 2016 que du Windows Server 2022. De son côté, Microsoft indique que ce problème spécifique n'est déclenché qu'après l'installation des mises à jour sur les serveurs avec le rôle "contrôleur de domaine". Toujours d'après l'entreprise américaine, les mises à jour n'auront pas d'impact négatif lorsqu'elles seront déployées sur des périphériques Windows (desktop) et des serveurs Windows qui ne sont pas des contrôleurs de domaine.
Il est très fréquent d'installer le rôle NPS sur un serveur avec le rôle contrôleur de domaine, ce qui explique les problèmes rencontrés si l'on se réfère aux affirmations de Microsoft. Sur le site de Microsoft, le statut est mis à jour sur cette page : Microsoft Docs. Quant aux numéros de KB pour Windows Server, les voici :
- Windows Server 2022 : KB5013944
- Windows Server 2019 : KB5013941
- Windows Server 2016 : KB5013952
- Windows Server 2012 R2 : KB5014011
- Windows Server 2012 : KB5014017
Les entreprises sont actuellement dans une situation délicate : attendre pour éviter de perturber le bon fonctionnement de son infrastructure, au risque de ne pas être protégé pour le moment contre les dernières failles de sécurité, notamment la faille zero-day exploitée dans le cadre d'attaques et associée à PetitPotam.
Pour rappel, certains utilisateurs de Windows 11 ont également rencontré des problèmes suite à l'installation de la dernière mise à jour puisque des applications ne veulent plus se lancer.
C’est aberrant maintenant de ne plus avoir confiance sur les mises jour Windows. A chaque fois il y a toujours un problème, c’est à comprendre que Windows ne teste jamais leurs maj avant de déployer…. . En plus là c’est de quoi mettre tous les utilisateurs au chômage technique s’il plus d’authentification AD.
Cela fait tellement d’année que j’entends « on ne peut plus faire confiance à Microsoft ». Il faut aussi ce rendre compte de ma multitude de matériels dont ils doivent rendre compatible leurs systèmes…. Perso, pas rencontrer le problème sur notre parc.
Faudrait pas trop prendre les users pour des testeurd
Bonjour, j’ai le problème sur un serveur. Qui a la solution. Merci
Suite au patch nous avons perdu la génération de QR-Code dans notre ERP, Une désinstalle et tout est rentré dans l’ordre.
Bonjour,
Suite à la lecture du KB5014754 https://support.microsoft.com/fr-fr/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16#bkmk_certmap nous avons créé ce script qui renseigne l’attribut « altSecurityIdentities » sur les objets ordinateurs de l’AD ayant un certificat.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest « https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409″
Install-Module pspki
Import-Module pspki
$certs=Get-CertificationAuthority | Get-IssuedRequest -Property * | sort CommonName
$Issuer=$($(Get-CertificationAuthority)[0].Certificate.Issuer).replace( » « , » »).Split(« , »)
$Issuer= »X509:$($Issuer[2]),$($Issuer[1]),$($Issuer[0]) »
$data=@{}
foreach($cert in $certs){
if($cert.NotAfter -ge $(get-date) -and $($cert.Properties[« CommonName »]).Length -gt 0 -and $($cert.Properties[« CommonName »]).ToLower() -like « *.$($($env:USERDNSDOMAIN).ToLower()) » -and ($($cert.Properties[« CertificateTemplate »]) -eq « Machine »)-or $($cert.Properties[« CertificateTemplate »]) -eq « Computer »){
$sn=$($cert.SerialNumber) -Split ‘(.{2})’ | ? {$_}
$i=$($sn.Count)
$ns=$null
for($i;$i–;$i -eq 0){
$ns+=$($sn[$i]).ToUpper()
}
$data[$($cert.Properties[« CommonName »])]= »$($Issuer)$($ns) »
}
}
foreach($computer in $data.Keys){
$adcomputer=$computer.split(« . »)[0]
$adcomputer = get-ADComputer -Filter {Name -Like $adcomputer}
if($adcomputer){
set-ADComputer $adcomputer -replace @{altSecurityIdentities=$data[$computer]}
}
}
Voici « la bonne » nouvelle version :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest « https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409″
Install-Module pspki
Import-Module pspki
$certs=Get-CertificationAuthority | Get-IssuedRequest -Property * | sort CommonName
$Issuer=$($(Get-CertificationAuthority)[0].Certificate.Issuer).replace( » « , » »).Split(« , »)
$IssuerTemp= »X509: »
#$($Issuer[3]),$($Issuer[2]),$($Issuer[1]),$($Issuer[0]) »
$j=$Issuer.Length
for($j;$j–;$j -eq 0){
$IssuerTemp+= »,$($Issuer[$j]) »
}
$Issuer=$IssuerTemp
$data=@{}
foreach($cert in $certs){
if($cert.NotAfter -ge $(get-date) -and $($cert.Properties[« CommonName »]).Length -gt 0 -and $($cert.Properties[« CommonName »]).ToLower() -like « *.$($($env:USERDNSDOMAIN).ToLower()) » -and ($($cert.Properties[« CertificateTemplate »]) -eq « Machine »)-or $($cert.Properties[« CertificateTemplate »]) -eq « Computer »){
$sn=$($cert.SerialNumber) -Split ‘(.{2})’ | ? {$_}
$i=$($sn.Count)
$ns=$null
for($i;$i–;$i -eq 0){
$ns+=$($sn[$i]).ToUpper()
}
$data[$($cert.Properties[« CommonName »])]= »$($Issuer)$($ns) »
}
}
foreach($computer in $data.Keys){
$adcomputer=$computer.split(« . »)[0]
$adcomputer = get-ADComputer -Filter {Name -Like $adcomputer}
if($adcomputer){
set-ADComputer $adcomputer -replace @{altSecurityIdentities=$data[$computer]}
}
}