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


Настройка идентификатора Microsoft Entra для подготовки пользователей в каталог LDAP для проверки подлинности Linux

В следующей документации показано, как управлять доступом к системе Linux. Это реализовано пользователями подготовки Microsoft Entra в локальном каталоге LDAP, доверенном этой системой Linux, чтобы эти пользователи могли впоследствии войти в систему Linux, которая использует этот каталог LDAP для проверки подлинности пользователей. И когда пользователь удаляется из идентификатора Microsoft Entra, он впоследствии не сможет войти в систему Linux.

Примечание.

Сценарий, описанный в этой статье, применим только для существующих систем Linux, которые уже используют переключатель служб имен (NSS) или подключаемый модуль LDAP (PAM) для идентификации пользователей и проверки подлинности. Виртуальные машины Linux в Azure или azure Arc должны быть интегрированы с проверкой подлинности Microsoft Entra. Теперь вы можете использовать идентификатор Microsoft Entra в качестве основной платформы проверки подлинности и центра сертификации для SSH на виртуальной машине Linux с помощью идентификатора Microsoft Entra ID и проверки подлинности на основе сертификата OpenSSH, как описано в статье "Вход в виртуальную машину Linux в Azure" с помощью идентификатора Microsoft Entra и OpenSSH.

Другие сценарии, связанные с подготовкой пользователей в каталоги LDAP, отличные от проверки подлинности Linux, см . в настройке идентификатора Microsoft Entra для подготовки пользователей в каталоги LDAP.

Предварительные требования для подготовки пользователей в каталог LDAP для проверки подлинности Linux

В этой статье предполагается, что сервер LDAP уже присутствует в локальной среде, используемой одной или несколькими системами Linux или другими системами POSIX для проверки подлинности пользователей.

Схема, показывающая архитектуру локальной подготовки с идентификатора Microsoft Entra на сервер каталогов LDAP.

Предварительные требования для локальной среды

  • Сервер Linux или другой POSIX, который отвечает на сервер каталогов с помощью модуля PAM или NSS.
  • Сервер каталогов LDAP, поддерживающий схему POSIX, например OpenLDAP, в которой пользователи могут быть созданы, обновлены и удалены. Дополнительные сведения о поддерживаемых серверах каталогов см. в справочнике по универсальному соединителю LDAP.
  • Компьютер с как минимум 3 ГБ ОЗУ для размещения агента подготовки. Компьютер должен иметь Windows Server 2016 или более позднюю версию Windows Server с подключением к целевому серверу каталогов и исходящим подключением к login.microsoftonline.com, другим службам Microsoft Online Services и доменам Azure . Примером может служить компьютер виртуальной машины под управлением ОС Windows Server 2016, размещенный в Azure IaaS или за прокси-сервером. На этом сервере необходимо установить платформа .NET Framework 4.7.2.
  • (Необязательно.) Хотя это не является обязательным, рекомендуется скачать Microsoft Edge для Windows Server для использования вместо Internet Explorer.

Требования к облаку

  • Клиент Microsoft Entra с идентификатором Microsoft Entra ID P1 или Premium P2 (или EMS E3 или E5).

    Для использования этой функции требуются лицензии Microsoft Entra ID P1. Чтобы правильно выбрать лицензию с учетом своих требований, ознакомьтесь с разделом Сравнение общедоступных возможностей идентификатора Microsoft Entra.

  • Роль администратора гибридного удостоверения для настройки агента подготовки.

  • Роли администратора приложений или администратора облачных приложений для настройки подготовки в портал Azure или Центре администрирования Microsoft Entra.

  • Пользователи Microsoft Entra, которые должны быть подготовлены к каталогу LDAP, должны быть заполнены атрибутами, которые будут необходимы схеме сервера каталогов и относятся к каждому пользователю. В частности, каждому пользователю необходимо иметь уникальное число в качестве идентификатора пользователя. Прежде чем развертывать агент подготовки и назначать пользователей в каталог, необходимо либо создать это число из существующего атрибута пользователя, либо расширить схему Microsoft Entra и заполнить этот атрибут для пользователей в области. Сведения о создании дополнительных расширений каталогов см. в статье о расширяемости Graph.

Дополнительные рекомендации и ограничения

Следующие пункты списка являются дополнительными рекомендациями и ограничениями.

  • Не рекомендуется использовать один и тот же агент для облачной синхронизации и подготовки локальных приложений. Корпорация Майкрософт рекомендует использовать отдельный агент для синхронизации в облаке, а другой — для подготовки локальных приложений.
  • Для AD LDS сейчас пользователи не могут быть подготовлены с использованием паролей. Поэтому необходимо отключить политику паролей для AD LDS или подготовить пользователей в отключенном состоянии.
  • Для других серверов каталогов можно задать начальный случайный пароль, но невозможно подготовить пароль пользователя Microsoft Entra на сервере каталогов.
  • Подготовка пользователей из LDAP в идентификатор Microsoft Entra не поддерживается.
  • Группы подготовки и членство пользователей на сервере каталогов не поддерживаются.

Определение способа взаимодействия соединителя LDAP Microsoft Entra с сервером каталогов

Перед развертыванием соединителя на существующем сервере каталогов необходимо обсудить с оператором сервера каталогов в организации, как интегрироваться с сервером каталогов. Собранные сведения содержат сведения о том, как подключиться к серверу каталогов, как соединитель должен пройти проверку подлинности на сервере каталогов, какая схема выбрана для моделирования пользователей, базовых правил иерархии контекста именования и иерархии каталогов, как связать пользователей на сервере каталогов с пользователями в Идентификаторе Microsoft Entra, и что должно произойти, когда пользователь выходит из области в идентификаторе Microsoft Entra. При развертывании этого соединителя могут потребоваться изменения конфигурации сервера каталогов, а также изменения конфигурации идентификатора Microsoft Entra. Для развертываний, связанных с интеграцией идентификатора Microsoft Entra с сторонним сервером каталогов в рабочей среде, мы рекомендуем клиентам работать с поставщиком сервера каталогов или партнером по развертыванию для справки, рекомендаций и поддержки этой интеграции. В этой статье используются следующие примеры значений для OpenLDAP.

