Поделиться через


Сопоставление атрибута certificateUserIds в идентификаторе Microsoft Entra

Пользовательские объекты в идентификаторе Microsoft Entra имеют атрибут с именем certificateUserIds.

  • Атрибут certificateUserIds имеет многозначное значение и может содержать до 10 значений.
  • Каждое значение не может превышать 1024 символов.
  • Каждое значение должно быть уникальным. После того как значение присутствует в одной учетной записи пользователя, его нельзя записать в другую учетную запись пользователя в том же клиенте Entra ID.
  • Значение не должно быть в формате идентификатора электронной почты. Атрибут certificateUserIds может хранить неизменяемые имена субъектов-пользователей (UPN), такие как bob@woodgrove или bob@local.

Примечание.

Хотя каждое значение должно быть уникальным в идентификаторе Entra, можно сопоставить один сертификат с несколькими учетными записями, реализуя несколько привязок имени пользователя. Дополнительные сведения см. в разделе "Несколько привязок имени пользователя".

Поддерживаемые шаблоны для идентификаторов пользователей сертификата

Значения, хранящиеся в certificateUserIds, должны находиться в формате, описанном в следующей таблице. Префиксы X509:<Mapping> чувствительны к регистру.

Поле сопоставления сертификатов Примеры значений в certificateUserIds
Основное имя X509:<PN>bob@woodgrove.com
Основное имя 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
Тема X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SKU X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Чтобы получить правильное значение для серийного номера, выполните следующую команду и сохраните значение, отображаемое в certificateUserIds:
Синтаксис
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Пример:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Роли для обновления certificateUserIds

Для обновления certificateUserIds пользователей, доступных только для облака, должна быть по крайней мере роль привилегированной проверки подлинности Администратор istrator. Пользователи, доступные только для облака, могут использовать центр администрирования Microsoft Entra или Microsoft Graph для обновления сертификатовUserIds.

Синхронизированные пользователи должны иметь по крайней мере роль гибридного удостоверения Администратор istrator для обновления certificateUserIds. Только microsoft Entra Подключение можно использовать для обновления сертификатовUserIds путем синхронизации значения из локальной среды.

Примечание.

Администраторы Active Directory могут вносить изменения, влияющие на значение certificateUserIds в идентификаторе Microsoft Entra для любой синхронизированной учетной записи. Администратор istrator могут включать учетные записи с делегированными правами администратора через синхронизированные учетные записи пользователей или права администратора на серверах Microsoft Entra Подключение.

Обновление certificateUserIds

Чтобы обновить certificateUserIds для пользователей, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум привилегированную проверку подлинности Администратор istrator для облачных пользователей или как минимум гибридный Администратор istrator для синхронизированных пользователей.

  2. Найдите и выберите "Все пользователи".

    Снимок экрана: тестовая учетная запись пользователя.

  3. Щелкните пользователя и нажмите кнопку "Изменить свойства".

  4. Рядом с сведениями о авторизации нажмите кнопку "Вид".

    Снимок экрана: просмотр сведений о авторизации.

  5. Щелкните "Изменить идентификаторы пользователей сертификата".

    Снимок экрана: изменение идентификаторов пользователей сертификата.

  6. Нажмите кнопку Добавить.

    Снимок экрана: добавление сертификатаUserIds.

  7. Введите значение и нажмите кнопку "Сохранить". Вы можете добавить до четырех значений, каждый из 120 символов.

    Снимок экрана: значение, которое нужно ввести для certificateUserIds.

Обновление certificateUserIds с помощью запросов Microsoft Graph

В следующих примерах показано, как использовать Microsoft Graph для поиска сертификатовUserIds и их обновления.

Поиск сертификатаUserIds

Авторизованные вызывающие пользователи могут выполнять запросы Microsoft Graph, чтобы найти всех пользователей с заданным значением certificateUserId. В объекте пользователя Microsoft Graph коллекция certificateUserIds хранится в свойстве authorizationInfo.

Чтобы получить certificateUserIds всех объектов пользователя:

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

Чтобы получить certificateUserIds для заданного пользователя с помощью ObjectId пользователя:

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

Чтобы получить объект пользователя с определенным значением в 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

Вы также можете использовать not операторы и startsWith операторы для соответствия условию фильтра. Чтобы отфильтровать объект certificateUserIds, запрос должен содержать $count=true строку запроса, а заголовок ConsistencyLevel должен иметь значение eventual.

Обновление certificateUserIds

Выполните запрос PATCH, чтобы обновить сертификатUserIds для данного пользователя.

Текст запроса

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

Обновление certificateUserIds с помощью команд PowerShell

