Mapowanie na atrybut certificateUserIds w identyfikatorze Entra firmy Microsoft

Obiekty użytkownika w identyfikatorze Entra firmy Microsoft mają atrybut o nazwie certificateUserIds.

  • Atrybut certificateUserIds jest wielowartościowy i może przechowywać maksymalnie 5 wartości.
  • Każda wartość nie może zawierać więcej niż 1024 znaków.
  • Każda wartość musi być unikatowa. Gdy wartość jest obecna na jednym koncie użytkownika, nie można jej zapisać na żadnym innym koncie użytkownika w tej samej dzierżawie entra ID.
  • Wartość nie musi być w formacie identyfikatora poczty e-mail. Atrybut certificateUserIds może przechowywać nazwy główne użytkownika (UPN), takie jak bob@woodgrove lub bob@local.

Uwaga

Mimo że każda wartość musi być unikatowa w identyfikatorze Entra, można mapować jeden certyfikat na wiele kont, implementując wiele powiązań nazw użytkowników. Aby uzyskać więcej informacji, zobacz Wiele powiązań nazw użytkowników.

Obsługiwane wzorce dla identyfikatorów użytkowników certyfikatów

Wartości przechowywane w identyfikatorach certificateUserId powinny być w formacie opisanym w poniższej tabeli. Prefiksy X509:<Mapowanie> są uwzględniane w wielkości liter.

Pole mapowania certyfikatu Przykłady wartości w identyfikatorach certificateUserId
NazwaGłówna X509:<PN>bob@woodgrove.com
NazwaGłówna 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
Temat X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
NARCIARSKIE X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Aby uzyskać poprawną wartość numeru seryjnego, uruchom to polecenie i zapisz wartość wyświetlaną w identyfikatorach certificateUserIds:
Składnia:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Przykład:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Role aktualizacji certificateUserIds

Użytkownicy tylko w chmurze muszą mieć co najmniej rolę uwierzytelniania uprzywilejowanego Administracja istrator, aby zaktualizować identyfikatory certificateUserId. Użytkownicy tylko w chmurze mogą używać centrum administracyjnego firmy Microsoft Entra lub programu Microsoft Graph do aktualizowania identyfikatorów certificateUserId.

Zsynchronizowani użytkownicy muszą mieć co najmniej rolę Administracja istratora tożsamości hybrydowej, aby zaktualizować identyfikatoryuseridów certyfikatu. Tylko microsoft Entra Połączenie może służyć do aktualizowania identyfikatorów certificateUserId przez zsynchronizowanie wartości ze środowiska lokalnego.

Uwaga

Administratorzy usługi Active Directory mogą wprowadzać zmiany wpływające na wartość certificateUserIds w identyfikatorze Entra firmy Microsoft dla dowolnego zsynchronizowanego konta. Administracja istratory mogą obejmować konta z delegowanymi uprawnieniami administracyjnymi w przypadku zsynchronizowanych kont użytkowników lub uprawnieniami administracyjnymi na serwerach Microsoft Entra Połączenie.

Aktualizowanie identyfikatorówuserid certyfikatu

Wykonaj następujące kroki, aby zaktualizować identyfikatory certificateUserId dla użytkowników:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator uwierzytelniania uprzywilejowanego dla użytkowników korzystających tylko z chmury lub co najmniej jako Administracja istrator tożsamości hybrydowej dla synchronizowanych użytkowników.

  2. Wyszukaj i wybierz pozycję Wszyscy użytkownicy.

    Zrzut ekranu przedstawiający testowe konto użytkownika.

  3. Kliknij użytkownika, a następnie kliknij pozycję Edytuj właściwości.

  4. Obok pozycji Informacje o autoryzacji kliknij pozycję Wyświetl.

    Zrzut ekranu przedstawiający wyświetlanie informacji o autoryzacji.

  5. Kliknij pozycję Edytuj identyfikatory użytkowników certyfikatu.

    Zrzut ekranu przedstawiający edytowanie identyfikatorów użytkowników certyfikatu.

  6. Kliknij przycisk Dodaj.

    Zrzut ekranu przedstawiający sposób dodawania identyfikatorówuserid certyfikatu.

  7. Wprowadź wartość i kliknij przycisk Zapisz. Można dodać maksymalnie cztery wartości, każdy z 120 znaków.

    Zrzut ekranu przedstawiający wartość, która ma być wprowadzana dla identyfikatorów certificateUserId.

