Zuordnung zum Attribut „certificateUserIds“ in der Microsoft Entra-ID

Benutzer*innen-Objekte in Microsoft Entra ID verüfgen über ein Attribut namens certificateUserIds.

  • Das Attribut „certificateUserIds“ ist mehrwertig und kann bis zu 5 Werte enthalten.
  • Jeder Wert darf maximal 1024 Zeichen lang sein.
  • Jeder Wert muss eindeutig sein. Sobald ein Wert auf einem Benutzerkonto vorhanden ist, kann er nicht in ein anderes Benutzerkonto im gleichen Entra ID-Mandanten geschrieben werden.
  • Der Wert muss nicht im E-Mail-ID-Format vorliegen. Das certificateUserIds-Attribut kann nicht routingfähige Benutzerprinzipalnamen (UPNs) wie bob@woodgrove oder bob@local speichern.

Hinweis

Obwohl jeder Wert in der Entra-ID eindeutig sein muss, können Sie ein einzelnes Zertifikat mehreren Konten zuordnen, indem Sie mehrere Benutzernamenbindungen implementieren. Weitere Informationen finden Sie unter mehrere Benutzernamenbindungen.

Unterstützte Muster für Zertifikatbenutzer-IDs

Die in certificateUserIds gespeicherten Werte sollten das Format aufweisen, das in der folgenden Tabelle beschrieben ist. Das X509:<Zuordnung> Bei Präfixen wird die Groß-/Kleinschreibung beachtet.

Zertifikatzuordnungsfeld Beispiele für Werte in certificateUserIds
PrincipalName X509:<PN>bob@woodgrove.com
PrincipalName X509:<PN>bob@woodgrove
RFC822Name X509:<RFC822>user@woodgrove.com
IssuerAndSubject X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
Betreff X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SKI X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Um den richtigen Wert für die Seriennummer zu erhalten, führen Sie diesen Befehl aus, und speichern Sie den in certificateUserIds angezeigten Wert:
Syntax:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Beispiel:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Rollen zum Aktualisieren von certificateUserIds

Nur Cloudbenutzer müssen mindestens über die Rolle Administrator für privilegierte Authentifizierung verfügen, um „certificateUserIds“ zu aktualisieren. Cloudbenutzer können entweder das Microsoft Entra Admin Center oder die Microsoft Graph verwenden, um certificateUserIds zu aktualisieren.

Synchronisierte Benutzer müssen mindestens über die Rolle des Hybrididentitätsadministrators verfügen, um certificateUserIds zu aktualisieren. Nur Microsoft Entra Connect kann zum Aktualisieren von „certificateUserIds“ verwendet werden, indem der Wert lokal synchronisiert wird.

Hinweis

Active Directory-Administratoren können Änderungen vornehmen, die sich auf den Wert „certificateUserIds“ in der Microsoft Entra-ID für jedes synchronisierte Konto auswirken. Administratoren können Konten mit delegierten Administratorrechten über synchronisierte Benutzerkonten oder Administratorrechte über die Microsoft Entra Connect-Server einschließen.

Aktualisieren von certificateUserIds

Führen Sie die folgenden Schritte aus, um „certificateUserIds“ für Benutzer zu aktualisieren:

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens als Administrator für privilegierte Authentifizierung für reine Cloudbenutzer oder mindestens als Hybrididentitätsadministrator für synchronisierte Benutzer an.

  2. Suchen Sie nach Alle Benutzer, und wählen Sie die Option aus.

    Screenshot des Testbenutzerkontos

  3. Klicken Sie auf eine*n Benutzer*in und dann auf Eigenschaften bearbeiten.

  4. Klicken Sie neben den Autorisierungsinformationen auf Anzeigen.

    Screenshot: Autorisierungsinformationen anzeigen

  5. Klicken Sie auf Zertifikatbenutzer-IDs bearbeiten.

    Screenshot: Zertifikatbenutzer-IDs bearbeiten

  6. Klicken Sie auf Hinzufügen.

    Screenshot des Hinzufügens von Zertifikatbenutzer-IDs

  7. Geben Sie den Wert ein, und klicken Sie auf Speichern. Sie können bis zu vier Werte mit jeweils maximal 120 Zeichen hinzufügen.

    Screenshot eines Werts für die Eingabe von Benutzerzertifikats-IDs