Параметр конфигурации Где задано значение Пример значения
имя узла сервера каталогов Страница подключения мастера настройки APP3
номер порта сервера каталогов Страница подключения мастера настройки 636. Для LDAP через SSL или TLS (LDAPS) используйте порт 636. Для Start TLS используйте порт 389.
учетная запись соединителя для идентификации себя на сервере каталогов Страница подключения мастера настройки cn=admin,dc=contoso,dc=lab
пароль для соединителя для проверки подлинности на сервере каталогов Страница подключения мастера настройки
Класс структурных объектов для пользователя на сервере каталогов Страница "Типы объектов мастера настройки" inetOrgPerson
вспомогательные классы объектов для пользователя на сервере каталогов сопоставления атрибутов страницы подготовки портал Azure posixAccount иshadowAccount
атрибуты для заполнения нового пользователя Мастер настройки выбора атрибутов и сопоставления атрибутов страницы подготовки портал Azure cn, gidNumberhomeDirectorymailobjectClasssnuiduidNumberuserPassword
Иерархия именования, требуемая сервером каталогов сопоставления атрибутов страницы подготовки портал Azure Задайте для нового созданного пользователя DN сразу же ниже DC=Contoso,DC=lab
атрибуты для сопоставления пользователей между идентификатором Microsoft Entra и сервером каталогов сопоставления атрибутов страницы подготовки портал Azure mail
отмена поведения при выходе пользователя из области в идентификаторе Microsoft Entra Страница отмены подготовки мастера настройки Удаление пользователя с сервера каталогов

Сетевой адрес сервера каталогов — это имя узла и номер TCP-порта, обычно порт 389 или 636. За исключением того, где сервер каталогов находится совместно с соединителем на том же сервере Windows Server или используется безопасность на уровне сети, сетевые подключения от соединителя к серверу каталогов должны быть защищены с помощью SSL или TLS. Соединитель поддерживает подключение к серверу каталогов через порт 389 и запуск TLS для включения TLS в сеансе. Соединитель также поддерживает подключение к серверу каталогов через TLS через порт 636 для LDAPS.

Вам потребуется учетная запись, определяемая соединителем для проверки подлинности на сервере каталогов, уже настроенном на сервере каталогов. Эта учетная запись обычно идентифицируется с различающейся именем и имеет связанный пароль или сертификат клиента. Для выполнения операций импорта и экспорта объектов в подключенном каталоге учетная запись соединителя должна иметь достаточные разрешения в модели управления доступом каталога. Соединитель должен иметь разрешения на запись , чтобы иметь возможность экспортировать и читать разрешения для импорта. Разрешения настраиваются с помощью средств управления, предоставляемых целевым каталогом.

Схема каталога указывает классы объектов и атрибуты, представляющие сущность реального мира в каталоге. Соединитель поддерживает представление пользователя со структурным классом объектов, например inetOrgPersonдополнительными вспомогательными классами объектов. Чтобы соединитель мог подготовить пользователей к серверу каталогов, во время настройки в портал Azure вы определите сопоставления из схемы Microsoft Entra ко всем обязательным атрибутам. Сюда входят обязательные атрибуты класса структурных объектов, все суперклассы этого класса структурных объектов и обязательные атрибуты любых вспомогательных классов объектов. Кроме того, скорее всего, вы также настроите сопоставления с некоторыми необязательными атрибутами этих классов. Серверу каталогов OpenLDAP со схемой POSIX для поддержки проверки подлинности Linux может потребоваться, чтобы новый пользователь мог иметь атрибуты, как показано в следующем примере.

dn: cn=bsimon,dc=Contoso,dc=lab
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: bsimon
gidNumber: 10000
homeDirectory: /home/bsimon
sn: simon
uid: bsimon
uidNumber: 10011
mail: bsimon@contoso.com
userPassword: initial-password

Правила иерархии каталогов, реализованные сервером каталогов, описывают, как объекты для каждого пользователя связаны друг с другом и существующими объектами в каталоге. В большинстве развертываний организация решила иметь плоскую иерархию на сервере каталогов, в которой каждый объект для пользователя находится непосредственно под общим базовым объектом. Например, если базовое различающееся имя контекста именования на сервере каталогов будет dc=contoso,dc=com иметь новое имя, например cn=alice,dc=contoso,dc=com. Однако некоторые организации могут иметь более сложную иерархию каталогов, в этом случае необходимо реализовать правила при указании сопоставления различаемых имен для соединителя. Например, сервер каталогов может ожидать, что пользователи будут находиться в подразделениях по отделу, поэтому новый пользователь будет иметь различающееся имя, например cn=alice,ou=London,dc=contoso,dc=com. Так как соединитель не создает промежуточные объекты для подразделений, все промежуточные объекты иерархии правил сервера каталогов уже должны существовать на сервере каталогов.

Затем необходимо определить правила для определения того, должен ли соединитель уже находиться на сервере каталогов, соответствующему пользователю Microsoft Entra. Каждый каталог LDAP имеет различающееся имя, уникальное для каждого объекта на сервере каталогов, однако различающееся имя часто не присутствует для пользователей в идентификаторе Microsoft Entra ID. Вместо этого организация может иметь другой атрибут, например mail или employeeIdв схеме сервера каталогов, которая также присутствует у пользователей в идентификаторе Microsoft Entra ID. Затем, когда соединитель подготавливает нового пользователя к серверу каталогов, соединитель может искать, уже есть ли пользователь в этом каталоге, имеющий определенное значение этого атрибута, и только создать нового пользователя на сервере каталогов, если он отсутствует.

Если сценарий включает создание новых пользователей в каталоге LDAP, а не только обновление или удаление существующих пользователей, то также необходимо определить, как системы Linux, использующие этот сервер каталогов, будут обрабатывать проверку подлинности. Некоторые системы могут запрашивать открытый ключ SSH пользователя или сертификат из каталога, который может быть подходящим для пользователей, которые уже содержат учетные данные этих форм. Однако если приложение, использующее сервер каталогов, не поддерживает современные протоколы проверки подлинности или более надежные учетные данные, необходимо задать пароль для конкретного приложения при создании нового пользователя в каталоге, так как идентификатор Microsoft Entra не поддерживает подготовку пароля Microsoft Entra пользователя.

Наконец, необходимо согласиться с поведением отмены подготовки. Когда соединитель настроен, и идентификатор Microsoft Entra установил связь между пользователем в идентификаторе Microsoft Entra и пользователем в каталоге, либо для пользователя, уже в каталоге, либо нового пользователя, то идентификатор Microsoft Entra может подготавливать изменения атрибутов пользователя Microsoft Entra в каталог. Если пользователь, назначенный приложению, удаляется в идентификаторе Microsoft Entra, идентификатор Microsoft Entra отправит операцию удаления на сервер каталогов. Кроме того, может потребоваться, чтобы идентификатор Microsoft Entra обновлял объект на сервере каталогов, когда пользователь выходит из области возможности использовать приложение. Это поведение зависит от приложения, которое будет использовать сервер каталогов, так как многие каталоги, такие как OpenLDAP, могут не иметь способа активации учетной записи пользователя по умолчанию.

Установка и настройка агента подготовки Microsoft Entra Connect

  1. Войдите на портал Azure.
  2. Перейдите в корпоративные приложения и выберите "Создать приложение".
  3. Найдите локальное приложение ECMA , присвойте приложению имя и нажмите кнопку "Создать ", чтобы добавить его в клиент.
  4. В меню перейдите на страницу подготовки приложения.
  5. Выберите Приступая к работе.
  6. На странице Подготовка измените режим на автоматический.

