Mapování na atribut certificateUserIds v Microsoft Entra ID

Objekty uživatele v Microsoft Entra ID mají atribut s názvem certificateUserIds.

  • Atribut certificateUserIds je vícehodnotový a může obsahovat až 5 hodnot.
  • Každá hodnota nesmí být delší než 1024 znaků.
  • Každá hodnota musí být jedinečná. Jakmile je hodnota na jednom uživatelském účtu, nedá se zapsat do žádného jiného uživatelského účtu ve stejném tenantovi Entra ID.
  • Hodnota nemusí být ve formátu ID e-mailu. Atribut certificateUserIds může ukládat nesměrovatelné hlavní názvy uživatelů (UPN), jako jsou bob@woodgrove nebo bob@local.

Poznámka:

I když každá hodnota musí být v ID Entra jedinečná, můžete namapovat jeden certifikát na více účtů implementací více vazeb uživatelského jména. Další informace naleznete v tématu Více vazeb uživatelského jména.

Podporované vzory pro ID uživatelů certifikátů

Hodnoty uložené v certificateUserIds by měly být ve formátu popsaném v následující tabulce. Předpony X509:<Mapování> rozlišují malá a velká písmena.

Pole mapování certifikátů Příklady hodnot v certificateUserIds
HlavníNázev X509:<PN>bob@woodgrove.com
HlavníNázev 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
Předmět X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
LYŽAŘSKÉ X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Pokud chcete získat správnou hodnotu sériového čísla, spusťte tento příkaz a uložte hodnotu uvedenou v certificateUserIds:
Syntaxe:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Příklad:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Role pro aktualizaci certificateUserIds

Aby mohli aktualizovat identifikátory certificateUserIds, musí mít pouze cloudoví uživatelé alespoň roli Privileged Authentication Správa istrator. Uživatelé pouze v cloudu můžou k aktualizaci id certifikátu použít Centrum pro správu Microsoft Entra nebo Microsoft Graph.

Synchronizovaní uživatelé musí mít alespoň roli hybrid Identity Správa istrator pro aktualizaci certificateUserIds. K aktualizaci certificateUserIds je možné použít pouze microsoft Entra Připojení synchronizací hodnoty z místního prostředí.

Poznámka:

Správci služby Active Directory můžou provádět změny, které mají vliv na hodnotu certificateUserIds v ID Microsoft Entra pro libovolný synchronizovaný účet. Správa istrátory můžou zahrnovat účty s delegovaným oprávněním správce pro synchronizované uživatelské účty nebo práva správce na serverech Microsoft Entra Připojení.

Aktualizace certificateUserIds

Pomocí následujícího postupu aktualizujte identifikátory certificateUserId pro uživatele:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako aspoň privilegovaný ověřovací Správa istrator pro uživatele jen v cloudu nebo jako alespoň hybridní identita Správa istrator pro synchronizované uživatele.

  2. Vyhledejte a vyberte Všechny uživatele.

    Snímek obrazovky s testovacím uživatelským účtem

  3. Klikněte na uživatele a klikněte na Upravit vlastnosti.

  4. Vedle informací o autorizaci klikněte na Zobrazit.

    Snímek obrazovky s informacemi o autorizaci

  5. Klikněte na Upravit ID uživatelů certifikátu.

    Snímek obrazovky s ID uživatelů certifikátu pro úpravy

  6. Klikněte na tlačítko Přidat.

    Snímek obrazovky znázorňuje, jak přidat id certificateUserIds

  7. Zadejte hodnotu a klikněte na Uložit. Můžete přidat až čtyři hodnoty, každý z 120 znaků.

    Snímek obrazovky s hodnotou, která se má zadat pro certificateUserIds

Aktualizace identifikátorů certificateUserId pomocí dotazů Microsoft Graphu

Následující příklady ukazují, jak pomocí Microsoft Graphu vyhledat identifikátory certificateUserId a aktualizovat je.

Vyhledání certificateUserIds

Autorizovaní volající můžou spouštět dotazy Microsoft Graphu, aby našli všechny uživatele s danou hodnotou certificateUserId. V objektu uživatele Microsoft Graphu je kolekce certificateUserIds uložena ve vlastnosti authorizationInfo.

Načtení identifikátorů certificateUserId všech objektů uživatele:

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

Načtení identifikátorů certificateUserId pro daného uživatele podle ID objektu uživatele:

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

Načtení objektu uživatele s konkrétní hodnotou v 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

K porovnání podmínky filtru můžete také použít not operátory a startsWith operátory. Chcete-li filtrovat proti objektu certificateUserIds, požadavek musí obsahovat $count=true řetězec dotazu a hlavička ConsistencyLevel musí být nastavena na eventual.

Aktualizace certificateUserIds

Spuštěním požadavku PATCH aktualizujte identifikátory certificateUserId pro daného uživatele.

Text požadavku

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

