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

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

В этом документе описаны шаги, необходимые для автоматического включения и отключения пользователей из Microsoft Entra ID в каталог LDAP. В документе показано, как развернуть пользователей в AD LDS на примере каталога LDAP, однако также можно развернуть на любой из поддерживаемых серверов каталогов LDAP, упомянутых в следующих разделах. Развертывание пользователей в службах доменных услуг Active Directory через это решение не поддерживается.

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

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

Локальные предварительные требования

  • Приложение, использующее сервер каталогов для запроса пользователей.
  • Целевой каталог, отличный от служб домен Active Directory, в котором пользователи могут создаваться, обновляться и удаляться. Например, упрощенные службы Active Directory (AD LDS). Этот экземпляр каталога не должен быть тем же, который используется для предоставления доступа пользователям в Microsoft Entra ID, поскольку наличие обоих сценариев может создать цикл при использовании Microsoft Entra Connect.
  • Компьютер с как минимум 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.

Поддерживаемые серверы каталогов LDAP

Соединитель использует различные методы для обнаружения и идентификации сервера LDAP. Соединитель использует корневой DSE, имя поставщика и версию и проверяет схему для поиска уникальных объектов и атрибутов, известных как существующие на определенных серверах LDAP.

  • OpenLDAP
  • Службы Microsoft Active Directory облегченного доступа к каталогам (AD LDS)
  • Сервер каталогов 389
  • Apache Directory Server.
  • IBM Tivoli DS.
  • Isode Directory.
  • NetIQ eDirectory.
  • Novell eDirectory.
  • Открыть DJ
  • Open DS.
  • Oracle (предыдущее название — Sun ONE) Directory Server выпуск Enterprise.
  • RadiantOne Virtual Directory Server (VDS).

Дополнительные сведения см. в справочнике по универсальному соединителю LDAP.

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

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

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

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

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

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

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

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

Выбор профилей выполнения

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

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

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

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

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

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

Параметр конфигурации Где задано значение Пример значения
имя узла сервера каталогов Страница мастера настройки Связи APP3
номер порта сервера каталогов Страница мастера настройки Связи 636. Для LDAP через SSL или TLS (LDAPS) используйте порт 636. Для Start TLSиспользуйте порт 389.
учетная запись, с помощью которой соединитель идентифицирует себя на сервере каталогов Страница мастера настройки Связи Для AD LDS CN=svcAccountLDAP,CN=ServiceAccounts,CN=App,DC=contoso,DC=lab и OpenLDAP cn=admin,dc=contoso,dc=lab
пароль соединителя для его аутентификации на сервере каталогов Страница мастера настройки Связи
Класс структурных объектов для пользователя на сервере каталогов Страница мастера настройки Типы объектов Для AD LDS User и OpenLDAP inetOrgPerson
вспомогательные классы объектов для пользователя на сервере каталогов сопоставления атрибутов страницы предоставления ресурсов в портале Azure Для OpenLDAP со схемой posixAccount POSIX иshadowAccount
атрибуты, которые необходимо заполнить для нового пользователя Мастер настройки страница выбора атрибутов и страница Provisioning в портале Azure с сопоставлениями атрибутов Для AD LDS msDS-UserAccountDisabled, userPrincipalName, displayName, а также для OpenLDAP cn, gidNumber, homeDirectory, mail, objectClass, sn, uid, uidNumber, userPassword.
Иерархия именования, требуемая сервером каталогов сопоставления атрибутов страницы предоставления ресурсов в портале Azure Задайте DN только что созданного пользователя для AD LDS непосредственно ниже CN=CloudUsers,CN=App,DC=Contoso,DC=lab, и для OpenLDAP непосредственно ниже DC=Contoso,DC=lab.
атрибуты для сопоставления пользователей между идентификатором Microsoft Entra и сервером каталогов сопоставления атрибутов страницы предоставления ресурсов в портале Azure Для AD LDS не настроено, поскольку этот пример предназначен для изначально пустого каталога, а для OpenLDAP mail
поведение при деактивации, когда пользователь выходит за пределы области действия в Microsoft Entra ID Страница депровижининга мастера настройки Удаление пользователя с сервера каталогов

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

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

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

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, а не только обновление или удаление существующих пользователей, то также необходимо определить, как приложения, использующие этот сервер каталогов, будут обрабатывать проверку подлинности. Рекомендуемый подход заключается в том, чтобы приложения использовали протокол федерации или единого входа, например SAML, OAuth или OpenID Connect, для аутентификации через Microsoft Entra ID, и только полагались на сервер каталога для получения атрибутов. Традиционно каталоги LDAP могут использоваться приложениями для проверки подлинности пользователей, проверив пароль, но этот вариант использования невозможен для многофакторной проверки подлинности или когда пользователь уже прошел проверку подлинности. Некоторые приложения могут запрашивать открытый ключ SSH пользователя или сертификат из каталога, который может быть подходящим для пользователей, которые уже содержат учетные данные этих форм. Однако если приложение, использующее сервер каталогов, не поддерживает современные протоколы проверки подлинности или более надежные учетные данные, необходимо задать пароль для конкретного приложения при создании нового пользователя в каталоге, так как идентификатор Microsoft Entra не поддерживает подготовку пароля Microsoft Entra.

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