Снимок экрана: выбор автоматического.

  1. В разделе "Локальное подключение" выберите "Скачать и установить" и выберите "Принять условия" и "Скачать".

Снимок экрана: расположение скачивания для агента.

  1. Оставьте портал и запустите установщик агента подготовки, примите условия обслуживания и выберите " Установить".
  2. Дождитесь мастера настройки агента подготовки Microsoft Entra, а затем нажмите кнопку "Далее".
  3. На шаге выбора расширения выберите " Подготовка локальных приложений" и нажмите кнопку "Далее".
  4. Агент подготовки будет использовать веб-браузер операционной системы для отображения всплывающего окна для проверки подлинности в идентификаторе Microsoft Entra, а также поставщика удостоверений вашей организации. Если вы используете Internet Explorer в качестве браузера в Windows Server, вам может потребоваться добавить веб-сайты Майкрософт в список надежных сайтов браузера, чтобы позволить JavaScript работать правильно.
  5. Укажите учетные данные администратора Microsoft Entra при появлении запроса на авторизацию. Пользователю требуется по крайней мере роль администратора гибридных удостоверений.
  6. Нажмите кнопку "Подтвердить" , чтобы подтвердить этот параметр. После успешной установки можно выбрать " Выйти", а также закрыть установщик пакета агента подготовки.

Настройка локального приложения ECMA

  1. На портале в разделе "Локальное подключение" выберите развернутый агент и выберите "Назначить агенты".

    Снимок экрана: выбор и назначение агента.

  2. Не закрывайте это окно браузера по мере выполнения следующего шага настройки с помощью мастера настройки.

Настройка сертификата узла соединителя ECMA в Microsoft Entra

  1. На сервере Windows Server, где установлен агент подготовки, щелкните правой кнопкой мыши мастер настройки Microsoft ECMA2Host в меню "Пуск" и запустите от имени администратора. Запуск от имени администратора Windows необходим для создания необходимых журналов событий Windows.
  2. После запуска конфигурации узла соединителя ECMA вам потребуется создать сертификат, если это первый запуск мастера. Оставьте порт 8585 по умолчанию и выберите "Создать сертификат ", чтобы создать сертификат. Автоматически созданный сертификат будет самозаверяющим как часть доверенного корневого сертификата. Сеть SAN соответствует имени узла. Снимок экрана: настройка параметров.
  3. Выберите Сохранить.

Примечание.

Если вы решили создать новый сертификат, запишите дату окончания срока действия сертификата, чтобы убедиться, что вы планируете вернуться в мастер конфигурации и повторно создать сертификат до истечения срока его действия.

Настройка универсального соединителя LDAP

