Mapping all'attributo certificateUserIds in Microsoft Entra ID

Gli oggetti utente in Microsoft Entra ID hanno un attributo denominato certificateUserIds.

  • L'attributo certificateUserIds è multivalore e può contenere fino a 10 valori.
  • Ogni valore non può contenere più di 1024 caratteri.
  • Ogni valore deve essere univoco. Quando un valore è presente in un account utente, non può essere scritto in nessun altro account utente nello stesso tenant di Microsoft Entra.
  • Il valore non deve essere in formato ID di posta elettronica. L'attributo certificateUserIds può archiviare nomi dell'entità utente (UPN) non indirizzabili, ad esempio bob@woodgrove o bob@local.

Nota

Anche se ogni valore deve essere univoco in Microsoft Entra ID, è possibile eseguire il mapping di un singolo certificato a più account implementando più associazioni nome utente. Per altre informazioni, vedere Associazioni con più nomi utente.

Modelli supportati per gli ID utente del certificato

I valori archiviati in certificateUserIds devono essere nel formato descritto nella tabella seguente. I prefissi X509:<Mapping> fanno distinzione tra maiuscole e minuscole.

Campo mapping certificati Esempi di valori in certificateUserIds
Nome entità X509:<PN>bob@woodgrove.com
Nome entità 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
Oggetto X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SCI X509:<SKI>aB1cD2eF3gH4iJ5kL6mN7oP8qR
SHA1PublicKey X509:<SHA1-PUKEY>cD2eF3gH4iJ5kL6mN7oP8qR9sT
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>eF3gH4iJ5kL6mN7oP8qR9sT0uV
Per ottenere il valore corretto per il numero di serie, eseguire questo comando e archiviare il valore visualizzato in certificateUserIds:
Sintassi:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Esempio:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Ruoli per aggiornare certificateUserIds

Gli utenti solo cloud devono avere almeno il ruolo amministratore autenticazione con privilegi per aggiornare certificateUserIds. Gli utenti solo cloud possono usare l'interfaccia di amministrazione di Microsoft Entra o Microsoft Graph per aggiornare certificateUserIds.

Gli utenti sincronizzati devono avere almeno il ruolo di amministratore identità ibrida per aggiornare certificateUserIds. Solo Microsoft Entra Connect può essere usato per aggiornare certificateUserIds sincronizzando il valore da locale.

Nota

Gli amministratori di Active Directory possono apportare modifiche che influisce sul valore certificateUserIds in Microsoft Entra ID per qualsiasi account sincronizzato. Gli amministratori possono includere account con privilegi amministrativi delegati sugli account utente sincronizzati o diritti amministrativi sui server Microsoft Entra Connect.

Aggiornare certificateUserIds

Usare la procedura seguente per aggiornare certificateUserIds per gli utenti:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un amministratore di autenticazione con privilegi per gli utenti solo cloud o almeno un amministratore di identità ibrida per gli utenti sincronizzati.

  2. Cercare e selezionare Tutti gli utenti.

    Screenshot dell'account utente di test.

  3. Fare clic su un utente e quindi su Modifica proprietà.

  4. Accanto a Informazioni sull'autorizzazione fare clic su Visualizza.

    Screenshot della visualizzazione delle informazioni sull'autorizzazione.

  5. Fare clic su Modifica ID utente certificato.

    Screenshot di Modifica ID utente certificato.

  6. Fare clic su Aggiungi.

    Screenshot di come aggiungere un certificateUserIds.

  7. Immettere il valore e fare clic su Salva. È possibile aggiungere fino a quattro valori, ognuno di 120 caratteri.

    Screenshot di un valore da immettere per certificateUserIds.

Aggiornare certificateUserIds usando query di Microsoft Graph

Gli esempi seguenti illustrano come usare Microsoft Graph per cercare certificateUserIds e aggiornarli.

Cercare certificateUserIds

I chiamanti autorizzati possono eseguire query di Microsoft Graph per trovare tutti gli utenti con un determinato valore certificateUserId. Nell'oggetto utente di Microsoft Graph la raccolta di certificateUserIds viene archiviata nella proprietà authorizationInfo.

Per recuperare certificateUserIds di tutti gli oggetti utente:

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

Per recuperare certificateUserIds per un determinato utente in base all'ObjectId dell'utente:

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

Per recuperare l'oggetto utente con un valore specifico in 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

È anche possibile usare gli not operatori e startsWith per trovare la corrispondenza con la condizione di filtro. Per filtrare in base all'oggetto certificateUserIds, la richiesta deve includere la $count=true stringa di query e l'intestazione ConsistencyLevel deve essere impostata su eventual.

Aggiornare certificateUserIds

Eseguire una richiesta PATCH per aggiornare i certificateUserIds per un determinato utente.

Testo della richiesta

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

Aggiornare certificateUserIds usando i comandi di PowerShell

