Mappa till attributet certificateUserIds i Microsoft Entra ID

Användarobjekt i Microsoft Entra-ID har ett attribut med namnet certificateUserIds.

  • Attributet certificateUserIds är flervärdesattribut och kan innehålla upp till 5 värden.
  • Varje värde får inte innehålla mer än 1 024 tecken.
  • Varje värde måste vara unikt. När ett värde finns på ett användarkonto kan det inte skrivas till något annat användarkonto i samma Entra-ID-klientorganisation.
  • Värdet behöver inte vara i e-post-ID-format. Attributet certificateUserIds kan lagra icke-utfällbara användarhuvudnamn (UPN) som bob@woodgrove eller bob@local.

Kommentar

Även om varje värde måste vara unikt i Etttra-ID kan du mappa ett enda certifikat till flera konton genom att implementera flera användarnamnsbindningar. Mer information finns i Flera användarnamnsbindningar.

Mönster som stöds för certifikatanvändares ID:t

Värdena som lagras i certificateUserIds ska vara i det format som beskrivs i följande tabell. Prefixen X509:<Mapping> är skiftlägeskänsliga.

Fält för certifikatmappning Exempel på värden i certificateUserIds
Huvudnamn X509:<PN>bob@woodgrove.com
Huvudnamn 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
Ämne 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
Om du vill hämta rätt värde för serienummer kör du det här kommandot och lagrar värdet som visas i certificateUserIds:
Syntax:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Exempel:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Roller för att uppdatera certificateUserIds

Endast molnanvändare måste ha minst rollen Administratör för privilegierad autentisering för att uppdatera certificateUserIds. Endast molnanvändare kan använda antingen administrationscentret för Microsoft Entra eller Microsoft Graph för att uppdatera certificateUserIds.

Synkroniserade användare måste ha minst rollen Hybrididentitetsadministratör för att kunna uppdatera certificateUserIds. Endast Microsoft Entra-Anslut kan användas för att uppdatera certificateUserIds genom att synkronisera värdet lokalt.

Kommentar

Active Directory-administratörer kan göra ändringar som påverkar värdet certificateUserIds i Microsoft Entra-ID för alla synkroniserade konton. Administratörer kan inkludera konton med delegerad administrativ behörighet över synkroniserade användarkonton eller administrativa rättigheter över Microsoft Entra-Anslut servrar.

Uppdatera certificateUserIds

Använd följande steg för att uppdatera certificateUserIds för användare:

  1. Logga in på administrationscentret för Microsoft Entra som minst administratör för privilegierad autentisering för användare som endast är molnbaserade eller som minst en hybrididentitetsadministratör för synkroniserade användare.

  2. Sök efter och välj Alla användare.

    Skärmbild av testanvändarkontot.

  3. Klicka på en användare och klicka på Redigera egenskaper.

  4. Klicka på Visa bredvid Auktoriseringsinformation.

    Skärmbild av Visa auktoriseringsinformation.

  5. Klicka på Redigera certifikatanvändares ID:t.

    Skärmbild av Redigera användar-ID för certifikat.

  6. Klicka på Lägg till.

    Skärmbild av hur du lägger till ett certificateUserIds.

  7. Ange värdet och klicka på Spara. Du kan lägga till upp till fyra värden, var och en av 120 tecken.

    Skärmbild av ett värde som ska anges för certificateUserIds.

Uppdatera certificateUserIds med Hjälp av Microsoft Graph-frågor

I följande exempel visas hur du använder Microsoft Graph för att söka efter certificateUserIds och uppdatera dem.

Slå upp certificateUserIds

Auktoriserade anropare kan köra Microsoft Graph-frågor för att hitta alla användare med ett visst certificateUserId-värde. I Microsoft Graph-användarobjektet lagras samlingen av certificateUserIds i egenskapen authorizationInfo.

Så här hämtar du certificateUserIds för alla användarobjekt:

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

Så här hämtar du certificateUserIds för en viss användare av användarens ObjectId:

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

Så här hämtar du användarobjektet med ett specifikt värde i certificateUserIds:

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

Du kan också använda operatorerna not och startsWith för att matcha filtervillkoret. Om du vill filtrera mot objektet certificateUserIds måste begäran innehålla frågesträngen $count=trueoch rubriken ConsistencyLevel måste vara inställd på eventual.

Uppdatera certificateUserIds

Kör en PATCH-begäran för att uppdatera certificateUserIds för en viss användare.

Begärandetext

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

Uppdatera certificateUserIds med Hjälp av PowerShell-kommandon