В зависимости от выбранных параметров некоторые экраны мастера могут быть недоступны, а сведения могут немного отличаться. Ниже приведены сведения, которые помогут вам в настройке.

  1. Создайте секретный маркер, который будет использоваться для проверки подлинности идентификатора Microsoft Entra в соединителе. Для каждого приложения должно быть 12 символов и уникальных. Если у вас еще нет генератора секретов, можно использовать команду PowerShell, например следующую, чтобы создать пример случайной строки.

    -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
    
  2. Запустите мастер настройки Microsoft ECMA2Host из меню "Пуск", если этого еще не сделали.

  3. Выберите Новый соединитель. Снимок экрана: выбор нового соединителя.

  4. На странице Свойства заполните поля значениями, указанными в таблице под снимком экрана, и нажмите кнопку Далее. Снимок экрана: ввод значений свойств.

    Свойство Значение
    Имя. Имя, выбранное для соединителя, которое должно быть уникальным для всех соединителей в вашей среде. Например, LDAP.
    Таймер автосинхронизации (в минутах) 120
    Секретный токен Введите секретный маркер здесь. Он должен содержать не менее 12 знаков.
    Библиотека DLL расширения Для универсального соединителя LDAP выберите Microsoft.IAM.Connector.GenericLdap.dll.
  5. На странице "Подключение" вы настроите способ взаимодействия узла соединителя ECMA с сервером каталогов и задайте некоторые параметры конфигурации. Заполните поля значениями, указанными в таблице под снимком экрана, и нажмите кнопку Далее. При нажатии кнопки "Далее" соединитель запрашивает сервер каталогов для его конфигурации. Снимок экрана: страница

    Свойство Описание
    Host Имя узла, на котором расположен LDAP-сервер. В этом примере APP3 используется в качестве имени узла.
    Порт Номер порта TCP. Если сервер каталогов настроен для ПРОТОКОЛА SSL, используйте порт 636. Для Start TLSили при использовании безопасности на уровне сети используйте порт 389.
    Connection Timeout 180
    Привязка Это свойство указывает, как соединитель будет проходить проверку подлинности на сервере каталогов. Basic При использовании параметра или с SSL параметром или TLS без сертификата клиента соединитель отправляет простую привязку LDAP для проверки подлинности с различающимся именем и паролем. SSL С указанным или TLS заданным сертификатом клиента соединитель отправит привязку LDAP SASL EXTERNAL для проверки подлинности с помощью сертификата клиента.
    Имя пользователя Как соединитель ECMA будет проходить проверку подлинности на сервере каталогов. В этом примере — cn=admin,dc=contoso,dc=lab
    Пароль Пароль пользователя, который соединитель ECMA будет проходить проверку подлинности на сервере каталогов.
    Область или домен Этот параметр требуется только в том случае, если выбран Kerberos параметр привязки, чтобы предоставить область или домен пользователя.
    Сертификат Параметры в этом разделе используются только при выборе SSL или TLS в качестве параметра привязки.
    Псевдонимы атрибутов Текстовое поле Псевдонимы атрибутов предназначено для атрибутов, определенных в схеме с помощью синтаксиса RFC 4522. Эти атрибуты не могут быть обнаружены во время обнаружения схемы, и соединителю требуется помощь в определении этих атрибутов. Например, если сервер каталогов не публикует userCertificate;binary и вы хотите подготовить этот атрибут, в поле псевдонимов атрибутов необходимо ввести следующую строку, чтобы правильно определить атрибут userCertificate как двоичный атрибут. userCertificate;binary Если в схеме не требуются специальные атрибуты, можно оставить это пустым.
    Включение операционных атрибутов Установите флажок, Include operational attributes in schema чтобы также включить атрибуты, созданные сервером каталогов. К ним относятся такие атрибуты, как время создания объекта и время последнего обновления.
    Включение расширяемых атрибутов Установите флажок, Include extensible attributes in schema если в сервере каталогов используются расширяемые объекты (RFC4512/4.3). Включение этого параметра позволяет использовать каждый атрибут для всех объектов. Кроме того, активация этого параметра приведет к значительному увеличению размера схемы, поэтому рекомендуется не устанавливать этот флажок, если эта функция не используется в подключенном каталоге.
    Разрешить выбор привязки вручную не устанавливайте флажок.

    Примечание.

    Если возникла проблема с попыткой подключиться и не удается перейти на глобальную страницу, убедитесь, что учетная запись службы на сервере каталогов включена.

  6. На глобальной странице вы настроите различающееся имя журнала разностных изменений( при необходимости) и дополнительные функции LDAP. Эта страница автоматически заполняется данными, полученными с сервера LDAP. Просмотрите отображаемые значения и нажмите кнопку "Далее".

    Свойство Description
    Поддерживаемые механизмы SASL В верхнем разделе показаны сведения, предоставляемые самим сервером, включая список механизмов SASL.
    Сведения о сертификате сервера Если SSL или TLS было указано, мастер отобразит сертификат, возвращенный сервером каталогов. Убедитесь, что издатель, тема и отпечаток предназначены для правильного сервера каталогов.
    Найденные обязательные функции Соединитель также проверяет наличие обязательных элементов управления в корневом DSE. Если эти элементы управления не указаны, появляется предупреждение. Некоторые каталоги LDAP не перечисляют все функции в корневом DSE и возможно, что соединитель работает без проблем, даже если предупреждение присутствует.
    Поддерживаемые элементы управления Флажки поддерживаемых элементов управления управляют поведением для определенных операций
    импорт изменений; Различающееся имя журнала изменений — это контекст именования, используемый разностным журналом изменений, например cn=changelog. Чтобы импортировать изменения, вам потребуется указать это значение. Если не требуется реализовать разностный импорт, это поле может быть пустым.
    Атрибут пароля Если сервер каталогов поддерживает другой атрибут пароля или хэширование паролей, можно указать назначение для изменений паролей.
    Имена секций В списке дополнительных разделов можно добавить дополнительные пространства имен, которые не были обнаружены автоматически. Например, этот параметр можно использовать, если несколько серверов образуют логический кластер, из которого одновременно нужно импортировать все объекты. Это аналогично тому, что один лес Active Directory может включать несколько доменов, которые совместно используют одну схему. Добавление пространств имен в это поле позволяет имитировать такую структуру. Каждое пространство имен может импортироваться с разных серверов и дополнительно настроено на странице "Настройка секций и иерархий ".
  7. На странице Секции щелкните Далее.

  8. На странице "Профили запуска" установите флажок "Экспорт" и флажок "Полный импорт". Затем выберите Далее. Снимок экрана: страница

    Свойство Description
    Экспорт (Export) Запустите профиль, который будет экспортировать данные на сервер каталогов LDAP. Этот профиль запуска является обязательным.
    Полный импорт Профиль запуска, который будет импортировать все данные из источников LDAP, указанных ранее. Этот профиль запуска является обязательным.
    Импорт изменений Профиль запуска, который будет импортировать только изменения в LDAP с момента последнего полного или разностного импорта. Включите этот профиль выполнения только в том случае, если вы подтвердили, что сервер каталогов соответствует необходимым требованиям. Дополнительные сведения см. в справочнике по универсальному соединителю LDAP.
  9. На странице "Экспорт" оставьте значения по умолчанию неизменными и нажмите кнопку "Далее".

  10. На странице полного импорта оставьте значения по умолчанию без изменений и нажмите кнопку "Далее".

  11. На странице DeltaImport оставьте значения по умолчанию неизменными и нажмите кнопку "Далее".

  12. Заполните поля на странице Типы объектов и нажмите кнопку Далее.

    Свойство Description
    Целевой объект Это значение является структурным классом объектов пользователя на сервере каталогов LDAP. Используйте и не указывайте inetOrgPersonвспомогательный класс объектов в этом поле. Если для сервера каталогов требуются вспомогательные классы объектов, они будут настроены с помощью сопоставлений атрибутов в портал Azure.
    Привязка Значения этого атрибута должны быть уникальными для каждого объекта в целевом каталоге. Служба подготовки Microsoft Entra запрашивает узел соединителя ECMA с помощью этого атрибута после начального цикла. Обычно используется различающееся имя, которое может быть выбрано как -dn-. Многозначные атрибуты, такие как uid атрибут в схеме OpenLDAP, нельзя использовать в качестве привязок.
    Атрибут запроса Этот атрибут должен совпадать с привязкой.
    DN Различающееся имя целевого объекта. Сохраняйте -dn-.
    Созданный автоматически не включен
  13. Узел ECMA обнаруживает атрибуты, поддерживаемые целевым каталогом. Вы можете выбрать, какие из этих атрибутов вы хотите предоставить идентификатору Microsoft Entra. Затем эти атрибуты можно настроить на портале Azure для подготовки. На странице выбора атрибутов добавьте все атрибуты в раскрывающемся списке( по одному за раз), которые требуются в качестве обязательных атрибутов или которые требуется подготовить из идентификатора Microsoft Entra. Снимок экрана: страница выбора атрибутов
    В раскрывающемся списке атрибутов отображается любой атрибут, обнаруженный в целевом каталоге, и он не был выбран на странице выбора атрибутов мастера настройки.

    Убедитесь, что Treat as single value флажок снят для objectClass атрибута, а если userPassword задано, можно выбрать или проверить для атрибута userPassword .

    Настройте видимость для следующих атрибутов.

    Атрибут Рассматривать как одно значение
    _distinguishedName
    -dn-
    export_password
    cn Y
    gidNumber
    homeDirectory
    mail Y
    objectClass
    sn Y
    uid Y
    uidNumber
    userPassword Y

    После добавления всех соответствующих атрибутов нажмите кнопку Далее.

  14. На странице отмены подготовки можно указать, следует ли удалить пользователей из каталога при выходе из области применения приложения идентификатора Microsoft Entra. В этом случае в разделе "Отключить поток" выберите "Удалить" и в разделе "Удалить" выберите "Удалить". Если Set attribute value выбрано, атрибуты, выбранные на предыдущей странице, не будут доступны для выбора на странице отмены подготовки.

Примечание.

Если вы используете значение атрибута Set, следует учитывать, что разрешены только логические значения.

  1. Выберите Готово.