Aktualisieren von „certificateUserIds“ mithilfe von Microsoft Graph-Abfragen

Die folgenden Beispiele zeigen, wie Sie mithilfe von Microsoft Graph „certificateUserIds“ nachschlagen und aktualisieren können.

Suchen von certificateUserIds

Autorisierte aufrufende Funktionen können Microsoft Graph-Abfragen ausführen, um nach allen Benutzern mit einem bestimmten Wert für „certificateUserId“ zu suchen. Im user-Objekt in Microsoft Graph wird die Auflistung von „certificateUserIds“ in der authorizationInfo-Eigenschaft gespeichert.

So rufen Sie certificateUserIds aller Benutzerobjekte ab:

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo
ConsistencyLevel: eventual

So rufen Sie certificateUserIds für einen bestimmten Benutzer über die entsprechende ObjectId ab:

GET https://graph.microsoft.com/v1.0/users/{user-object-id}?$select=authorizationinfo
ConsistencyLevel: eventual

So rufen Sie alle Benutzerobjekte mit einem bestimmten Wert in die certificateUserIds ab:

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo&$filter=authorizationInfo/certificateUserIds/any(x:x eq 'X509:<PN>user@contoso.com')&$count=true
ConsistencyLevel: eventual

Sie können auch die Operatoren not und startsWith verwenden, damit eine Filterbedingung erfüllt wird. Um nach dem certificateUserIds-Objekt zu filtern, muss die Anforderung die Abfragezeichenfolge $count=true enthalten, und der ConsistencyLevel-Header muss auf eventual festgelegt sein.

Aktualisieren von certificateUserIds

Führen Sie eine PATCH-Anforderung aus, um „certificateUserIds“ für einen bestimmten Benutzer zu aktualisieren.

Anforderungstext

PATCH https://graph.microsoft.com/v1.0/users/{user-object-id}
Content-Type: application/json
{
    "authorizationInfo": {
        "certificateUserIds": [
            "X509:<PN>123456789098765@mil"
        ]
    }
}

Aktualisieren von certificateUserIds mithilfe von PowerShell-Befehlen