Per questa configurazione, è possibile usare Microsoft Graph PowerShell.

  1. Avviare PowerShell con privilegi di amministratore.

  2. Installare e importare Microsoft Graph PowerShell SDK.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Connettersi al tenant e accettare tutto.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Elencare l'attributo certificateUserIds di un determinato utente.

      $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. Creare una variabile con i valori certificateUserIds.

      #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>gH4iJ5kL6mN7oP8qR9sT0uV1wX", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. Aggiornare l'attributo certificateUserIds.

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

Aggiornare certificateUserIds usando l'oggetto utente

  1. Ottenere l'oggetto utente.

      $userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Aggiornare l'attributo certificateUserIds dell'oggetto utente.

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

Aggiornare certificateUserIds con Microsoft Entra Connect

Microsoft Entra Connect supporta la sincronizzazione dei valori con certificateUserIds da un ambiente Active Directory locale. Active Directory locale supporta l'autenticazione basata su certificati e più associazioni di nomi utente. Assicurarsi di usare la versione più recente di Microsoft Entra Connect.

Per usare questi metodi di mapping, è necessario popolare l'attributo altSecurityIdentities degli oggetti utente nella Active Directory locale. Inoltre, dopo aver applicato modifiche all'autenticazione basata su certificati nei controller di dominio Windows, come descritto in KB5014754, è possibile che siano stati implementati alcuni dei metodi di mapping non riutilizzabili (Type=strong) per soddisfare i requisiti di imposizione dell'associazione di certificati avanzata di Active Directory locale.

Per evitare errori di sincronizzazione, assicurarsi che i valori sincronizzati seguano uno dei formati supportati per certificateUserIds.

Prima di iniziare, assicurarsi che tutti gli account utente sincronizzati da Active Directory locale abbiano:

  • 5 o meno valori negli attributi altSecurityIdentities

  • Nessun valore con più di 1024 caratteri

  • Nessun valore duplicato

    Valutare attentamente se un valore duplicato deve eseguire il mapping di un singolo certificato a più account Active Directory locale. Per altre informazioni, vedere Associazioni con più nomi utente.

    Nota

    In scenari specifici, un subset di utenti potrebbe avere una giustificazione aziendale valida per eseguire il mapping di un singolo certificato a più di un account Active Directory locale. Esaminare questi scenari e, se necessario, implementare metodi di mapping separati per eseguire il mapping a più account in entrambi i Active Directory locale e Microsoft Entra ID.

Considerazioni sulla sincronizzazione continua di certificateUserIds

  • Assicurarsi che il processo di provisioning per popolare i valori in Active Directory locale implementi un'igiene corretta. Vengono popolati solo i valori associati ai certificati validi correnti.
  • I valori vengono rimossi quando il certificato corrispondente è scaduto o revocato.
  • I valori maggiori di 1024 caratteri non vengono popolati.
  • Non viene effettuato il provisioning dei valori duplicati.
  • Usare Microsoft Entra Connect Health per monitorare la sincronizzazione.

Seguire questa procedura per configurare Microsoft Entra Connect per sincronizzare userPrincipalName con certificateUserIds:

  1. Nel server Microsoft Entra Connect trovare e avviare l'Editor regole di sincronizzazione.

  2. Fare clic su Direzione e quindi su In uscita.

    Screenshot della regola di sincronizzazione in uscita.

  3. Trovare la regola Out to Microsoft Entra ID – User Identity ,fare clic su Modifica e fare clic su per confermare.

    Screenshot dell'identità utente.

  4. Immettere un numero elevato nel campo Precedenza e quindi fare clic su Avanti.

    Screenshot di un valore di precedenza.

  5. Fare clic su Trasformazioni>Aggiungi trasformazione. Potrebbe essere necessario scorrere verso il basso l'elenco delle trasformazioni prima di crearne uno nuovo.

Synchronize X509:<PN>PrincipalNameValue

Per sincronizzare X509:<PN>PrincipalNameValue, creare una regola di sincronizzazione in uscita e scegliere Espressione nel tipo di flusso. Scegliere l'attributo di destinazione come certificateUserIds e nel campo di origine aggiungere l'espressione seguente. Se l'attributo di origine non è userPrincipalName, è possibile modificare l'espressione di conseguenza.

"X509:<PN>"&[userPrincipalName]

Screenshot di come sincronizzare x509.

Sincronizzare X509:<RFC822>RFC822Name

Per sincronizzare X509:<RFC822>RFC822Name, creare una regola di sincronizzazione in uscita e scegliere Espressione nel tipo di flusso. Scegliere l'attributo di destinazione come certificateUserIds e nel campo di origine aggiungere l'espressione seguente. Se l'attributo di origine non è userPrincipalName, è possibile modificare l'espressione di conseguenza.