Убедитесь, что служба ECMA2Host запущена и может читаться с сервера каталогов

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

  1. На сервере под управлением узла соединителя Microsoft Entra ECMA нажмите кнопку "Пуск".
  2. Выберите запуск при необходимости, а затем введите services.msc в поле.
  3. Убедитесь, что Microsoft ECMA2Host отображается в списке служб и она запущена. Если он не запущен, нажмите кнопку "Пуск". Снимок экрана c запущенной службой.
  4. Если вы недавно запустили службу и имеете много объектов пользователей на сервере каталогов, подождите несколько минут, пока соединитель установит соединение с сервером каталогов.
  5. На сервере, на котором запущен узел соединителя Microsoft Entra ECMA, запустите PowerShell.
  6. Перейдите в папку, в которой был установлен узел ECMA, например C:\Program Files\Microsoft ECMA2Host.
  7. Перейдите в подкаталог Troubleshooting.
  8. Запустите скрипт TestECMA2HostConnection.ps1 в этом каталоге, как показано ниже, и укажите в качестве аргументов имя соединителя и ObjectTypePath значение cache. Если узел соединителя не прослушивает TCP-порт 8585, возможно, также потребуется предоставить -Port аргумент. При появлении запроса введите секретный маркер, настроенный для этого соединителя.
    PS C:\Program Files\Microsoft ECMA2Host\Troubleshooting> $cout = .\TestECMA2HostConnection.ps1 -ConnectorName LDAP -ObjectTypePath cache; $cout.length -gt 9
    Supply values for the following parameters:
    SecretToken: ************
    
  9. Если скрипт отображает сообщение об ошибке или предупреждении, убедитесь, что служба запущена, а имя соединителя и секретный маркер соответствуют этим значениям, настроенным в мастере настройки.
  10. Если скрипт отображает выходные данные False, соединитель не видел никаких записей на исходном сервере каталогов для существующих пользователей. Если это новая установка сервера каталогов, то это поведение должно быть ожидаемым, и вы можете продолжить работу в следующем разделе.
  11. Однако если сервер каталогов уже содержит одного или нескольких пользователей, но отображаемый Falseскрипт, то это состояние указывает, что соединитель не может прочитать с сервера каталогов. При попытке подготовить идентификатор Microsoft Entra может неправильно соответствовать пользователям в этом исходном каталоге с пользователями в идентификаторе Microsoft Entra. Подождите несколько минут, пока узел соединителя завершит чтение объектов с существующего сервера каталогов, а затем повторно запустите скрипт. Если выходные данные продолжаются False, проверьте конфигурацию соединителя и разрешения на сервере каталогов позволяют соединителю читать существующих пользователей.

Проверка подключения из идентификатора Microsoft Entra к узлу соединителя

  1. Вернитесь в окно веб-браузера, в котором вы настроили подготовку приложений на портале.

    Примечание.

    Если истекло время ожидания окна, выберите агент повторно.

    1. Войдите на портал Azure.
    2. Перейдите в раздел Корпоративные приложения и выберите локальное приложение ECMA.
    3. Щелкните элемент Подготовка.
    4. Если появится окно Начало работы, в разделе Локальное подключение измените режим на Автоматический, выберите только что развернутый агент, щелкните команду Назначить агенты и подождите 10 минут. Если окно не появится, перейдите к разделу Изменение подготовки.
  2. Введите указанный ниже URL-адрес в разделе Учетные данные администратора. Замените connectorName часть именем соединителя на узле ECMA, например LDAP. Если вы предоставили сертификат из центра сертификации для узла ECMA, замените localhost его именем сервера, на котором установлен узел ECMA.

    Свойство Значение
    URL-адрес клиента https://localhost:8585/ecma2host_connectorName/scim
  3. Введите значение секретного токена, которое вы определили при создании соединителя.

    Примечание.

    Если вы назначили агент для приложения только что, подождите 10 минут, пока не завершится регистрация. Проверку подключения можно произвести только после завершения регистрации. Ускорить процесс регистрации можно, принудительно завершив регистрацию агента путем перезапуска агента подготовки на сервере. Перейдите на сервер, найдите службы в строке поиска Windows, определите службу агента подготовки Microsoft Entra Connect, щелкните правой кнопкой мыши службу и перезапустите ее.

  4. Нажмите Проверить соединение и подождите одну минуту.

  5. После успешного тестирования подключения и указывает, что предоставленные учетные данные разрешены для включения подготовки, нажмите кнопку "Сохранить".
    Снимок экрана, тестирование агента

Расширение схемы Microsoft Entra

Если для сервера каталогов требуются дополнительные атрибуты, которые не являются частью схемы Microsoft Entra по умолчанию для пользователей, то при подготовке можно настроить для предоставления значений этих атрибутов из константы, из выражения, преобразованного из других атрибутов Microsoft Entra, или путем расширения схемы Microsoft Entra.

Если серверу каталогов требуется, чтобы пользователи имели атрибут, например uidNumber для схемы OpenLDAP POSIX, и этот атрибут еще не является частью схемы Microsoft Entra для пользователя, и он должен быть уникальным для каждого пользователя, то необходимо либо создать этот атрибут из других атрибутов пользователя с помощью выражения, или используйте функцию расширения каталога для добавления этого атрибута в качестве расширения.

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

Если пользователи берутся в идентификаторе Microsoft Entra, для каждого нового атрибута необходимо хранить на пользователя, необходимо определить расширение каталога. Затем обновите пользователей Microsoft Entra, которые планируется подготовить, чтобы предоставить каждому пользователю значение этих атрибутов.

Настройка сопоставления атрибутов