Для этой конфигурации можно использовать Microsoft Graph PowerShell.

  1. Запустите PowerShell с правами администратора.

  2. Установите и импортируйте пакет SDK Microsoft Graph PowerShell.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Подключение клиенту и принять все.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Перечисление атрибута certificateUserIds заданного пользователя.

      $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. Создайте переменную со значениями 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. Обновите атрибут certificateUserIds.

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

Обновление certificateUserIds с помощью объекта пользователя

  1. Получите объект пользователя.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Обновите атрибут certificateUserIds объекта пользователя.

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

Обновление сертификатовUserIds с помощью Microsoft Entra Подключение

Microsoft Entra connect поддерживает синхронизацию значений с certificateUserIds из среды локальная служба Active Directory. Локальная служба Active Directory поддерживает проверку подлинности на основе сертификатов и несколько привязок пользователей. Убедитесь, что используется последняя версия Microsoft Entra Подключение.

Чтобы использовать эти методы сопоставления, необходимо заполнить атрибут altSecurityIdentities объектов пользователей в локальная служба Active Directory. Кроме того, после применения изменений проверки подлинности на основе сертификатов на контроллерах домена Windows, как описано в КБ 5014754, возможно, вы реализовали некоторые методы сопоставления, неиспользуемые для повторного использования (Type=strong) для соблюдения требований к принудительному применению привязки сертификатов локальной среды Active Directory.

Чтобы предотвратить ошибки синхронизации, убедитесь, что значения синхронизированы в одном из поддерживаемых форматов для certificateUserIds.

Прежде чем начать, убедитесь, что все учетные записи пользователей, синхронизированные из локальная служба Active Directory имеют:

  • 5 или меньше значений в атрибутах altSecurityIdentities

  • Нет значения с более чем 1024 символами

  • Повторяющиеся значения отсутствуют

    Тщательно рассмотрите, следует ли сопоставить один сертификат с несколькими учетными записями локальная служба Active Directory. Дополнительные сведения см. в разделе "Несколько привязок имени пользователя".

    Примечание.

    В определенных сценариях подмножество пользователей может иметь допустимое бизнес-обоснование для сопоставления одного сертификата с несколькими локальная служба Active Directory учетной записью. Просмотрите эти сценарии и при необходимости реализуйте отдельные методы сопоставления для сопоставления с несколькими учетными записями в локальная служба Active Directory и идентификаторе Entra.

Рекомендации по текущей синхронизации certificateUserIds

  • Убедитесь, что процесс подготовки для заполнения значений в локальная служба Active Directory реализует правильную гигиену. Заполняются только значения, связанные с текущими допустимыми сертификатами.
  • Значения удаляются при истечении срока действия соответствующего сертификата или отмене.
  • Значения больше 1024 символов не заполняются.
  • Повторяющиеся значения не подготовлены.
  • Используйте Microsoft Entra Подключение Health для мониторинга синхронизации.

Выполните следующие действия, чтобы настроить Microsoft Entra Подключение для синхронизации userPrincipalName с certificateUserIds:

  1. На сервере Microsoft Entra Подключение найдите и запустите редактор правил синхронизации.

  2. Нажмите кнопку "Направление" и нажмите кнопку "Исходящий".

    Снимок экрана: правило исходящей синхронизации.

  3. Найдите правило "Идентификатор записи Майкрософт" — удостоверение пользователя, нажмите кнопку "Изменить" и нажмите кнопку "Да ", чтобы подтвердить.

    Снимок экрана: удостоверение пользователя.

  4. Введите большое число в поле "Приоритет " и нажмите кнопку "Далее".

    Снимок экрана: значение приоритета.

  5. Щелкните преобразование "Добавить преобразования>". Чтобы создать новый, может потребоваться прокрутить список преобразований вниз.

Синхронизация X509:<PN>PrincipalNameValue

Чтобы синхронизировать X509:<PN>PrincipalNameValue, создайте правило исходящей синхронизации и выберите выражение в типе потока. Выберите целевой атрибут в качестве certificateUserIds, а в поле источника добавьте следующее выражение. Если исходный атрибут не является userPrincipalName, можно изменить выражение соответствующим образом.

"X509:<PN>"&[userPrincipalName]

Снимок экрана: синхронизация x509.

Синхронизация X509:<RFC822>RFC822Name

Чтобы синхронизировать X509:<RFC822>RFC822Name, создайте правило исходящей синхронизации и выберите выражение в типе потока. Выберите целевой атрибут в качестве certificateUserIds, а в поле источника добавьте следующее выражение. Если исходный атрибут не является userPrincipalName, можно изменить выражение соответствующим образом.