Aktualizace certificateUserIds pomocí příkazů PowerShellu

Pro tuto konfiguraci můžete použít Microsoft Graph PowerShell.

  1. Spusťte PowerShell s oprávněními správce.

  2. Nainstalujte a naimportujte sadu Microsoft Graph PowerShell SDK.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Připojení tenantovi a přijměte všechny.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Výpis atributu certificateUserIds daného uživatele

      $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. Vytvořte proměnnou s hodnotami 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>eec6b88788d2770a01e01775ce71f1125cd6ad0f", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. Aktualizujte atribut certificateUserIds.

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

Aktualizace certificateUserIds pomocí objektu uživatele

  1. Získejte objekt uživatele.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Aktualizujte atribut certificateUserIds objektu uživatele.

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

Aktualizace identifikátorů certificateUserId pomocí služby Microsoft Entra Připojení

Microsoft Entra connect podporuje synchronizaci hodnot s certificateUserIds z prostředí místní Active Directory. Místní služba Active Directory podporuje ověřování na základě certifikátů a více vazeb uživatelského jména. Ujistěte se, že používáte nejnovější verzi microsoft Entra Připojení.

Pokud chcete tyto metody mapování použít, je nutné vyplnit atribut altSecurityIdentities objektů uživatele v místní Active Directory. Kromě toho po použití změn ověřování na základě certifikátu na řadičích domény Windows, jak je popsáno v KB5014754, možná jste implementovali některé metody mapování, které nelze opakovaně použít (Type=strong), aby splňovaly místní požadavky na vynucení vazby silného certifikátu služby Active Directory.

Pokud chcete zabránit chybám synchronizace, ujistěte se, že hodnoty, které se synchronizují, se řídí jedním z podporovaných formátů pro identifikátory certificateUserIds.

Než začnete, ujistěte se, že všechny uživatelské účty synchronizované z místní Active Directory mají:

  • 5 nebo méně hodnot v atributech altSecurityIdentities

  • Žádná hodnota s více než 1024 znaky

  • Žádné duplicitní hodnoty

    Pečlivě zvažte, jestli má duplicitní hodnota namapovat jeden certifikát na více účtů místní Active Directory. Další informace naleznete v tématu Více vazeb uživatelského jména.

    Poznámka:

    V konkrétních scénářích může mít podmnožina uživatelů platné obchodní odůvodnění pro mapování jednoho certifikátu na více než jeden účet místní Active Directory. Projděte si tyto scénáře a v případě potřeby implementujte samostatné metody mapování, které se mapují na více než jeden účet v místní Active Directory i v ID Entra.

Důležité informace o probíhající synchronizaci identifikátorů certificateUserId

  • Ujistěte se, že proces zřizování pro naplnění hodnot v místní Active Directory implementuje správnou hygienu. Vyplní se pouze hodnoty přidružené k aktuálním platným certifikátům.
  • Hodnoty se odeberou při vypršení platnosti nebo odvolání odpovídajícího certifikátu.
  • Hodnoty větší než 1024 znaků se nezaplní.
  • Duplicitní hodnoty nejsou zřízeny.
  • K monitorování synchronizace použijte Microsoft Entra Připojení Health.

Podle těchto kroků nakonfigurujte Microsoft Entra Připojení k synchronizaci userPrincipalName s certificateUserIds:

  1. Na serveru Microsoft Entra Připojení vyhledejte editor synchronizačních pravidel a spusťte ho.

  2. Klikněte na Směr a klikněte na Odchozí.

    Snímek obrazovky s odchozím synchronizačním pravidlem

  3. Vyhledejte pravidlo Od Microsoft Entra ID – Identita uživatele, klikněte na Upravit a kliknutím na Ano potvrďte.

    Snímek obrazovky s identitou uživatele

  4. Do pole Priorita zadejte vysoké číslo a klepněte na tlačítko Další.

    Snímek obrazovky s hodnotou priority

  5. Klikněte na Možnost Transformace>Přidat transformaci. Než budete moct vytvořit novou transformaci, budete se možná muset posunout dolů v seznamu transformací.

Synchronizace hodnoty X509:<PN>PrincipalNameValue

Pokud chcete synchronizovat X509:<PN>PrincipalNameValue, vytvořte odchozí synchronizační pravidlo a v typu toku zvolte Výraz . Zvolte cílový atribut jako certificateUserIds a do zdrojového pole přidejte následující výraz. Pokud váš zdrojový atribut není userPrincipalName, můžete výraz odpovídajícím způsobem změnit.

"X509:<PN>"&[userPrincipalName]

Snímek obrazovky znázorňuje, jak synchronizovat x509

Synchronizace X509:<RFC822>RFC822Name

Pokud chcete synchronizovat X509:<RFC822>RFC822Name, vytvořte odchozí synchronizační pravidlo a v typu toku zvolte Výraz . Zvolte cílový atribut jako certificateUserIds a do zdrojového pole přidejte následující výraz. Pokud váš zdrojový atribut není userPrincipalName, můžete výraz odpovídajícím způsobem změnit.

