Сопоставление атрибута 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 найдите и запустите редактор правил синхронизации.
Выберите направление, и выберите исходящий.
Найдите правило Out to Microsoft Entra ID — User Identity, выберите Изменитьи выберите Да для подтверждения.
Введите большое число в поле Приоритет, а затем нажмите Далее.
Выберите преобразования>Добавить преобразование. Чтобы создать новый, может потребоваться прокрутить список преобразований вниз.
Синхронизация 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 Затем выберите Преобразования и создайте прямое сопоставление с целевым атрибутом certificateUserIds из исходного атрибута 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
- Перенос федеративных пользователей
- Вопросы и ответы