Aktualizowanie identyfikatorów certificateUserId przy użyciu zapytań programu Microsoft Graph

W poniższych przykładach pokazano, jak za pomocą programu Microsoft Graph wyszukać identyfikatory certificateUserId i zaktualizować je.

Wyszukiwanie identyfikatorówuseridów certyfikatu

Autoryzowane osoby wywołujące mogą uruchamiać zapytania programu Microsoft Graph, aby znaleźć wszystkich użytkowników z daną wartością certificateUserId. W obiekcie użytkownika programu Microsoft Graph kolekcja certificateUserIds jest przechowywana we właściwości authorizationInfo.

Aby pobrać identyfikatory certificateUserId wszystkich obiektów użytkownika:

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

Aby pobrać identyfikatory certificateUserId dla danego użytkownika według identyfikatora ObjectId użytkownika:

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

Aby pobrać obiekt użytkownika z określoną wartością w 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

Można również użyć not operatorów i startsWith , aby dopasować warunek filtru. Aby filtrować względem obiektu certificateUserIds, żądanie musi zawierać $count=true ciąg zapytania, a nagłówek ConsistencyLevel musi być ustawiony na eventualwartość .

Aktualizowanie identyfikatorówuserid certyfikatu

Uruchom żądanie PATCH, aby zaktualizować identyfikatory certificateUserId dla danego użytkownika.

Treść żądania

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

Aktualizowanie identyfikatorów certificateUserId przy użyciu poleceń programu PowerShell

W przypadku tej konfiguracji można użyć programu Microsoft Graph PowerShell.

  1. Uruchom program PowerShell z uprawnieniami administratora.

  2. Zainstaluj i zaimportuj zestaw MICROSOFT Graph PowerShell SDK.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Połączenie do dzierżawy i zaakceptuj wszystkie.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Wyświetl atrybut certificateUserIds danego użytkownika.

      $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. Utwórz zmienną z wartościami 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. Zaktualizuj atrybut certificateUserIds.

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

Aktualizowanie identyfikatorów certificateUserId za pomocą obiektu użytkownika

  1. Pobierz obiekt użytkownika.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Zaktualizuj atrybut certificateUserIds obiektu użytkownika.

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

Aktualizowanie identyfikatorów certificateUserId przy użyciu Połączenie firmy Microsoft

Program Microsoft Entra Connect obsługuje synchronizowanie wartości z identyfikatorami certificateUserIds ze środowiska lokalna usługa Active Directory. Lokalna usługa Active Directory obsługuje uwierzytelnianie oparte na certyfikatach i wiele powiązań nazw użytkowników. Upewnij się, że używasz najnowszej wersji usługi Microsoft Entra Połączenie.

Aby użyć tych metod mapowania, należy wypełnić atrybut altSecurityIdentities obiektów użytkownika w lokalna usługa Active Directory. Ponadto po zastosowaniu zmian uwierzytelniania opartych na certyfikatach na kontrolerach domeny systemu Windows zgodnie z opisem w KB5014754 można zaimplementować niektóre metody mapowania nienadające się do wielokrotnego użytku (Type=strong), aby spełnić lokalne wymagania wymuszania powiązań certyfikatów usługi Active Directory.

Aby zapobiec błędom synchronizacji, upewnij się, że synchronizowane wartości są zgodne z jednym z obsługiwanych formatów dla identyfikatorów certificateUserId.

Przed rozpoczęciem upewnij się, że wszystkie konta użytkowników zsynchronizowane z lokalna usługa Active Directory mają następujące elementy:

  • 5 lub mniej wartości w atrybutach altSecurityIdentities

  • Brak wartości z więcej niż 1024 znakami

  • Brak zduplikowanych wartości

    Należy dokładnie rozważyć, czy zduplikowana wartość ma być mapowana na jeden certyfikat na wiele kont lokalna usługa Active Directory. Aby uzyskać więcej informacji, zobacz Wiele powiązań nazw użytkowników.

    Uwaga

    W określonych scenariuszach podzbiór użytkowników może mieć prawidłowe uzasadnienie biznesowe mapowania pojedynczego certyfikatu na więcej niż jedno konto lokalna usługa Active Directory. Przejrzyj te scenariusze i w razie potrzeby zaimplementuj oddzielne metody mapowania, aby mapować na więcej niż jedno konto zarówno w lokalna usługa Active Directory, jak i Entra ID.