"X509:<RFC822>"&[userPrincipalName]

Снимок экрана: синхронизация RFC822Name.

  1. Щелкните "Целевой атрибут", выберите certificateUserIds, щелкните "Источник", выберите userPrincipalName и нажмите кнопку "Сохранить".

    Снимок экрана: сохранение правила.

  2. Нажмите кнопку ОК для подтверждения.

Внимание

В предыдущих примерах используется atribute userPrincipalName в качестве исходного атрибута в правиле преобразования. Можно использовать любой доступный атрибут с соответствующим значением. Например, некоторые организации используют атрибут почты. Дополнительные сложные правила преобразования см. в разделе Microsoft Entra Подключение Sync: Общие сведения о декларативных выражениях подготовки

Дополнительные сведения о декларативных выражениях подготовки см. в разделе Microsoft Entra Подключение: декларативные выражения подготовки.

Синхронизация атрибута altSecurityIdentities из Active Directory в сертификат идентификатора Microsoft Entra IdUserIds

Атрибут altSecurityIdentities не является частью набора атрибутов по умолчанию. Администратору необходимо добавить новый атрибут в объект person в Metaverse, а затем создать соответствующие правила синхронизации для ретрансляции этих данных в certificateUserIds в идентификаторе Entra.

  1. Откройте конструктор метавселенной и выберите объект person. Чтобы создать атрибут alternativeSecurityId, нажмите кнопку "Создать атрибут". Выберите строку (не индексируемую), чтобы создать размер атрибута до 1024 символов, что является максимальной поддерживаемой длиной для certificateUserIds. Если выбрана строка (индексируемая), максимальный размер значения атрибута составляет 448 символов. Убедитесь, что выбрано многозначное значение.

    Снимок экрана: создание нового атрибута.

  2. Откройте конструктор метавселенной и выберите alternativeSecurityId, чтобы добавить его в объект person.

    Снимок экрана: добавление alternativeSecurityId в объект person.

  3. Создайте правило входящего синхронизации для преобразования из altSecurityIdentities в атрибут alternativeSecurityId.

    В правиле для входящего трафика используйте следующие параметры.

    Вариант Значение
    Имя. Описательное имя правила, например: в Active Directory — altSecurityIdentities
    Подключенная система Домен локальная служба Active Directory
    Тип объекта подключенной системы Пользователь
    Тип объекта метавселенной person
    Приоритет Выберите число в возрасте до 100, которое в настоящее время не используется

    Затем щелкните "Преобразования" и создайте прямое сопоставление с целевым атрибутом alternativeSecurityId из исходного атрибута altSecurityIdentities, как показано на следующем снимке экрана.

    Снимок экрана: преобразование из altSecurityIdentities в атрибут alternateSecurityId.

  4. Создайте правило исходящей синхронизации для преобразования из атрибута alternativeSecurityId в атрибут certificateUserIds в идентификаторе Entra.

    Вариант Значение
    Имя. Описательное имя правила, например: out to Microsoft Entra ID — certificateUserIds
    Подключенная система Ваш домен Microsoft Entra
    Тип объекта подключенной системы Пользователь
    Тип объекта метавселенной person
    Приоритет Выберите большое число, которое в настоящее время не используется выше всех правил по умолчанию, например 150

    Затем щелкните преобразования и создайте прямое сопоставление с целевым сертификатом атрибутаUserIds из исходного атрибута alternativeSecurityId, как показано на следующем снимке экрана.

    Снимок экрана: правило исходящей синхронизации для преобразования из атрибута alternateSecurityId в certificateUserIds.

  5. Выполните синхронизацию, чтобы заполнить данные атрибутом certificateUserIds.

  6. Чтобы проверить успешность, просмотрите сведения о авторизации пользователя в идентификаторе Entra.

    Снимок экрана: успешная синхронизация.

Чтобы сопоставить подмножество значений из атрибута altSecurityIdentities, замените преобразование на шаге 4 выражением. Чтобы использовать выражение, перейдите на вкладку "Преобразования" и измените параметр FlowType на Expression, целевой атрибут на certificateUserIds, а затем введите выражение в поле Source. В следующем примере фильтруются только значения, которые соответствуют полям сопоставления сертификатов SKI и SHA1PublicKey:

Снимок экрана: выражение.

Код выражения:

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

Администратор istrator может фильтровать значения из altSecurityIdentities, которые соответствуют поддерживаемым шаблонам. Убедитесь, что конфигурация CBA обновлена для поддержки привязок имени пользователя, которые синхронизируются с certificateUserIds, чтобы включить проверку подлинности с помощью этих значений.

Следующие шаги