В этом разделе описано, как настроить сопоставление атрибутов пользователя Microsoft Entra и атрибутов, выбранных ранее в мастере настройки узла ECMA. Позже, когда соединитель создает объект на сервере каталогов, атрибуты пользователя Microsoft Entra затем будут отправлены через соединитель на сервер каталогов, чтобы быть частью этого нового объекта.

  1. В Центре администрирования Microsoft Entra в разделе "Корпоративные приложения" выберите локальное приложение приложения ECMA, а затем выберите страницу подготовки .

  2. Выберите Изменить параметры подготовки.

  3. Разверните сопоставления и выберите "Подготовка пользователей Microsoft Entra". Если это первый раз, когда вы настроили сопоставления атрибутов для этого приложения, для заполнителя будет только одно сопоставление.

  4. Чтобы убедиться, что схема сервера каталогов доступна в идентификаторе Microsoft Entra, установите флажок "Показать расширенные параметры " и выберите "Изменить список атрибутов" для ScimOnPremises. Убедитесь, что перечислены все атрибуты, выбранные в мастере настройки. Если нет, подождите несколько минут, пока схема будет обновлена, а затем выберите "Сопоставление атрибутов" в строке навигации, а затем снова выберите "Изменить список атрибутов" для ScimOnPremises , чтобы перезагрузить страницу. Когда вы увидите перечисленные атрибуты, а затем отмените с этой страницы, чтобы вернуться в список сопоставлений.

  5. Каждый пользователь в каталоге должен иметь уникальное различающееся имя. Можно указать, как соединитель должен создавать различающееся имя с помощью сопоставления атрибутов. Выберите Добавить сопоставление. Используйте приведенные ниже значения, чтобы создать сопоставление, изменив различающиеся имена в выражении, чтобы соответствовать значению подразделения или другого контейнера в целевом каталоге.

    • Тип сопоставления: выражение
    • Выражение: Join("", "CN=", Word([userPrincipalName], 1, "@"), ",DC=Contoso,DC=lab")
    • Целевой атрибут: urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:-dn-
    • Применение этого сопоставления: только во время создания объекта
  6. Если серверу каталогов требуется несколько значений класса структурных объектов или вспомогательных значений класса объектов, которые должны быть предоставлены в objectClass атрибуте, добавьте сопоставление с этим атрибутом. Чтобы добавить сопоставление, objectClassнажмите кнопку "Добавить новое сопоставление". Используйте приведенные ниже значения, чтобы создать сопоставление, изменив имена классов объектов в выражении, чтобы соответствовать значению схемы целевого каталога.

    • Тип сопоставления: выражение
    • Выражение, если подготовка схемы POSIX: Split("inetOrgPerson,posixAccount,shadowAccount",",")
    • Целевой атрибут: urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:objectClass
    • Применение этого сопоставления: только во время создания объекта
  7. Для каждого сопоставления в следующей таблице для сервера каталогов выберите " Добавить новое сопоставление" и укажите исходные и целевые атрибуты. Если вы подготавливаете существующий каталог с существующими пользователями, необходимо изменить сопоставление атрибута, который обычно задает объекты Match с помощью этого атрибута . Дополнительные сведения о сопоставлении атрибутов см. здесь.

    Для OpenLDAP со схемой POSIX также потребуется указать gidNumberhomeDirectoryuid атрибуты и uidNumber атрибуты. Каждому пользователю требуется уникальный uid и уникальный uidNumber. Как правило, homeDirectory он устанавливается выражением, производным от пользовательского идентификатора пользователя. Например, если uid пользователь создается выражением, производным от имени субъекта-пользователя, то значение домашнего каталога этого пользователя может быть создано аналогичным выражением, также производным от имени участника-пользователя. И в зависимости от вашего варианта использования, возможно, вам потребуется, чтобы все пользователи были в одной группе, поэтому назначьте их gidNumber из константы.

    Тип сопоставления Атрибут источника Целевой атрибут
    Напрямую displayName urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:cn
    Напрямую surname urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:sn
    Напрямую userPrincipalName urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:mail
    Expression ToLower(Word([userPrincipalName], 1, "@"), ) urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:uid
    Напрямую (атрибут, характерный для каталога) urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:uidNumber
    Expression Join("/", "/home", ToLower(Word([userPrincipalName], 1, "@"), )) urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:homeDirectory
    Константа 10000 urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:gidNumber
  8. Добавьте сопоставление, которое urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:userPassword задает исходный случайный пароль для пользователя.

  9. Выберите Сохранить.

Обеспечение подготовки пользователей в каталоге обязательных атрибутов

Если в каталоге LDAP есть пользователи, имеющие учетные записи пользователей, необходимо убедиться, что в представлении пользователя Microsoft Entra есть атрибуты, необходимые для сопоставления.

Если вы планируете создать новых пользователей в каталоге LDAP, необходимо убедиться, что представления Microsoft Entra этих пользователей имеют исходные атрибуты, необходимые для пользовательской схемы целевого каталога. Каждому пользователю требуется уникальный uid и уникальный uidNumber.

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

Если пользователи берутся в идентификаторе Microsoft Entra, для каждого нового атрибута необходимо хранить на пользователя, необходимо определить расширение каталога. Затем обновите пользователей Microsoft Entra, которые планируется подготовить, чтобы предоставить каждому пользователю значение этих атрибутов.

Подтверждение пользователей с помощью PowerShell

После обновления пользователей в идентификаторе Microsoft Entra можно использовать командлеты Microsoft Graph PowerShell для автоматизации проверки наличия всех необходимых атрибутов.

Например, предположим, что подготовка требует от пользователей трех атрибутов DisplayNamesurname и extension_656b1c479a814b1789844e76b2f459c3_MyNewProperty. Этот третий атрибут будет использоваться для хранения uidNumber. Можно использовать Get-MgUser командлет для получения каждого пользователя и проверки наличия необходимых атрибутов. Обратите внимание, что командлет Graph версии 1.0 Get-MgUser по умолчанию не возвращает ни один из атрибутов расширения каталога пользователя, если атрибуты не указаны в запросе в качестве одного из возвращаемых свойств.

В этом разделе показано, как взаимодействовать с идентификатором Microsoft Entra с помощью командлетов Microsoft Graph PowerShell .

Когда ваша организация впервые применит эти командлеты для данного сценария, вам потребуется роль глобального администратора, чтобы предоставить согласие на использование Microsoft Graph PowerShell в арендаторе. Последующие взаимодействия могут использовать роль с более низким уровнем привилегий, например, такую как:

  • администратор пользователей, если вы планируете создавать новых пользователей;
  • администратор приложений или администратор управления удостоверениями, если вы просто управляете назначениями ролей приложения.
  1. Откройте средство PowerShell.

  2. Если у вас еще нет установленных модулей Microsoft Graph PowerShell, установите модуль Microsoft.Graph.Users и другие модули с помощью следующей команды:

    Install-Module Microsoft.Graph
    

    Если у вас уже установлены модули, убедитесь, что используете последнюю версию:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Подключитесь к идентификатору Microsoft Entra:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.Read.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Создайте список пользователей и атрибуты для проверки.

    $userPrincipalNames = (
     "alice@contoso.com",
     "bob@contoso.com",
     "carol@contoso.com" )
    
    $requiredBaseAttributes = ("DisplayName","surname")
    $requiredExtensionAttributes = ("extension_656b1c479a814b1789844e76b2f459c3_MyNewProperty")
    
  5. Запросите каталог для каждого пользователя.

    $select = "id"
    foreach ($a in $requiredExtensionAttributes) { $select += ","; $select += $a;}
    foreach ($a in $requiredBaseAttributes) { $select += ","; $select += $a;}
    
    foreach ($un in $userPrincipalNames) {
       $nu = Get-MgUser -UserId $un -Property $select -ErrorAction Stop
       foreach ($a in $requiredBaseAttributes) { if ($nu.$a -eq $null) { write-output "$un missing $a"} }
       foreach ($a in $requiredExtensionAttributes) { if ($nu.AdditionalProperties.ContainsKey($a) -eq $false) { write-output "$un missing $a" } }
    }
    