Zagadnienia dotyczące ciągłej synchronizacji identyfikatorów certificateUserId

  • Upewnij się, że proces aprowizacji wypełniania wartości w lokalna usługa Active Directory implementuje właściwą higienę. Wypełniane są tylko wartości skojarzone z bieżącymi prawidłowymi certyfikatami.
  • Wartości są usuwane po wygaśnięciu lub odwołaniu odpowiedniego certyfikatu.
  • Wartości większe niż 1024 znaki nie są wypełniane.
  • Zduplikowane wartości nie są aprowidowane.
  • Monitorowanie synchronizacji za pomocą usługi Microsoft Entra Połączenie Health.

Wykonaj następujące kroki, aby skonfigurować Połączenie firmy Microsoft w celu zsynchronizowania parametru userPrincipalName z identyfikatorami certificateUserId:

  1. Na serwerze Microsoft Entra Połączenie znajdź i uruchom Edytor reguł synchronizacji.

  2. Kliknij pozycję Kierunek, a następnie kliknij pozycję Wychodzące.

    Zrzut ekranu przedstawiający regułę synchronizacji ruchu wychodzącego.

  3. Znajdź wykluczanie identyfikatora entra firmy Microsoft — tożsamość użytkownika, kliknij pozycję Edytuj, a następnie kliknij przycisk Tak , aby potwierdzić.

    Zrzut ekranu przedstawiający tożsamość użytkownika.

  4. Wprowadź dużą liczbę w polu Pierwszeństwo, a następnie kliknij przycisk Dalej.

    Zrzut ekranu przedstawiający wartość pierwszeństwa.

  5. Kliknij pozycję Przekształcenia>Dodaj przekształcenie. Zanim będzie można utworzyć nowy, może być konieczne przewinięcie w dół listy przekształceń.

Synchronizowanie wartości X509:<PN>PrincipalNameValue

Aby zsynchronizować wartość X509:<PN>PrincipalNameValue, utwórz regułę synchronizacji ruchu wychodzącego i wybierz pozycję Wyrażenie w typie przepływu. Wybierz atrybut docelowy jako certificateUserIds, a w polu źródłowym dodaj następujące wyrażenie. Jeśli atrybut źródłowy nie jest userPrincipalName, możesz odpowiednio zmienić wyrażenie.

"X509:<PN>"&[userPrincipalName]

Zrzut ekranu przedstawiający sposób synchronizacji x509.

Synchronizuj X509:<RFC822>RFC822Name

Aby zsynchronizować X509:<RFC822>RFC822Name, utwórz regułę synchronizacji ruchu wychodzącego i wybierz pozycję Wyrażenie w typie przepływu. Wybierz atrybut docelowy jako certificateUserIds, a w polu źródłowym dodaj następujące wyrażenie. Jeśli atrybut źródłowy nie jest userPrincipalName, możesz odpowiednio zmienić wyrażenie.

"X509:<RFC822>"&[userPrincipalName]

Zrzut ekranu przedstawiający sposób synchronizowania nazwy RFC822Name.

  1. Kliknij pozycję Atrybut docelowy, wybierz pozycję certificateUserIds, kliknij pozycję Źródło, wybierz pozycję userPrincipalName, a następnie kliknij przycisk Zapisz.

    Zrzut ekranu przedstawiający sposób zapisywania reguły.

  2. Kliknij przycisk OK , aby potwierdzić.

Ważne

