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 |
SKI | 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:
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.
Cercare e selezionare Tutti gli utenti.
Fare clic su un utente e quindi su Modifica proprietà.
Accanto a Informazioni sull'autorizzazione fare clic su Visualizza.
Fare clic su Modifica ID utente certificato.
Fare clic su Aggiungi.
Immettere il valore e fare clic su Salva. È possibile aggiungere fino a quattro valori, ognuno di 120 caratteri.
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.
Avviare PowerShell con privilegi di amministratore.
Installare e importare Microsoft Graph PowerShell SDK.
Install-Module Microsoft.Graph -Scope AllUsers Import-Module Microsoft.Graph.Authentication Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Connettersi al tenant e accettare tutto.
Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
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
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" ) } }
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
Ottenere l'oggetto utente.
$userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
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:
Nel server Microsoft Entra Connect trovare e avviare l'Editor regole di sincronizzazione.
Fare clic su Direzione e quindi su In uscita.
Trovare la regola Out to Microsoft Entra ID – User Identity ,fare clic su Modifica e fare clic su Sì per confermare.
Immettere un numero elevato nel campo Precedenza e quindi fare clic su Avanti.
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]
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]
Fare clic su Attributo di destinazione, selezionare certificateUserIds, fare clic su Origine, selezionare userPrincipalName e quindi fare clic su Salva.
Fare clic su OK per confermare.
Importante
Gli esempi precedenti usano l'attributo 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.
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.
Aprire Metaverse Designer e selezionare alternativeSecurityId per aggiungerlo all'oggetto person.
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.
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.
Eseguire la sincronizzazione per popolare i dati nell'attributo certificateUserIds.
Per verificare l'esito positivo, visualizzare le informazioni di autorizzazione di un utente in Microsoft Entra ID.
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:
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
- Panoramica di Microsoft Entra CBA
- Approfondimento tecnico su Microsoft Entra CBA
- Come configurare Microsoft Entra CBA
- Microsoft Entra CBA nei dispositivi iOS
- Microsoft Entra CBA nei dispositivi Android
- Accesso tramite smart card di Windows con Microsoft Entra CBA
- Come eseguire la migrazione di utenti federati
- Domande frequenti