För den här konfigurationen kan du använda Microsoft Graph PowerShell.

  1. Starta PowerShell med administratörsbehörighet.

  2. Installera och importera Microsoft Graph PowerShell SDK.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Anslut till klientorganisationen och acceptera alla.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Lista attributet certificateUserIds för en viss användare.

      $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. Skapa en variabel med certificateUserIds-värden.

      #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. Uppdatera attributet certificateUserIds.

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

Uppdatera certificateUserIds med hjälp av användarobjekt

  1. Hämta användarobjektet.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Uppdatera attributet certificateUserIds för användarobjektet.

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

Uppdatera certificateUserIds med Microsoft Entra Anslut

Microsoft Entra Connect stöder synkronisering av värden till certificateUserIds från en lokal Active Directory miljö. Lokal Active Directory har stöd för certifikatbaserad autentisering och flera användarnamnsbindningar. Se till att du använder den senaste versionen av Microsoft Entra Anslut.

Om du vill använda dessa mappningsmetoder måste du fylla i attributet altSecurityIdentities för användarobjekt i lokal Active Directory. När du har tillämpat certifikatbaserade autentiseringsändringar på Windows-domänkontrollanter enligt beskrivningen i KB5014754, kan du dessutom ha implementerat några av de icke återanvändbara mappningsmetoderna (Type=strong) för att uppfylla de lokala kraven för tvingande av active directory-certifikatbindning.

Om du vill förhindra synkroniseringsfel kontrollerar du att de värden som synkroniseras följer något av de format som stöds för certificateUserIds.

Innan du börjar kontrollerar du att alla användarkonton som synkroniseras från lokal Active Directory har:

  • 5 eller färre värden i sina altSecurityIdentitetsattribut

  • Inget värde med fler än 1 024 tecken

  • Inga duplicerade värden

    Tänk noga på om ett duplicerat värde är avsett att mappa ett enda certifikat till flera lokal Active Directory konton. Mer information finns i Flera användarnamnsbindningar.

    Kommentar

    I specifika scenarier kan en delmängd användare ha en giltig affärsmotivering för att mappa ett enda certifikat till mer än en lokal Active Directory konto. Granska dessa scenarier och implementera separata mappningsmetoder för att mappa till fler än ett konto i både lokal Active Directory- och Entra-ID:t.

Överväganden för pågående synkronisering av certificateUserIds

  • Se till att etableringsprocessen för att fylla i värdena i lokal Active Directory implementerar korrekt hygien. Endast värden som är associerade med aktuella giltiga certifikat fylls i.
  • Värden tas bort när motsvarande certifikat har upphört att gälla eller återkallats.
  • Värden som är större än 1 024 tecken fylls inte i.
  • Dubblettvärden etableras inte.
  • Använd Microsoft Entra Anslut Health för att övervaka synkroniseringen.

Följ dessa steg för att konfigurera Microsoft Entra Anslut för att synkronisera userPrincipalName med certificateUserIds:

  1. På Microsoft Entra-Anslut-servern letar du upp och startar redigeraren för synkroniseringsregler.

  2. Klicka på Riktning och sedan på Utgående.

    Skärmbild av utgående synkroniseringsregel.

  3. Hitta regeln Ut till Microsoft Entra-ID – Användaridentitet, klicka på Redigera och klicka på Ja för att bekräfta.

    Skärmbild av användaridentitet.

  4. Ange ett högt tal i fältet Prioritet och klicka sedan på Nästa.

    Skärmbild av ett prioritetsvärde.

  5. Klicka på Transformeringar>Lägg till transformering. Du kan behöva rulla ned i listan över transformeringar innan du kan skapa en ny.

Synkronisera X509:<PN>PrincipalNameValue

Om du vill synkronisera X509:<PN>PrincipalNameValue skapar du en regel för utgående synkronisering och väljer Uttryck i flödestypen. Välj målattributet som certificateUserIds och lägg till följande uttryck i källfältet. Om källattributet inte är userPrincipalName kan du ändra uttrycket i enlighet med detta.

"X509:<PN>"&[userPrincipalName]

Skärmbild av hur du synkroniserar x509.

Synkronisera X509:<RFC822>RFC822Name

Om du vill synkronisera X509:<RFC822>RFC822Name skapar du en regel för utgående synkronisering och väljer Uttryck i flödestypen. Välj målattributet som certificateUserIds och lägg till följande uttryck i källfältet. Om källattributet inte är userPrincipalName kan du ändra uttrycket i enlighet med detta.

"X509:<RFC822>"&[userPrincipalName]