Powyższe przykłady używają atrybutu userPrincipalName jako atrybutu źródłowego w regule przekształcania. Możesz użyć dowolnego dostępnego atrybutu z odpowiednią wartością. Na przykład niektóre organizacje używają atrybutu poczty. Aby uzyskać bardziej złożone reguły przekształcania, zobacz Microsoft Entra Połączenie Sync: Understanding Declarative Provisioning Expressions (Microsoft Entra Połączenie Sync: Understanding Declarative Provisioning Expressions (Omówienie wyrażeń aprowizacji deklaratywnej)

Aby uzyskać więcej informacji na temat wyrażeń aprowizacji deklaratywnej, zobacz Microsoft Entra Połączenie: Deklaratywne wyrażenia aprowizacji.

Synchronizowanie atrybutu altSecurityIdentities z usługi Active Directory do identyfikatora entra firmy Microsoft CertificateUserIds

Atrybut altSecurityIdentities nie jest częścią domyślnego zestawu atrybutów. Administrator musi dodać nowy atrybut do obiektu osoby w metaverse, a następnie utworzyć odpowiednie reguły synchronizacji, aby przekazać te dane do identyfikatorów certificateUserId w identyfikatorze Entra.

  1. Otwórz Projektant Metaverse i wybierz obiekt osoby. Aby utworzyć atrybut alternativeSecurityId, kliknij pozycję Nowy atrybut. Wybierz pozycję Ciąg (nieindeksowalny), aby utworzyć rozmiar atrybutu o rozmiarze do 1024 znaków, który jest maksymalną obsługiwaną długością identyfikatorów certificateUserId. W przypadku wybrania pozycji Ciąg (indeksowalny) maksymalny rozmiar wartości atrybutu wynosi 448 znaków. Upewnij się, że wybrano pozycję Wiele wartości.

    Zrzut ekranu przedstawiający sposób tworzenia nowego atrybutu.

  2. Otwórz Projektant Metaverse i wybierz pozycję alternativeSecurityId, aby dodać go do obiektu person.

    Zrzut ekranu przedstawiający sposób dodawania identyfikatora alternativeSecurityId do obiektu person.

  3. Utwórz regułę synchronizacji ruchu przychodzącego, aby przekształcić atrybut altSecurityIdentities do atrybutu alternativeSecurityId.

    W regule ruchu przychodzącego użyj następujących opcji.

    Opcja Wartość
    Nazwisko Opisowa nazwa reguły, na przykład: w usłudze Active Directory — altSecurityIdentities
    system Połączenie Domena lokalna usługa Active Directory
    Połączenie typ obiektu systemowego Użytkownik
    Typ obiektu Metaverse osoba
    Pierwszeństwo Wybierz liczbę poniżej 100, która nie jest obecnie używana

    Następnie kliknij pozycję Przekształcenia i utwórz bezpośrednie mapowanie atrybutu docelowego alternativeSecurityId z atrybutu źródłowego altSecurityIdentities, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu przedstawiający sposób przekształcania atrybutu altSecurityIdentities na alternateSecurityId.

  4. Utwórz regułę synchronizacji ruchu wychodzącego, aby przekształcić atrybut alternativeSecurityId do atrybutu certificateUserIds w identyfikatorze Entra.

    Opcja Wartość
    Nazwisko Opisowa nazwa reguły, na przykład: out to Microsoft Entra ID — certificateUserIds
    system Połączenie Twoja domena Microsoft Entra
    Połączenie typ obiektu systemowego Użytkownik
    Typ obiektu Metaverse osoba
    Pierwszeństwo Wybierz dużą liczbę, która nie jest obecnie używana powyżej wszystkich reguł domyślnych, takich jak 150

    Następnie kliknij pozycję Przekształcenia i utwórz bezpośrednie mapowanie do certyfikatu atrybutu docelowegoUserIds z atrybutu źródłowego alternativeSecurityId, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu przedstawiający regułę synchronizacji ruchu wychodzącego w celu przekształcenia atrybutu alternateSecurityId na certificateUserIds.

  5. Uruchom synchronizację, aby wypełnić dane atrybutem certificateUserIds.

  6. Aby zweryfikować powodzenie, wyświetl informacje o autoryzacji użytkownika w identyfikatorze Entra.

    Zrzut ekranu przedstawiający pomyślną synchronizację.

Aby zamapować podzbiór wartości z atrybutu altSecurityIdentities, zastąp przekształcenie w kroku 4 wyrażeniem. Aby użyć wyrażenia, przejdź do karty Przekształcenia i zmień opcję FlowType na Expression, atrybut docelowy na certificateUserIds, a następnie wprowadź wyrażenie w polu Źródło. Poniższy przykład filtruje tylko wartości, które są zgodne z polami mapowania certyfikatu SKI i SHA1PublicKey:

Zrzut ekranu przedstawiający wyrażenie.

Kod wyrażeń:

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

Administracja istratory mogą filtrować wartości z wartości altSecurityIdentities, które są zgodne z obsługiwanymi wzorcami. Upewnij się, że konfiguracja cba została zaktualizowana w celu obsługi powiązań nazwy użytkownika synchronizowanych z identyfikatorami certificateUserId w celu włączenia uwierzytelniania przy użyciu tych wartości.

Następne kroki