Подготовка каталога LDAP

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

Установите и настройте агент обеспечения Microsoft Entra Connect

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

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

Снимок экрана: выбор опции «Автоматически».

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

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

  1. Выйдите из портала и откройте установщик агента настройки, примите условия обслуживания и нажмите Установить.
  2. Дождитесь мастера конфигурации агента обеспечения Microsoft Entra, а затем нажмите кнопку «Далее».
  3. На шаге выбора расширения выберите " Подготовка локальных приложений" и нажмите кнопку "Далее".
  4. Агент развертывания будет использовать веб-браузер операционной системы для отображения всплывающего окна, в котором вам потребуется выполнить аутентификацию в Microsoft Entra ID, а также, возможно, у поставщика удостоверений вашей организации. Если вы используете 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

В зависимости от выбранных параметров некоторые экраны мастера могут быть недоступны, а сведения могут немного отличаться. В этом примере конфигурации назначение пользователей с классом объектов User показано для AD LDS, а с классом объектов inetOrgPerson — для OpenLDAP. Ниже приведены сведения, которые помогут вам в настройке.

  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 с сервером каталогов и задайте некоторые параметры конфигурации. Заполните поля значениями, указанными в таблице под снимком экрана, и нажмите кнопку Далее. При нажатии кнопки "Далее" соединитель запрашивает сервер каталогов для его конфигурации. снимок экрана, на котором показана страница подключения.

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

    Замечание

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

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

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

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

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

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

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

  12. На странице Типов объектов заполните поля и выберите Далее.

    Недвижимость Описание
    Целевой объект Это значение является структурным классом объектов пользователя на сервере каталогов LDAP. Например, inetOrgPerson для OpenLDAP или User AD LDS. Не указывайте вспомогательный класс объектов в этом поле. Если для сервера каталогов требуются вспомогательные классы объектов, они будут настроены с помощью сопоставлений атрибутов на портале Azure.
    Привязка Значения этого атрибута должны быть уникальными для каждого объекта в целевом каталоге. Служба подготовки Microsoft Entra будет запрашивать сервер соединителя ECMA с помощью этого атрибута после начального цикла. Для AD LDS используйте ObjectGUID, а для других серверов каталогов см. следующую таблицу. Обратите внимание, что отличительное имя может быть выбрано как -dn-. Многозначные атрибуты, такие как uid атрибут в схеме OpenLDAP, нельзя использовать в качестве привязок.
    Атрибут запроса Этот атрибут должен совпадать с привязкой, например objectGUID , если AD LDS является сервером каталогов или _distinguishedName если OpenLDAP.
    ДН Различающееся имя целевого объекта. Сохраняйте -dn-.
    Созданный автоматически непроверенный

    В следующей таблице перечислены серверы LDAP и используемые привязки:

    Каталог Привязка
    Microsoft AD LDS и AD GC objectGUID. Вы должны использовать агент версии 1.1.846.0 или более поздней, чтобы ObjectGUID использовался в качестве привязки.
    Сервер каталогов 389 dn
    Apache Directory dn
    IBM Tivoli DS. dn
    Isode Directory. dn
    Novell/NetIQ eDirectory ГУИД
    Открыть DJ/DS dn
    Система Open LDAP dn
    Oracle ODSEE dn
    RadiantOne VDS dn
    Sun One Directory Server. dn
  13. Хост ECMA обнаруживает атрибуты, поддерживаемые целевым каталогом. Вы можете выбрать, какие из этих атрибутов вы хотите предоставить идентификатору Microsoft Entra. Затем эти атрибуты можно настроить в портале Azure для управления ресурсами. На странице выбора атрибутов добавьте все атрибуты в раскрывающемся списке( по одному за раз), которые требуются в качестве обязательных атрибутов или которые требуется подготовить из идентификатора Microsoft Entra. Снимок экрана, который показывает страницу выбора атрибутов.
    В раскрывающемся списке атрибутов отображается любой атрибут, который был обнаружен в целевом каталоге и не был выбран при предыдущем использовании страницы выбора атрибутов мастера настройки.

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

    Если вы используете OpenLDAP с схемой inetOrgPerson, настройте видимость для следующих атрибутов.

    Свойство Рассматривать как одно значение
    цн У
    почта У
    objectClass
    сн У
    пароль пользователя У

    Если вы используете OpenLDAP со схемой POSIX, настройте видимость для следующих атрибутов.

    Свойство Рассматривать как одно значение
    _distinguishedName (выделенное имя)
    -dn-
    экспорт_пароля
    цн У
    gidNumber
    домашняя директория
    почта У
    objectClass
    сн У
    уникальный идентификатор (УИД) У
    uidNumber
    пароль пользователя У

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

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

