Aktivieren Sie Public Key Cryptography for Initial Authentication (PKINIT) für Ihre AWS verwalteten Microsoft AD-Benutzer - AWS Directory Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren Sie Public Key Cryptography for Initial Authentication (PKINIT) für Ihre AWS verwalteten Microsoft AD-Benutzer

AWS Verwaltete Microsoft AD-Verzeichnisse verwenden standardmäßig eine starke Zertifikatsbindung, was eine explizite Zuordnung zwischen Zertifikaten und AD-Objekten erfordert. Die folgenden Zuordnungen werden für AWS Managed Microsoft AD als stark angesehen:

  • altSecurityIdentitiesEmittent und Seriennummer

  • altSecurityIdentitiesSchlüssel-ID für den Betreff

  • altSecurityIdentities SHA1 Hash des öffentlichen Schlüssels

Diese Attribute ermöglichen eine sichere Zertifikatszuweisung, die mehr Sicherheit für die zertifikatsbasierte Authentifizierung bietet, da explizite certificate-to-user Beziehungen erforderlich sind, die in Active Directory definiert werden müssen. Dies trägt dazu bei, zertifikatsbasierte Angriffe mit Rechteeskalation zu verhindern

Sie können dieses Verfahren verwenden, um starke Zertifikatsbindungen zu konfigurieren, um Angriffe mit Rechteeskalation zu verhindern und gleichzeitig die Funktionalität der Zertifikatsauthentifizierung aufrechtzuerhalten.

Weitere Informationen finden Sie unter Microsoft KB5014754: Änderungen der zertifikatsbasierten Authentifizierung auf Windows-Domänencontrollern

Voraussetzungen

  • Ein AWS verwaltetes Microsoft AD-Verzeichnis mit konfigurierter Zertifizierungsstelle

  • Administratorzugriff auf Ihre Active Directory-Umgebung

  • PowerShell mit installiertem Active Directory-Modul

  • Das Zertifikat, das Sie dem AD-Objekt zuordnen möchten

AltSecurityIdentity Attribut zuordnen

  1. Wählen Sie basierend auf Ihren Zertifikatsinformationen eine der folgenden AltSecurityIdentity Zuordnungsmethoden:

    • SHA1 Hash — Verwendet den SHA1 Hash des öffentlichen Schlüssels des Zertifikats

      Extrahieren Sie für die SHA1 Hash-Zuordnung den Zertifikat-Hash und wenden Sie ihn auf das Benutzerobjekt an:

      $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"}
    • Aussteller und Seriennummer — Verwendet den Namen und die Seriennummer des Zertifikats

      Verwenden Sie für die Zuordnung von Aussteller und Seriennummer den Aussteller und die Seriennummer des Zertifikats:

      $Username = 'YourUsername' $IssuerName = 'YourCertificateIssuer' $SerialNumber = 'YourCertificateSerialNumber' Set-ADUser -Identity $Username -Add @{'altSecurityIdentities'="X509:<I>$IssuerName<SR>$SerialNumber"}
    • Schlüssel-ID für den Betreff — Verwendet die Erweiterung der Schlüssel-ID für den Betreff des Zertifikats

      Verwenden Sie für die Zuordnung der Schlüssel-ID für den Betreff die Schlüssel-ID für den Betreff des Zertifikats:

      $Username = 'YourUsername' $SubjectKeyIdentifier = 'YourSubjectKeyIdentifier' Set-ADUser -Identity $Username -Add @{'altSecurityIdentities'="X509:<SKI>$SubjectKeyIdentifier"}
  2. Stellen Sie sicher, dass die Zuordnung erfolgreich angewendet wurde:

    Get-ADUser -Identity $Username -Properties altSecurityIdentities | Select-Object -ExpandProperty altSecurityIdentities
  3. Warten Sie, bis die Active Directory-Replikation abgeschlossen ist (normalerweise 15-30 Sekunden), bevor Sie die Zertifikatsauthentifizierung testen.

Beispiel: Massenzertifikat, das das Attribut zuordnet AltSecurityIdentity

Das folgende Beispiel zeigt, wie AltSecurityIdentity Attribute für mehrere Benutzerzertifikate von einer Zertifizierungsstelle zugeordnet werden:

$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} } }

Nächste Schritte

  • Testen Sie die zertifikatsbasierte Authentifizierung mit Ihren zugewiesenen Zertifikaten

  • Konfigurieren Sie Ihre Anwendungen so, dass sie die zugewiesenen Zertifikate für die Authentifizierung verwenden

  • Überwachen Sie Ihr AWS verwaltetes Microsoft ADfür Authentifizierungsereignisse