Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Abilita la crittografia a chiave pubblica per l'autenticazione iniziale (PKINIT) per gli utenti di AWS Microsoft AD gestito
AWS Le directory Microsoft AD gestite utilizzano l'associazione avanzata dei certificati per impostazione predefinita, che richiede una mappatura esplicita tra certificati e oggetti AD. Le seguenti mappature sono considerate affidabili per Managed AWS Microsoft AD:
-
altSecurityIdentitiesEmittente e numero di serie -
altSecurityIdentitiesIdentificatore chiave del soggetto -
altSecurityIdentitiesSHA1 Hash della chiave pubblica
Questi attributi consentono una mappatura avanzata dei certificati, che fornisce una maggiore sicurezza per l'autenticazione basata su certificati richiedendo certificate-to-user relazioni esplicite definite in Active Directory. Questo aiuta a prevenire gli attacchi di escalation dei privilegi basati sui certificati
È possibile utilizzare questa procedura per configurare solide associazioni di certificati per prevenire gli attacchi di escalation dei privilegi mantenendo al contempo la funzionalità di autenticazione dei certificati.
Per ulteriori informazioni, vedere Microsoft KB5014754: modifiche all'autenticazione basata su certificati
Prerequisiti
-
Una directory Microsoft AD AWS gestita con autorità di certificazione configurata
-
Accesso amministrativo all'ambiente Active Directory
-
PowerShell con il modulo Active Directory installato
-
Il certificato che desideri mappare all'oggetto AD
AltSecurityIdentity Attributo della mappa
-
Scegli uno dei seguenti metodi di
AltSecurityIdentitymappatura in base alle informazioni del certificato:-
SHA1 hash: utilizza l' SHA1 hash della chiave pubblica del certificato
Per la mappatura SHA1 hash, estrai l'hash del certificato e applicalo all'oggetto utente:
$Username = 'YourUsername' $cert = certutil -dump "YourCertificate.cer" $certHash = ($cert | Select-String -Pattern "(sha1):*" | Select-String -Pattern "Cert").ToString().TrimStart('Cert Hash(sha1): ').Replace(' ','') Set-ADUser -Identity $Username -Add @{'altSecurityIdentities'="X509:<SHA1-PUKEY>$CertHash"} -
Emittente e numero di serie: utilizza il nome e il numero di serie dell'emittente del certificato
Per la mappatura dell'emittente e del numero di serie, utilizza l'emittente e il numero di serie del certificato:
$Username = 'YourUsername' $IssuerName = 'YourCertificateIssuer' $SerialNumber = 'YourCertificateSerialNumber' Set-ADUser -Identity $Username -Add @{'altSecurityIdentities'="X509:<I>$IssuerName<SR>$SerialNumber"} -
Identificatore chiave dell'oggetto: utilizza l'estensione dell'identificatore della chiave dell'oggetto del certificato
Per la mappatura dell'identificatore della chiave dell'oggetto, utilizza l'identificatore della chiave dell'oggetto del certificato:
$Username = 'YourUsername' $SubjectKeyIdentifier = 'YourSubjectKeyIdentifier' Set-ADUser -Identity $Username -Add @{'altSecurityIdentities'="X509:<SKI>$SubjectKeyIdentifier"}
-
-
Verifica che la mappatura sia stata applicata correttamente:
Get-ADUser -Identity $Username -Properties altSecurityIdentities | Select-Object -ExpandProperty altSecurityIdentities -
Attendi il completamento della replica di Active Directory (in genere 15-30 secondi) prima di testare l'autenticazione del certificato.
Esempio: mappatura in blocco dell'attributo da parte di un certificato AltSecurityIdentity
L'esempio seguente mostra come mappare l'AltSecurityIdentityattributo per più certificati utente di un'autorità di certificazione:
$CertificateTemplateName = 'User' $Now = $((Get-Date).ToString($(Get-culture).DateTimeFormat.ShortDatePattern)) $Restrict = "Disposition=20,NotAfter>=$Now,Certificate Template=$CertificateTemplateName" $Out = "SerialNumber,Certificate Hash,User Principal Name,RequesterName,CommonName,CertificateTemplate,NotBefore,NotAfter" $Certs = certutil -view -restrict $Restrict -out $Out csv | ConvertFrom-CSV $UserSha1HashMapping = @{} ForEach ($Cert in $Certs) { $UPN = $Cert.'User Principal Name' $Username, $Domain = $UPN.Split('@') $CertificateThumbprint = ($Cert.'Certificate Hash').Replace(' ','') $AdUserObject = Get-ADUser -Identity $Username If ($AdUserObject -And $AdUserObject.Count -gt 1) { Write-Output "Unable to map user: $Username, multiple user objects found" Continue } If ($AdUserObject) { If ($UserSha1HashMapping.Keys -Contains $Username) { $UserSha1HashMapping[$Username] += $CertificateThumbprint } Else { $UserSha1HashMapping[$Username] = @($CertificateThumbprint) } } } ForEach ($User in $UserSha1HashMapping.Keys) { Write-Output "Mapping altSecurityIdentity for $User" $UserObject = Get-ADUser -Identity $User | Get-ADObject -Properties 'altSecurityIdentities' $altSecurityIdentities = $UserObject.altSecurityIdentities ForEach ($thumbprint in $UserSha1HashMapping[$User]) { $SHA1PUKEY = "X509:<SHA1-PUKEY>$thumbprint" If ($altSecurityIdentities -Contains $SHA1PUKEY) { Write-Output "Skipping $thumbprint, already mapped." Continue } Write-Output "Adding $thumbprint to $User as altSecurityIdentity" Set-ADUser -Identity $User -Add @{'altSecurityIdentities'=$SHA1PUKEY} } }
Fasi successive
-
Verifica l'autenticazione basata sui certificati con i tuoi certificati mappati
-
Configura le tue applicazioni per utilizzare i certificati mappati per l'autenticazione
-
Monitora il tuo AWS Managed Microsoft ADper eventi di autenticazione