Für diese Konfiguration können Sie Microsoft Graph PowerShell verwenden.

  1. Starten Sie PowerShell mit Administratorrechten.

  2. Installieren und importieren Sie das Microsoft Graph PowerShell SDK.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Stellen Sie eine Verbindung mit dem Mandanten her und akzeptieren Sie alle Elemente.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Listen Sie das „certificateUserIds“-Attributs eines bestimmten Benutzers auf.

      $results = Invoke-MGGraphRequest -Method get -Uri 'https://graph.microsoft.com/v1.0/users/<userId>?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' }
      #list certificateUserIds
      $results.authorizationInfo
    
  5. Erstellen Sie eine Variable mit „certificateUserIds“-Werten.

      #Create a new variable to prepare the change. Ensure that you list any existing values you want to keep as this operation will overwrite the existing value
      $params = @{
            authorizationInfo = @{
                  certificateUserIds = @(
                  "X509:<SKI>eec6b88788d2770a01e01775ce71f1125cd6ad0f", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. Aktualisieren Sie das „certificateUserIds“-Attribut.

       $results = Invoke-MGGraphRequest -Method patch -Uri 'https://graph.microsoft.com/v1.0/users/<UserId>/?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' } -Body $params
    

Aktualisieren von certificateUserIds mithilfe des Benutzerobjekts

  1. Rufen Sie das Benutzerobjekt ab.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Aktualisieren Sie das „certificateUserIds“-Attribut des Benutzerobjekts.

       $user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>eec6b88788d2770a01e01775ce71f1125cd6ad0f", "X509:<PN>user1@contoso.com") 
       Update-MgUser -UserId $userObjectId -AuthorizationInfo $user.AuthorizationInfo
    

Aktualisieren von certificateUserIds mithilfe von Microsoft Entra Connect

Microsoft Entra Connect unterstützt die Synchronisierung von Werten mit „certificateUserIds“ aus einer lokalen Active Directory-Umgebung. Lokales Active Directory unterstützt zertifikatbasierte Authentifizierung und mehrere Benutzernamenbindungen. Stellen Sie sicher, dass Sie die neueste Version von Microsoft Entra Connect verwenden.

Um diese Zuordnungsmethoden zu verwenden, müssen Sie das „altSecurityIdentities“-Attribut von Benutzerobjekten im lokalen Active Directory auffüllen. Darüber hinaus haben Sie nach dem Anwenden von zertifikatbasierten Authentifizierungsänderungen auf Windows-Domain-Controllern, wie in KB5014754 beschrieben, möglicherweise einige der nicht wiederverwendbaren Zuordnungsmethoden (Type=strong) implementiert, um die Anforderungen der lokalen starken Zertifikatbindungsdurchsetzung zu erfüllen.

Um Synchronisierungsfehler zu verhindern, stellen Sie sicher, dass die zu synchronisierenden Werte einem der unterstützten Formate für die „certificateUserIds“ folgen.

Bevor Sie beginnen, stellen Sie sicher, dass alle Benutzerkonten, die aus dem lokalen Active Directory synchronisiert werden, Folgendes haben:

  • 5 oder weniger Werte in ihren „altSecurityIdentities“-Attributen

  • Kein Wert mit mehr als 1024 Zeichen

  • Keine doppelten Werte

    Berücksichtigen Sie sorgfältig, ob ein doppelter Wert ein einzelnes Zertifikat mehreren lokales Active Directory-Konten zuordnen soll. Weitere Informationen finden Sie unter mehrere Benutzernamenbindungen.

    Hinweis

    In bestimmten Szenarien kann eine Teilmenge von Benutzern eine gültige geschäftliche Begründung haben, um ein einzelnes Zertifikat mehreren lokales Active Directory-Konten zuzuordnen. Überprüfen Sie diese Szenarien und implementieren Sie bei Bedarf separate Zuordnungsmethoden, um mehr als einem Konto sowohl im lokalen Active Directory als auch in der Entra-ID zuzuordnen.

Überlegungen zur laufenden Synchronisierung von certificateUserIds

  • Stellen Sie sicher, dass der Bereitstellungsprozess zum Auffüllen der Werte in das lokale Active Directory die richtige Hygiene implementiert. Es werden nur Werte aufgefüllt, die aktuellen gültigen Zertifikaten zugeordnet sind.
  • Werte werden entfernt, wenn das entsprechende Zertifikat abgelaufen oder widerrufen wird.
  • Werte, die größer als 1024 Zeichen sind, werden nicht aufgefüllt.
  • Doppelte Werte werden nicht bereitgestellt.
  • Verwenden Sie Microsoft Entra Connect Health, um Synchronisierungen zu überwachen.

Führen Sie die folgenden Schritte aus, um Microsoft Entra Connect so zu konfigurieren, dass „userPrincipalName“ mit „certificateUserIds“ synchronisiert wird:

  1. Suchen und starten Sie auf dem Microsoft Entra Connect-Server den Synchronisierungsregel-Editor.

  2. Klicken Sie auf Richtung, und wählen Sie Ausgehend aus.

    Screenshot einer Synchronisierungsregel für ausgehende Daten

  3. Suchen Sie die Regel Ausgehend an Microsoft Entra ID – Benutzeridentität, klicken Sie auf Bearbeiten, und klicken Sie dann zur Bestätigung auf Ja.

    Screenshot der Benutzeridentität

  4. Geben Sie eine hohe Zahl in das Feld Rangfolge ein, und klicken Sie dann auf Weiter.

    Screenshot eines Rangfolgewerts

  5. Klicken Sie auf Transformationen>Transformation hinzufügen. Möglicherweise müssen Sie die Liste der Transformationen nach unten scrollen, bevor Sie eine neue erstellen können.

Synchronisieren von X509:<PN>PrincipalNameValue

Um „X509:<PN>PrincipalNameValue“ zu synchronisieren, erstellen Sie eine ausgehende Synchronisierungsregel, und wählen Sie Ausdruck als Flowtyp aus. Wählen Sie das Zielattribut certificateUserIds aus, und fügen Sie im Quellfeld den folgenden Ausdruck hinzu. Wenn Ihr Quellattribute nicht „userPrincipalName“ ist, können Sie den Ausdruck entsprechend ändern.

"X509:<PN>"&[userPrincipalName]

Screenshot der Synchronisierung von X509

Synchronisieren von X509:<RFC822>RFC822Name

Um „X509:<RFC822>RFC822Name“ zu synchronisieren, erstellen Sie eine ausgehende Synchronisierungsregel, und wählen Sie Ausdruck als Flowtyp aus. Wählen Sie das Zielattribut certificateUserIds aus, und fügen Sie im Quellfeld den folgenden Ausdruck hinzu. Wenn Ihr Quellattribute nicht „userPrincipalName“ ist, können Sie den Ausdruck entsprechend ändern.

"X509:<RFC822>"&[userPrincipalName]

Screenshot der Synchronisierung von RFC822Name

  1. Klicken Sie auf Zielattribut, wählen Sie certificateUserIds aus, klicken Sie auf Quelle, wählen Sie userPrincipalName aus, und klicken Sie dann auf Speichern.

    Screenshot des Speicherns einer Regel

  2. Klicken Sie auf OK , um zu bestätigen.

Wichtig

In den vorherigen Beispielen wird das „userPrincipalName„-Attribut als Quellattribut in der Transformationsregel verwendet. Sie können jedes verfügbare Attribut mit dem entsprechenden Wert verwenden. Beispielsweise verwenden einige Organisationen das E-Mail-Attribut. Komplexere Transformationsregeln finden Sie unter Microsoft Entra Connect Sync: Grundlegendes zu deklarativen Bereitstellungsausdrücken

Weitere Informationen zu deklarativen Bereitstellungsausdrücken finden Sie unter Microsoft Entra ID Connect: Deklarative Bereitstellungsausdrücke.

Synchronisieren des altSecurityIdentities-Attributs von Active Directory mit dem certificateUserIds-Attribut für Microsoft Entra-ID

Das Attribut „altSecurityIdentities“ ist nicht Teil des Standardattributsatzes. Ein Administrator muss dem Personenobjekt im Metaverse ein neues Attribut hinzufügen und dann die entsprechenden Synchronisierungsregeln erstellen, um diese Daten an „certificateUserIds“ in Entra ID weiterzuleiten.

  1. Öffnen Sie den Metaverse-Designer, und wählen Sie das Personenobjekt aus. Klicken Sie auf Neues Attribut, um das Attribut „alternativeSecurityId“ zu erstellen. Wählen Sie Zeichenkette (nicht indizierbar) aus, um eine Attributgröße von bis zu 1024 Zeichen zu erstellen, was die maximale unterstützte Länge für certificateUserIds ist. Wenn Sie Zeichenfolge (indizierbar) auswählen, beträgt die maximale Größe eines Attributwerts 448 Zeichen. Stellen Sie sicher, dass Sie Mehrwertig auswählen.

    Screenshot der Erstellung eines neuen Attributs

  2. Öffnen Sie den Metaverse-Designer, und wählen Sie das Attribut „alternativeSecurityId“ aus, um es dem Personenobjekt hinzuzufügen.

    Screenshot des Hinzufügens einer alternativen Sicherheits-ID zum person-Objekt

  3. Erstellen Sie eine eingehende Synchronisierungsregel, um das Attribut „altSecurityIdentities“ in „alternativeSecurityId“ umzuwandeln.

    Verwenden Sie in der eingehenden Regel die folgenden Optionen.

    Option Wert
    Name Beschreibender Name der Regel, z. B.: Eingabe aus Active Directory – altSecurityIdentities
    Verbundenes System Ihre Lokale Active Directory-Domäne
    Objekttyp des verbundenen Systems user
    Metaverse-Objekttyp person
    Rangfolge Wählen Sie eine Zahl unter 100 aus, die momentan unbenutzt ist

    Klicken Sie dann auf Transformationen und erstellen Sie eine direkte Zuordnung zum Zielattribut alternativeSecurityId aus dem Quellattribut altSecurityIdentities, wie im folgenden Screenshot gezeigt.

    Screenshot des Transformierens vom altSecurityIdentities- zum alternateSecurityId-Attribut

  4. Erstellen Sie eine ausgehende Synchronisierungsregel, um das Attribut alternativeSecurityId in Entra ID in das Attribut certificateUserIds umzuwandeln.

    Option Wert
    Name Beschreibender Name der Regel, z. B.: Ausgabe an Microsoft Entra ID – certificateUserIds
    Verbundenes System Ihre Microsoft Entra-Domäne
    Objekttyp des verbundenen Systems user
    Metaverse-Objekttyp person
    Rangfolge Wählen Sie eine über allen Standardregeln liegende hohe Zahl aus, die momentan unbenutzt ist, z. B. 150

    Klicken Sie dann auf Transformationen und erstellen Sie eine direkte Zuordnung zum Zielattribut certificateUserIds aus dem Quellattribut alternativeSecurityId, wie im folgenden Screenshot gezeigt.

    Screenshot ausgehender Synchronisierungsregeln zum Transformieren des alternateSecurityId-Attributs in certificateUserIds

  5. Führen Sie die Synchronisierung aus, um das Attribut „certificateUserIds“ mit Daten aufzufüllen.

  6. Zeigen Sie zum Überprüfen des Erfolgs die Autorisierungsinformationen eines Benutzers in Entra ID an.

    Screenshot der erfolgreichen Synchronisierung

Um eine Teilmenge von Werten aus dem Attribut altSecurityIdentities zuzuordnen, ersetzen Sie die Transformation in Schritt 4 durch einen Ausdruck. Gehen Sie zum Verwenden eines Ausdrucks weiter zur Registerkarte Transformationen und ändern Sie die FlowType-Option in „Ausdruck“ und das Zielattribut in certificateUserIds, und geben Sie anschließend den Ausdruck in das Feld „Quelle“ ein. Im folgenden Beispiel werden nur Werte herausgefiltert, die den SKI- und SHA1PublicKey-Zertifikatszuordnungsfeldern entsprechen:

Screenshot eines Ausdrucks

Codeausdruck:

IIF(IsPresent([alternativeSecurityId]),
                Where($item,[alternativeSecurityId],BitOr(InStr($item, "X509:<SKI>"),InStr($item, "X509:<SHA1-PUKEY>"))>0),[alternativeSecurityId]
)

Administratoren können Werte aus altSecurityIdentities herausfiltern, die den unterstützten Mustern entsprechen. Stellen Sie sicher, dass die CBA-Konfiguration aktualisiert wurde, sodass sie die Nutzernamenbindungen unterstützt, die mit certificateUserIds synchronisiert werden, um die Authentifizierung mit diesen Werten zu aktivieren.

Nächste Schritte