Skärmbild av hur du synkroniserar RFC822Name.

  1. Klicka på Målattribut, välj certificateUserIds, klicka på Källa, välj userPrincipalName och klicka sedan på Spara.

    Skärmbild av hur du sparar en regel.

  2. Bekräfta genom att klicka på OK .

Viktigt!

I föregående exempel används userPrincipalName-atribute som ett källattribut i transformeringsregeln. Du kan använda alla tillgängliga attribut med lämpligt värde. Vissa organisationer använder till exempel e-postattributet. Mer komplexa transformeringsregler finns i Microsoft Entra Anslut Sync: Understanding Deklarativa etableringsuttryck

Mer information om deklarativa etableringsuttryck finns i Microsoft Entra Anslut: Deklarativa etableringsuttryck.

Synkronisera attributet altSecurityIdentities från Active Directory till Microsoft Entra ID certificateUserIds

Attributet altSecurityIdentities ingår inte i standardattributuppsättningen. En administratör måste lägga till ett nytt attribut till personobjektet i Metaversum och sedan skapa lämpliga synkroniseringsregler för att vidarebefordra dessa data till certificateUserIds i Entra-ID.

  1. Öppna Metaverse Designer och välj personobjektet. Om du vill skapa attributet alternativeSecurityId klickar du på Nytt attribut. Välj Sträng (kan inte indexeras) för att skapa en attributstorlek på upp till 1 024 tecken, vilket är den maximala längd som stöds för certificateUserIds. Om du väljer Sträng (indexerbar)är den maximala storleken för ett attributvärde 448 tecken. Se till att du väljer Flervärdesvärde.

    Skärmbild av hur du skapar ett nytt attribut.

  2. Öppna Metaverse Designer och välj alternativeSecurityId för att lägga till det i personobjektet.

    Skärmbild av hur du lägger till alternativeSecurityId i personobjektet.

  3. Skapa en regel för inkommande synkronisering för att omvandla från altSecurityIdentiteter till attributet alternativeSecurityId.

    Använd följande alternativ i regeln för inkommande trafik.

    Alternativ Värde
    Name Beskrivande namn på regeln, till exempel: I från Active Directory – altSecurityIdentiteter
    Anslut system Din lokal Active Directory domän
    Anslut systemobjekttyp användare
    Objekttyp för metaversum person
    Prioritet Välj ett tal under 100 som för närvarande inte används

    Klicka sedan på Transformeringar och skapa en direktmappning till målattributet alternativeSecurityId från källattributet altSecurityIdentiteter, enligt följande skärmbild.

    Skärmbild av hur du transformerar från altSecurityIdentiteter till alternateSecurityId-attribut.

  4. Skapa en regel för utgående synkronisering för att transformera från attributet alternativeSecurityId till attributet certificateUserIds i Entra ID.

    Alternativ Värde
    Name Beskrivande namn på regeln, till exempel: Ut till Microsoft Entra ID – certificateUserIds
    Anslut system Din Microsoft Entra-domän
    Anslut systemobjekttyp användare
    Objekttyp för metaversum person
    Prioritet Välj ett högt tal som för närvarande inte används framför alla standardregler, till exempel 150

    Klicka sedan på Transformeringar och skapa en direktmappning till målattributet certificateUserIds från källattributet alternativeSecurityId, som du ser i följande skärmbild.

    Skärmbild av utgående synkroniseringsregel för att transformera från attributet alternateSecurityId till certificateUserIds.

  5. Kör synkroniseringen för att fylla i data till attributet certificateUserIds.

  6. Om du vill verifiera att det har lyckats kan du visa auktoriseringsinformationen för en användare i Etttra-ID.

    Skärmbild av lyckad synkronisering.

Om du vill mappa en delmängd av värden från attributet altSecurityIdentities ersätter du transformering i steg 4 med ett uttryck. Om du vill använda ett uttryck fortsätter du till fliken Transformeringar och ändrar alternativet FlowType till Uttryck, målattributet till certificateUserIds och anger sedan uttrycket i fältet Källa. I följande exempel filtreras endast värden som överensstämmer med mappningsfälten SKI och SHA1PublicKey-certifikat:

Skärmbild av ett uttryck.

Uttryckskod:

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

Administratörer kan filtrera värden från altSecurityIdentiteter som överensstämmer med de mönster som stöds. Se till att CBA-konfigurationen har uppdaterats för att stödja de användarnamnsbindningar som synkroniseras med certificateUserIds för att aktivera autentisering med hjälp av dessa värden.

Nästa steg