"X509:<RFC822>"&[userPrincipalName]

Screenshot di come sincronizzare RFC822Name.

  1. Fare clic su Attributo di destinazione, selezionare certificateUserIds, fare clic su Origine, selezionare userPrincipalName e quindi fare clic su Salva.

    Screenshot di come salvare una regola.

  2. Fare clic su OK per confermare.

Importante

Gli esempi precedenti usano userPrincipalName come attributo di origine nella regola di trasformazione. È possibile usare qualsiasi attributo disponibile con il valore appropriato. Ad esempio, alcune organizzazioni usano l'attributo mail. Per regole di trasformazione più complesse, vedere Sincronizzazione Microsoft Entra Connect: Informazioni sulle espressioni di provisioning dichiarativo

Per altre informazioni sulle espressioni di provisioning dichiarativo, vedere Microsoft Entra Connect: Declarative Provisioning Expressions.For more information about declarative provisioning expressions, see Microsoft Entra Connect: Declarative Provisioning Expressions.

Sincronizzare l'attributo altSecurityIdentities da Active Directory al certificato Microsoft EntraUserIds

L'attributo altSecurityIdentities non fa parte del set di attributi predefiniti. Un amministratore deve aggiungere un nuovo attributo all'oggetto person nel Metaverse e quindi creare le regole di sincronizzazione appropriate per inoltrare questi dati a certificateUserIds in Microsoft Entra ID.

  1. Aprire Metaverse Designer e selezionare l'oggetto person. Per creare l'attributo alternativeSecurityId, fare clic su Nuovo attributo. Selezionare String (non indicizzato) per creare una dimensione dell'attributo fino a 1024 caratteri, ovvero la lunghezza massima supportata per certificateUserIds. Se si seleziona String (indicizzato), la dimensione massima di un valore di attributo è di 448 caratteri. Assicurarsi di selezionare Multivalore.

    Screenshot di come creare un nuovo attributo.

  2. Aprire Metaverse Designer e selezionare alternativeSecurityId per aggiungerlo all'oggetto person.

    Screenshot di come aggiungere alternativeSecurityId all'oggetto person.

  3. Creare una regola di sincronizzazione in ingresso da altSecurityIdentities all'attributo alternativeSecurityId.

    Nella regola in ingresso usare le opzioni seguenti.

    Opzione valore
    Nome Nome descrittivo della regola, ad esempio: Da Active Directory - altSecurityIdentities
    Connected System Dominio di Active Directory locale
    Connected System Object Type utente
    Metaverse Object Type person
    Precedenza Scegliere un numero inferiore a 100 attualmente non usato

    Fare quindi clic su Trasformazioni e creare un mapping diretto all'attributo di destinazione alternativeSecurityId dall'attributo di origine altSecurityIdentities, come illustrato nello screenshot seguente.

    Screenshot di come trasformare da altSecurityIdentities all'attributo alternateSecurityId.

  4. Creare una regola di sincronizzazione in uscita da un attributo alternativeSecurityId all'attributo certificateUserIds in Microsoft Entra ID.

    Opzione valore
    Nome Nome descrittivo della regola, ad esempio: Out to Microsoft Entra ID - certificateUserIds
    Connected System Dominio Microsoft Entra
    Connected System Object Type utente
    Metaverse Object Type person
    Precedenza Scegliere un numero elevato non attualmente usato sopra tutte le regole predefinite, ad esempio 150

    Fare quindi clic su Trasformazioni e creare un mapping diretto al certificato dell'attributo di destinazioneUserIds dall'attributo di origine alternativeSecurityId, come illustrato nello screenshot seguente.

    Screenshot della regola di sincronizzazione in uscita da un attributo alternateSecurityId a certificateUserIds.

  5. Eseguire la sincronizzazione per popolare i dati nell'attributo certificateUserIds.

  6. Per verificare l'esito positivo, visualizzare le informazioni di autorizzazione di un utente in Microsoft Entra ID.

    Screenshot della sincronizzazione riuscita.

Per eseguire il mapping di un subset di valori dall'attributo altSecurityIdentities, sostituire la trasformazione nel passaggio 4 con un'espressione. Per usare un'espressione, passare alla scheda Trasformazioni e modificare l'opzione FlowType su Expression, l'attributo di destinazione in certificateUserIds e quindi immettere l'espressione nel campo Origine. Nell'esempio seguente vengono filtrati solo i valori allineati ai campi di mapping dei certificati SKI e SHA1PublicKey:

Screenshot di un'espressione.

Codice dell'espressione:

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

Gli amministratori possono filtrare i valori da altSecurityIdentities allineati ai modelli supportati. Assicurarsi che la configurazione dell'autorità di certificazione sia stata aggiornata per supportare le associazioni nome utente sincronizzate con certificateUserIds per abilitare l'autenticazione usando questi valori.

Passaggi successivi