Сбор существующих пользователей из каталога LDAP

  1. Определите, какие пользователи в этом каталоге находятся в области для пользователей с проверкой подлинности Linux. Этот выбор зависит от конфигурации системы Linux. Для некоторых конфигураций любой пользователь, имеющийся в каталоге LDAP, является допустимым пользователем. Другим конфигурациям может потребоваться, чтобы пользователь мог иметь определенный атрибут или быть членом группы в этом каталоге.

  2. Выполните команду, которая извлекает это подмножество пользователей из каталога LDAP в CSV-файл. Убедитесь, что выходные данные содержат атрибуты пользователей, которые будут использоваться для сопоставления с идентификатором Microsoft Entra. Примерами этих атрибутов являются идентификатор сотрудника, имя учетной записи или uidадрес электронной почты.

  3. При необходимости перенесите CSV-файл со списком пользователей в систему, где установлены командлеты Microsoft Graph PowerShell.

  4. Теперь, когда у вас есть список всех пользователей, полученных из каталога, вы будете соответствовать этим пользователям из каталога с пользователями в идентификаторе Microsoft Entra. Прежде чем продолжить, просмотрите сведения о сопоставлении пользователей в исходных и целевых системах.

Получение идентификаторов пользователей в идентификаторе Microsoft Entra

В этом разделе показано, как взаимодействовать с идентификатором Microsoft Entra с помощью командлетов Microsoft Graph PowerShell .

Когда ваша организация впервые применит эти командлеты для данного сценария, вам потребуется роль глобального администратора, чтобы предоставить согласие на использование Microsoft Graph PowerShell в арендаторе. Последующие взаимодействия могут использовать роль с более низким уровнем привилегий, например, такую как:

  • администратор пользователей, если вы планируете создавать новых пользователей;
  • администратор приложений или администратор управления удостоверениями, если вы просто управляете назначениями ролей приложения.
  1. Откройте средство PowerShell.

  2. Если у вас еще нет установленных модулей Microsoft Graph PowerShell, установите модуль Microsoft.Graph.Users и другие модули с помощью следующей команды:

    Install-Module Microsoft.Graph
    

    Если у вас уже установлены модули, убедитесь, что используете последнюю версию:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Подключитесь к идентификатору Microsoft Entra:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Если вы впервые использовали эту команду, может потребоваться согласие на предоставление этим разрешениям инструментам командной строки Microsoft Graph.

  5. Считайте список пользователей, полученный из хранилища данных приложения, в сеанс PowerShell. Если список пользователей ранее хранился в CSV-файле, вы можете использовать этот командлет PowerShell Import-Csv, предоставив в качестве аргумента имя файла из предыдущего раздела.

    Например, если файл, полученный из облачных служб удостоверений SAP, называется Users-exported-from-sap.csv и находится в текущем каталоге, введите следующую команду.

    $filename = ".\Users-exported-from-sap.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    

    Для другого примера, если вы используете базу данных или каталог, если файл называется users.csv и расположен в текущем каталоге, введите следующую команду:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Выберите столбец файла users.csv , который будет соответствовать атрибуту пользователя в идентификаторе Microsoft Entra.

    Если вы используете службы SAP Cloud Identity Services, то сопоставление по умолчанию — это атрибут userName SAP SCIM с атрибутом userPrincipalNameидентификатора Microsoft Entra ID:

    $db_match_column_name = "userName"
    $azuread_match_attr_name = "userPrincipalName"
    

    В другом примере, если вы используете базу данных или каталог, у вас могут быть пользователи в базе данных, где значение в столбце с именем EMail совпадает со значением атрибута userPrincipalNameMicrosoft Entra:

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Получите идентификаторы этих пользователей в идентификаторе Microsoft Entra ID.

    В следующем скрипте PowerShell используются значения $dbusers, $db_match_column_name и $azuread_match_attr_name, указанные ранее. Он запрашивает идентификатор Microsoft Entra, чтобы найти пользователя с атрибутом с соответствующим значением для каждой записи в исходном файле. Если в файле есть много пользователей, полученных из исходной облачной службы идентификации SAP, базы данных или каталога, этот сценарий может занять несколько минут. Если у вас нет атрибута в идентификаторе Microsoft Entra, который имеет значение, и необходимо использовать contains или другое выражение фильтра, вам потребуется настроить этот скрипт и в шаге 11 ниже, чтобы использовать другое выражение фильтра.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    
  8. Просмотрите результаты предыдущих запросов. Узнайте, не удалось ли находиться в идентификаторе Microsoft Entra в любом из пользователей в облачных службах удостоверений SAP, базе данных или каталоге из-за ошибок или отсутствующих совпадений.

    Следующий скрипт PowerShell отображает количество записей, которые не удалось найти:

    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    
  9. По завершении скрипта будет указано сообщение об ошибке, если какие-либо записи из источника данных не были расположены в идентификаторе Microsoft Entra. Если не все записи для пользователей из хранилища данных приложения могут находиться как пользователи в идентификаторе Microsoft Entra, вам потребуется исследовать, какие записи не совпадают и почему.

    Например, адрес электронной почты пользователя и userPrincipalName могут быть изменены в идентификаторе Microsoft Entra без mail соответствующего свойства, обновляемого в источнике данных приложения. Также есть вариант, что пользователь уже покинул организацию, но сведения о нем сохранились в источнике данных приложения. Или может быть учетная запись поставщика или суперадминистратор в источнике данных приложения, который не соответствует любому конкретному лицу в идентификаторе Microsoft Entra.

  10. Если пользователи не могли находиться в идентификаторе Microsoft Entra ID или не были активными и не смогли войти, но вы хотите проверить доступ или обновить их атрибуты в SAP Cloud Identity Services, базе данных или каталоге, вам потребуется обновить приложение, соответствующее правило или обновить или создать пользователей Microsoft Entra для них. Дополнительные сведения об изменениях см. в статье об управлении сопоставлениями и учетными записями пользователей в приложениях, которые не совпадают с пользователями в идентификаторе Microsoft Entra.

    Если выбрать вариант создания пользователей в идентификаторе Microsoft Entra, вы можете создать пользователей в массовом режиме с помощью одного из следующих вариантов:

    Убедитесь, что эти новые пользователи заполняются атрибутами, необходимыми для идентификатора Microsoft Entra, чтобы позже сопоставить их с существующими пользователями в приложении, а также атрибуты, необходимые идентификатору Microsoft Entra, включая userPrincipalNamemailNickname и displayName. Он userPrincipalName должен быть уникальным среди всех пользователей в каталоге.

    Например, у вас могут быть пользователи в базе данных, где значение в столбце с именем EMail является значением, которое вы хотите использовать в качестве имени участника-пользователя Microsoft Entra, значение в столбце Alias содержит псевдоним электронной почты Microsoft Entra ID, а значение в столбце Full name содержит отображаемое имя пользователя:

    $db_display_name_column_name = "Full name"
    $db_user_principal_name_column_name = "Email"
    $db_mail_nickname_column_name = "Alias"
    

    Затем этот скрипт можно использовать для создания пользователей Microsoft Entra для пользователей в sap Cloud Identity Services, в базе данных или каталоге, который не совпадает с пользователями в идентификаторе Microsoft Entra. Обратите внимание, что может потребоваться изменить этот скрипт, чтобы добавить дополнительные атрибуты Microsoft Entra, необходимые в вашей организации, или если это $azuread_match_attr_name не mailNicknameuserPrincipalNameтак, чтобы предоставить этот атрибут Microsoft Entra.

    $dbu_missing_columns_list = @()
    $dbu_creation_failed_list = @()
    foreach ($dbu in $dbu_not_matched_list) {
       if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) {
          $params = @{
             accountEnabled = $false
             displayName = $dbu.$db_display_name_column_name
             mailNickname = $dbu.$db_mail_nickname_column_name
             userPrincipalName = $dbu.$db_user_principal_name_column_name
             passwordProfile = @{
               Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
             }
          }
          try {
            New-MgUser -BodyParameter $params
          } catch { $dbu_creation_failed_list += $dbu; throw }
       } else {
          $dbu_missing_columns_list += $dbu
       }
    }
    
  11. После добавления отсутствующих пользователей в идентификатор Microsoft Entra запустите сценарий из шага 7 еще раз. Затем запустите скрипт из шага 8. Убедитесь, что сообщения об ошибках отсутствуют.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    