Замечание

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

  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 ID к узлу соединителя

  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 ID, то для каждого нового атрибута, который нужно сохранить для пользователя, необходимо определить расширение каталога. Затем обновите пользователей Microsoft Entra, которые планируется включить в процесс подготовки, чтобы назначить каждому пользователю значения этих атрибутов.

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

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

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

  2. Выберите Изменить настройки конфигурации.

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

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

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

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

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

    • Тип сопоставления: прямой
    • Исходный атрибут: userPrincipalName
    • Целевой атрибут: urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:userPrincipalName
    • Приоритет совпадения: 1
    • Применение этого сопоставления: только во время создания объекта
  8. Если вы производите настройку в AD LDS, добавьте сопоставление для isSoftDeleted. Выберите Добавить новое сопоставление. Используйте приведенные ниже значения, чтобы создать сопоставление.

    • Тип сопоставления: прямой
    • Исходный атрибут: isSoftDeleted
    • Целевой атрибут: urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:msDS-UserAccountDisabled
  9. Для каждого сопоставления в следующей таблице для сервера каталогов выберите " Добавить новое сопоставление" и укажите исходные и целевые атрибуты. Если вы интегрируете в существующий каталог с уже имеющимися пользователями, вам необходимо изменить сопоставление для общего атрибута, чтобы установить сопоставление объектов по этому атрибуту. Дополнительные сведения о сопоставлении атрибутов см. здесь.

    Для AD LDS:

    Тип сопоставления Атрибут источника Целевой атрибут
    Напрямую displayName urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:displayName

    Для OpenLDAP:

    Тип сопоставления Атрибут источника Целевой атрибут
    Напрямую 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

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

    Тип сопоставления Атрибут источника Целевой атрибут
    Выражение 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
    Выражение 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
  10. Если осуществляется подготовка в каталог, отличный от AD LDS, добавьте сопоставление для urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:userPassword, чтобы задать начальный случайный пароль для пользователя. Для AD LDS нет сопоставления для userPassword.

  11. Нажмите кнопку "Сохранить".

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

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

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

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

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

$userPrincipalNames = (
 "alice@contoso.com",
 "bob@contoso.com",
 "carol@contoso.com" )

$requiredBaseAttributes = ("DisplayName","surname")
$requiredExtensionAttributes = ("extension_656b1c479a814b1789844e76b2f459c3_MyNewProperty")

$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

