Сопоставление атрибута certificateUserIds в идентификаторе Microsoft Entra
Пользовательские объекты в идентификаторе Microsoft Entra имеют атрибут с именем certificateUserIds.
- Атрибут certificateUserIds имеет многозначное значение и может содержать до 10 значений.
- Каждое значение не может превышать 1024 символов.
- Каждое значение должно быть уникальным. После того как значение присутствует в одной учетной записи пользователя, его нельзя записать в другую учетную запись пользователя в том же клиенте Microsoft Entra.
- Значение не должно быть в формате идентификатора электронной почты. Атрибут certificateUserIds может хранить неизменяемые имена субъектов-пользователей (UPN), такие как bob@woodgrove или bob@local.
Примечание.
Хотя каждое значение должно быть уникальным в идентификаторе Microsoft 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>aB1cD2eF3gH4iJ5kL6mN7oP8qR |
SHA1PublicKey | X509:<SHA1-PUKEY>cD2eF3gH4iJ5kL6mN7oP8qR9sT |
IssuerAndSerialNumber | X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>eF3gH4iJ5kL6mN7oP8qR9sT0uV Чтобы получить правильное значение для серийного номера, выполните следующую команду и сохраните значение, отображаемое в certificateUserIds: Синтаксис Certutil –dump –v [~certificate path~] >> [~dumpFile path~] Пример: certutil -dump -v firstusercert.cer >> firstCertDump.txt |
Роли для обновления certificateUserIds
Для обновления сертификатовUserIds пользователи должны иметь по крайней мере роль администратора привилегированной проверки подлинности. Пользователи, доступные только для облака, могут использовать центр администрирования Microsoft Entra или Microsoft Graph для обновления сертификатовUserIds.
Синхронизированные пользователи должны иметь по крайней мере роль администратора гибридных удостоверений для обновления сертификатовUserIds. Только Microsoft Entra Connect можно использовать для обновления сертификатовUserIds путем синхронизации значения из локальной среды.
Примечание.
Администраторы Active Directory могут вносить изменения, влияющие на значение certificateUserIds в идентификаторе Microsoft Entra для любой синхронизированной учетной записи. Администраторы могут включать учетные записи с делегированными правами администратора через синхронизированные учетные записи пользователей или права администратора на серверах Microsoft Entra Connect.
Обновление certificateUserIds
Чтобы обновить certificateUserIds для пользователей, выполните следующие действия.
Войдите в Центр администрирования Microsoft Entra как минимум администратор привилегированной проверки подлинности для пользователей только в облаке или как минимум гибридный администратор удостоверений для синхронизированных пользователей.
Найдите и выберите "Все пользователи".
Щелкните пользователя и нажмите кнопку "Изменить свойства".
Рядом с сведениями о авторизации нажмите кнопку "Вид".
Щелкните "Изменить идентификаторы пользователей сертификата".
Нажмите кнопку Добавить.
Введите значение и нажмите кнопку "Сохранить". Вы можете добавить до четырех значений, каждый из 120 символов.
Обновление 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.
Запустите PowerShell с правами администратора.
Установите и импортируйте пакет SDK Microsoft Graph PowerShell.
Install-Module Microsoft.Graph -Scope AllUsers Import-Module Microsoft.Graph.Authentication Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Подключитесь к клиенту и примите все.
Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
Перечисление атрибута 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
Создайте переменную со значениями 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" ) } }
Обновите атрибут 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 с помощью объекта пользователя
Получите объект пользователя.
$userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
Обновите атрибут certificateUserIds объекта пользователя.
$user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>iJ5kL6mN7oP8qR9sT0uV1wX2yZ", "X509:<PN>user1@contoso.com") Update-MgUser -UserId $userObjectId -AuthorizationInfo $user.AuthorizationInfo
Обновление сертификатовUserIds с помощью Microsoft Entra Connect
Microsoft Entra Connect поддерживает синхронизацию значений с certificateUserIds из среды локальная служба Active Directory. Локальная служба Active Directory поддерживает проверку подлинности на основе сертификатов и несколько привязок пользователей. Убедитесь, что используется последняя версия Microsoft Entra Connect.
Чтобы использовать эти методы сопоставления, необходимо заполнить атрибут altSecurityIdentities объектов пользователей в локальная служба Active Directory. Кроме того, после применения изменений проверки подлинности на основе сертификатов на контроллерах домена Windows, как описано в KB5014754, возможно, вы реализовали некоторые методы сопоставления без повторного использования (Type=strong) в соответствии с требованиями к принудительному применению привязки сертификатов локальной среды Active Directory.
Чтобы предотвратить ошибки синхронизации, убедитесь, что значения синхронизированы в одном из поддерживаемых форматов для certificateUserIds.
Прежде чем начать, убедитесь, что все учетные записи пользователей, синхронизированные из локальная служба Active Directory имеют:
5 или меньше значений в атрибутах altSecurityIdentities
Значение с более чем 1024 символами
Повторяющиеся значения отсутствуют
Тщательно рассмотрите, следует ли сопоставить один сертификат с несколькими учетными записями локальная служба Active Directory. Дополнительные сведения см. в разделе "Несколько привязок имени пользователя".
Примечание.
В определенных сценариях подмножество пользователей может иметь допустимое бизнес-обоснование для сопоставления одного сертификата с несколькими локальная служба Active Directory учетной записью. Просмотрите эти сценарии и при необходимости реализуйте отдельные методы сопоставления для сопоставления с несколькими учетными записями в локальная служба Active Directory и идентификаторе Microsoft Entra.
Рекомендации по текущей синхронизации certificateUserIds
- Убедитесь, что процесс подготовки для заполнения значений в локальная служба Active Directory реализует правильную гигиену. Заполняются только значения, связанные с текущими допустимыми сертификатами.
- Значения удаляются при истечении срока действия соответствующего сертификата или отмене.
- Значения, превышающие 1024 символов, не заполняются.
- Повторяющиеся значения не подготовлены.
- Используйте Microsoft Entra Connect Health для мониторинга синхронизации.
Выполните следующие действия, чтобы настроить Microsoft Entra Connect для синхронизации userPrincipalName с certificateUserIds:
На сервере Microsoft Entra Connect найдите и запустите редактор правил синхронизации.
Нажмите кнопку "Направление" и нажмите кнопку "Исходящий".
Найдите правило "Идентификатор записи Майкрософт" — удостоверение пользователя, нажмите кнопку "Изменить" и нажмите кнопку "Да ", чтобы подтвердить.
Введите большое число в поле "Приоритет " и нажмите кнопку "Далее".
Щелкните преобразование "Добавить преобразования>". Чтобы создать новый, может потребоваться прокрутить список преобразований вниз.
Синхронизация X509:<PN>PrincipalNameValue
Чтобы синхронизировать X509:<PN>PrincipalNameValue, создайте правило исходящей синхронизации и выберите выражение в типе потока. Выберите целевой атрибут в качестве certificateUserIds, а в поле источника добавьте следующее выражение. Если исходный атрибут не является userPrincipalName, можно изменить выражение соответствующим образом.
"X509:<PN>"&[userPrincipalName]
Синхронизация X509:<RFC822>RFC822Name
Чтобы синхронизировать X509:<RFC822>RFC822Name, создайте правило исходящей синхронизации и выберите выражение в типе потока. Выберите целевой атрибут в качестве certificateUserIds, а в поле источника добавьте следующее выражение. Если исходный атрибут не является userPrincipalName, можно изменить выражение соответствующим образом.
"X509:<RFC822>"&[userPrincipalName]
Щелкните "Целевой атрибут", выберите certificateUserIds, щелкните "Источник", выберите userPrincipalName и нажмите кнопку "Сохранить".
Нажмите кнопку ОК для подтверждения.
Внимание
В предыдущих примерах атрибут userPrincipalName используется в качестве исходного атрибута в правиле преобразования. Можно использовать любой доступный атрибут с соответствующим значением. Например, некоторые организации используют атрибут почты. Дополнительные сложные правила преобразования см. в разделе Microsoft Entra Connect Sync: общие сведения о декларативных выражениях подготовки
Дополнительные сведения о декларативных выражениях подготовки см. в разделе Microsoft Entra Connect: Декларативные выражения подготовки.
Синхронизация атрибута altSecurityIdentities из Active Directory в Microsoft Entra certificateUserIds
Атрибут altSecurityIdentities не является частью набора атрибутов по умолчанию. Администратору необходимо добавить новый атрибут в объект person в Metaverse, а затем создать соответствующие правила синхронизации для ретрансляции этих данных в certificateUserIds в идентификаторе Microsoft Entra.
Откройте конструктор метавселенной и выберите объект person. Чтобы создать атрибут alternativeSecurityId, нажмите кнопку "Создать атрибут". Выберите строку (не индексируемую), чтобы создать размер атрибута до 1024 символов, что является максимальной поддерживаемой длиной для certificateUserIds. Если выбрана строка (индексируемая), максимальный размер значения атрибута составляет 448 символов. Убедитесь, что выбрано многозначное значение.
Откройте конструктор метавселенной и выберите alternativeSecurityId, чтобы добавить его в объект person.
Создайте правило входящего синхронизации для преобразования из altSecurityIdentities в атрибут alternativeSecurityId.
В правиле для входящего трафика используйте следующие параметры.
Вариант Значение Имя. Описательное имя правила, например: в Active Directory — altSecurityIdentities Подключенная система Домен локальная служба Active Directory Тип объекта подключенной системы Пользователь Тип объекта метавселенной person Приоритет Выберите число в возрасте до 100, которое в настоящее время не используется Затем щелкните "Преобразования" и создайте прямое сопоставление с целевым атрибутом alternativeSecurityId из исходного атрибута altSecurityIdentities, как показано на следующем снимке экрана.
Создайте правило исходящей синхронизации для преобразования из атрибута alternativeSecurityId в атрибут certificateUserIds в идентификаторе Microsoft Entra.
Вариант Значение Имя. Описательное имя правила, например: out to Microsoft Entra ID — certificateUserIds Подключенная система Ваш домен Microsoft Entra Тип объекта подключенной системы Пользователь Тип объекта метавселенной person Приоритет Выберите большое число, которое в настоящее время не используется выше всех правил по умолчанию, например 150 Затем щелкните преобразования и создайте прямое сопоставление с целевым сертификатом атрибутаUserIds из исходного атрибута alternativeSecurityId, как показано на следующем снимке экрана.
Выполните синхронизацию, чтобы заполнить данные атрибутом certificateUserIds.
Чтобы проверить успешность, просмотрите сведения о авторизации пользователя в идентификаторе Microsoft 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]
)
Администраторы могут фильтровать значения из altSecurityIdentities, которые соответствуют поддерживаемым шаблонам. Убедитесь, что конфигурация CBA обновлена для поддержки привязок имени пользователя, которые синхронизируются с certificateUserIds, чтобы включить проверку подлинности с помощью этих значений.
Следующие шаги
- Обзор Microsoft Entra CBA
- Техническое глубокое погружение для Microsoft Entra CBA
- Настройка Microsoft Entra CBA
- Microsoft Entra CBA на устройствах iOS
- Microsoft Entra CBA на устройствах Android
- Вход в систему смарт-карты Windows с помощью Microsoft Entra CBA
- Перенос федеративных пользователей
- Вопросы и ответы