Назначение пользователей приложению в идентификаторе Microsoft Entra

Теперь, когда у вас есть узел соединителя Microsoft Entra ECMA, который разговаривает с идентификатором Microsoft Entra и настроен сопоставление атрибутов, можно перейти к настройке, которая находится в области подготовки.

Внимание

Если вы вошли с помощью роли администратора гибридных удостоверений, необходимо выйти и войти с учетной записью, которая имеет по крайней мере роль администратора приложений для этого раздела. Роль администратора гибридных удостоверений не имеет разрешений на назначение пользователей приложениям.

Если в каталоге LDAP есть существующие пользователи, вам следует создать в приложении назначения ролей для существующих пользователей. Дополнительные сведения о том, как создавать назначения ролей приложения в массовом режиме с помощьюNew-MgServicePrincipalAppRoleAssignedTo, см. в руководстве по управлению существующими пользователями в идентификаторе Microsoft Entra.

Если вы еще не хотите обновлять существующих пользователей в каталоге LDAP, выберите тестового пользователя из идентификатора Microsoft Entra, который имеет необходимые атрибуты и будет подготовлен к серверу каталогов.

  1. Убедитесь, что пользователь выберет все свойства, которые будут сопоставлены с необходимыми атрибутами схемы сервера каталогов.
  2. На портале Azure выберите элемент Корпоративные приложения.
  3. Выберите вариант Локальное приложение ECMA.
  4. В левой части экрана последовательно выберите Управление и Пользователи и группы.
  5. Выберите Добавить пользователя или группу. Снимок экрана: добавление пользователя.
  6. В меню Пользователи нажмите Не выбрано. Снимок экрана: пункт
  7. Выберите пользователя справа и нажмите кнопку "Выбрать ".
    Снимок экрана: выбор пользователей
  8. Теперь нажмите Назначить. Снимок экрана: назначение пользователей.

Тестирование подготовки

Теперь, когда атрибуты сопоставлены и назначены начальным пользователем, можно протестировать подготовку по запросу с одним из пользователей.

  1. На сервере, на котором запущен узел соединителя Microsoft Entra ECMA, нажмите кнопку "Пуск".

  2. Введите run, а потом введите в поле services.msc.

  3. В списке служб убедитесь, что запущена служба агента подготовки Microsoft Entra Connect и службы Microsoft ECMA2Host . В противном случае нажмите Start (Запустить).

  4. На портале Azure выберите элемент Корпоративные приложения.

  5. Выберите вариант Локальное приложение ECMA.

  6. В левой части экрана выберите элемент Подготовка.

  7. Выберите Подготовка по требованию.

  8. Найдите одного из тестовых пользователей и выберите Подготовить. Снимок экрана: тестирование подготовки по запросу.

  9. Через несколько секунд появится сообщение Пользователь в целевой системе создан со списком атрибутов пользователя. Если вместо этого появится ошибка, ознакомьтесь с ошибками подготовки.

Начало подготовки пользователей

После успешного тестирования подготовки по запросу добавьте остальных пользователей. Дополнительные сведения о том, как создавать назначения ролей приложения в массовом режиме с помощьюNew-MgServicePrincipalAppRoleAssignedTo, см. в руководстве по управлению существующими пользователями в идентификаторе Microsoft Entra.

  1. В портал Azure выберите приложение.
  2. В левой части экрана последовательно выберите Управление и Пользователи и группы.
  3. Убедитесь, что всем пользователям назначена роль приложения.
  4. Вернитесь на страницу конфигурации подготовки.
  5. Убедитесь, что для области заданы только назначенные пользователи и группы, включите состояние подготовки и нажмите кнопку "Сохранить".
  6. Подождите несколько минут, пока начнется подготовка. Она может занять до 40 минут. После завершения задания подготовки, как описано в следующем разделе,

Устранение ошибок подготовки

Если отображается сообщение об ошибке, выберите команду Просмотреть журналы подготовки. Найдите в журнале строку, в которой для состояния отображается значение Сбой, и щелкните ее.

Если появляется сообщение об ошибке Не удалось создать пользователя, проверьте атрибуты, отображаемые в требованиях схемы базы данных.

Дополнительные сведения см. на вкладке "Устранение неполадок и рекомендации ".

Если сообщение об ошибке устранения неполадок включает значение objectClass invalid per syntax, убедитесь, что сопоставление атрибута подготовки с objectClass атрибутом содержит только имена классов объектов, распознаваемых сервером каталогов.

Сведения о других ошибках см. в статье об устранении неполадок при подготовке локальных приложений.

Если вы хотите приостановить подготовку в этом приложении, на странице конфигурации подготовки можно изменить состояние подготовки на "Выкл." и нажмите кнопку "Сохранить". После этого служба подготовки перестанет запускаться.

Проверка подготовки пользователей

После ожидания проверьте сервер каталогов, чтобы убедиться, что пользователи подготовлены. Запрос, выполняемый на сервере каталогов, будет зависеть от того, какие команды предоставляет сервер каталогов.

В следующих инструкциях показано, как проверить OpenLDAP в Linux.

  1. Откройте окно терминала с командной оболочкой в системе с помощью OpenLDAP.
  2. Введите команду ldapsearch -D "cn=admin,dc=contoso,dc=lab" -W -s sub -b dc=contoso,dc=lab -LLL (objectclass=inetOrgPerson)
  3. Убедитесь, что результирующий LDIF содержит пользователей, подготовленных из идентификатора Microsoft Entra.

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