Многие каталоги LDAP, в том числе Active Directory, предоставляют команду для вывода списка пользователей.

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

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

    Например, эта команда в Windows с помощью программы AD LDS csvde создаст CSV-файл в текущем каталоге файловой системы с userPrincipalName атрибутом каждого человека в каталоге:

    $out_filename = ".\users.csv"
    csvde -f $out_filename -l userPrincipalName,cn -r "(objectclass=person)"
    
  3. При необходимости перенесите CSV-файл со списком пользователей в систему, где установлены командлеты Microsoft Graph PowerShell.

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

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

В этом разделе показано, как взаимодействовать с Microsoft Entra ID с помощью командлетов 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, то сопоставление по умолчанию — это атрибут SAP SCIM userName с атрибутом идентификатора Microsoft Entra ID userPrincipalName:

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

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

    $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 ID у вас нет атрибута с определённым значением и вам необходимо использовать выражение фильтра 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. Просмотрите результаты предыдущих запросов. Узнайте, не удалось ли найти пользователей из SAP Cloud Identity Services, базы данных или каталога в Microsoft Entra ID из-за ошибок или отсутствия совпадений.

    Следующий скрипт 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 ID, вам нужно будет выяснить, какие записи не совпадают и почему.

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

  10. Если пользователи не могли находиться в идентификаторе Microsoft Entra ID или не были активными и не смогли войти, но вы хотите проверить доступ или обновить их атрибуты в SAP Cloud Identity Services, базе данных или каталоге, вам потребуется обновить приложение, соответствующее правило или обновить или создать пользователей Microsoft Entra для них. Дополнительные сведения о том, какие изменения внести, см. в статье о управлении сопоставлениями и учетными записями пользователей в приложениях, которые не совпадают с учетными записями пользователей в ID 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 ID. Обратите внимание, что может потребоваться изменить этот скрипт, чтобы добавить дополнительные атрибуты Microsoft Entra, которые требуются вашей организации, или если $azuread_match_attr_name не является ни mailNickname ни userPrincipalName, для того чтобы предоставить этот атрибут 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 ECMA Connector Host, который взаимодействует с Microsoft Entra ID, и настроено сопоставление атрибутов, можно перейти к настройке, определяющей, кто подлежит подготовке.

Это важно

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

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

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

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

Тестирование обеспечения

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

  1. На сервере, где работает Microsoft Entra ECMA Connector Host, нажмите Пуск.

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

  3. В списке служб убедитесь, что службы агента подготовки Microsoft Entra Connect и Microsoft ECMA2Host работают. Если нет, выберите Пуск.

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

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

  6. Слева выберите Настройка.

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

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

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

Начало обеспечения пользователей ресурсами

После успешного тестирования предоставления по запросу добавьте оставшихся пользователей.

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

Устранение ошибок конфигурирования

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

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

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

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

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

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

Убедитесь, что пользователи успешно подготовлены

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

Инструкции ниже иллюстрируют, как проверить AD LDS.

  1. Откройте диспетчер сервера и выберите слева AD LDS.
  2. Щелкните правой кнопкой мыши экземпляр AD LDS и выберите ldp.exe во всплывающем окне. Снимок экрана: расположение инструмента Ldp.
  3. В верхней части окна ldp.exe выберите Connection (Подключение) и Connect (Подключить).
  4. Введите следующие сведения и щелкните ОК.
    • Сервер: APP3
    • Порт: 636
    • Установите флажок SSL Снимок экрана: подключение Ldp для проверки пользователей.
  5. В верхней части окна Connection (Подключение) выберите Bind (Привязать).
  6. Оставьте значения по умолчанию и щелкните ОК.
  7. В верхней части страницы выберите View(Представление) и Tree (Дерево).
  8. Для BaseDN укажите значение CN=App,DC=contoso,DC=lab и щелкните ОК.
  9. Слева разверните DN и выберите CN=CloudUsers,CN=App,DC=contoso,DC=lab. Вы должны увидеть пользователей, которые были предоставлены из Microsoft Entra ID. Скриншот, показывающий привязку Ldp для пользователей.

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

  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 ID.

Дальнейшие шаги