"X509:<RFC822>"&[userPrincipalName]

Snímek obrazovky s sadou RFC822Name

  1. Klepněte na tlačítko Target Attribute, select certificateUserIds, click Source, select userPrincipalName, and then click Save.

    Snímek obrazovky znázorňuje, jak uložit pravidlo

  2. Potvrďte kliknutím na tlačítko OK .

Důležité

Předchozí příklady používají atribut userPrincipalName jako zdrojový atribut v pravidle transformace. Můžete použít libovolný dostupný atribut s příslušnou hodnotou. Některé organizace například používají atribut pošty. Složitější pravidla transformace najdete v tématu Microsoft Entra Připojení Sync: Principy výrazů deklarativního zřizování

Další informace o deklarativním zřizování výrazů naleznete v tématu Microsoft Entra Připojení: Deklarativní zřizování výrazů.

Synchronizace atributu altSecurityIdentities z Active Directory do certifikátu CertificateUserIds microsoft Entra

Atribut altSecurityIdentities není součástí výchozí sady atributů. Správce musí přidat nový atribut k objektu osoby v Metaverse a pak vytvořit příslušná synchronizační pravidla pro přenos těchto dat do certificateUserIds v Entra ID.

  1. Otevřete Návrhář metaverse a vyberte objekt osoby. Chcete-li vytvořit atribut alternativeSecurityId, klepněte na tlačítko Nový atribut. Vyberte Řetězec (neindexovatelné) a vytvořte velikost atributu až 1024 znaků, což je maximální podporovaná délka pro certificateUserIds. Pokud vyberete string (indexable), maximální velikost hodnoty atributu je 448 znaků. Ujistěte se, že jste vybrali možnost Více hodnot.

    Snímek obrazovky znázorňuje, jak vytvořit nový atribut

  2. Otevřete Metaverse Designer a vyberte alternativníSecurityId a přidejte ho do objektu osoby.

    Snímek obrazovky znázorňuje, jak do objektu osoby přidat alternativníSecurityId.

  3. Vytvořte příchozí synchronizační pravidlo pro transformaci z altSecurityIdentities na atribut alternativeSecurityId.

    V příchozím pravidlu použijte následující možnosti.

    Možnost Hodnota
    Name Popisný název pravidla, například: In z Active Directory – altSecurityIdentities
    systém Připojení Vaše místní Active Directory doména
    Připojení typ systémového objektu user
    Typ objektu Metaverse person
    Pořadí podle priority Zvolte číslo pod 100, které se aktuálně nepoužívá.

    Potom klikněte na Transformace a vytvořte přímé mapování na cílový atribut alternativeSecurityId ze zdrojového atributu altSecurityIdentities, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky znázorňuje, jak transformovat z altSecurityIdentities na atribut alternateSecurityId.

  4. Vytvořte odchozí synchronizační pravidlo pro transformaci z atributu alternativeSecurityId na atribut certificateUserIds v ID Entra.

    Možnost Hodnota
    Name Popisný název pravidla, například: Out to Microsoft Entra ID - certificateUserIds
    systém Připojení Vaše doména Microsoft Entra
    Připojení typ systémového objektu user
    Typ objektu Metaverse person
    Pořadí podle priority Zvolte vysoké číslo, které se aktuálně nepoužívá nad všemi výchozími pravidly, například 150.

    Potom klikněte na Transformace a vytvořte přímé mapování na id certificateUserId cílového atributu ze zdrojového atributu alternativeSecurityId, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky s odchozím synchronizačním pravidlem pro transformaci z atributu alternateSecurityId na certificateUserIds

  5. Spusťte synchronizaci a naplňte data atributem certificateUserIds.

  6. Chcete-li ověřit úspěch, zobrazte informace o autorizaci uživatele v ID Entra.

    Snímek obrazovky s úspěšnou synchronizací

Pokud chcete namapovat podmnožinu hodnot z atributu altSecurityIdentities, nahraďte transformaci v kroku 4 výrazem. Pokud chcete použít výraz, přejděte na kartu Transformace a změňte možnost FlowType na Expression, cílový atribut na certificateUserIds a potom zadejte výraz do pole Zdroj. Následující příklad filtruje pouze hodnoty, které odpovídají polím mapování certifikátů SKI a SHA1PublicKey:

Snímek obrazovky s výrazem

Kód výrazu:

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

Správa istrátory mohou filtrovat hodnoty z altSecurityIdentities, které odpovídají podporovaným vzorům. Ujistěte se, že je konfigurace CBA aktualizovaná tak, aby podporovala vazby uživatelského jména, které se synchronizují s certificateUserIds, aby bylo možné ověřování pomocí těchto hodnot povolit.

Další kroky