Настройка Microsoft Entra ID для передачи пользователей в каталог LDAP для аутентификации в Linux.
В следующей документации показано, как управлять доступом к системе Linux. Microsoft Entra подготавливает пользователей к локальному каталогу LDAP, доверенному этой системой Linux. Это позволяет пользователям входить в систему Linux, которая использует этот каталог LDAP для проверки подлинности пользователей. Когда пользователь удаляется из идентификатора Microsoft Entra, он больше не сможет войти в систему Linux.
Заметка
Сценарий, описанный в этой статье, применим только для существующих систем Linux, которые уже используют переключатель служб имен (NSS) или подключаемый модуль LDAP (PAM) для идентификации пользователей и проверки подлинности. Виртуальные машины Linux в Azure или с поддержкой Azure Arc должны быть интегрированы с проверкой подлинности Microsoft Entra вместо этого. Теперь вы можете использовать Microsoft Entra ID в качестве основной платформы аутентификации и удостоверяющего центра для SSH на виртуальной машине Linux с помощью Microsoft Entra ID и аутентификации, основанной на сертификатах OpenSSH, как описано в входа на виртуальную машину Linux в Azure с помощью Microsoft Entra ID и OpenSSH.
Другие сценарии, связанные с подготовкой пользователей в каталоги LDAP, отличные от проверки подлинности Linux, см. в настройке идентификатора Microsoft Entra для подготовки пользователей в каталоги LDAP.
Предварительные требования для добавления пользователей в каталог LDAP для аутентификации в Linux.
В этой статье предполагается, что сервер LDAP уже присутствует в локальной среде, используемой одной или несколькими системами Linux или другими системами POSIX для проверки подлинности пользователей.
Локальные предварительные требования
- Сервер 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. Затем вы можете заполнить этот атрибут для пользователей в области. См. Расширяемость графов, чтобы узнать, как создавать дополнительные расширения каталога.
Дополнительные рекомендации и ограничения
Ниже приведены дополнительные рекомендации и ограничения.
- Не рекомендуется использовать тот же агент для облачной синхронизации и подготовки локальных приложений. Корпорация Майкрософт рекомендует использовать отдельный агент для облачной синхронизации и один для подготовки локальных приложений.
- В настоящее время пользователям в AD LDS нельзя назначить пароли. Поэтому необходимо отключить политику паролей для AD LDS или создать учетные записи пользователей в неактивном состоянии.
- Для других серверов каталогов можно задать начальный случайный пароль, но невозможно подготовить пароль пользователя Microsoft Entra на сервере каталогов.
- Не поддерживается подготовка пользователей из LDAP в Microsoft Entra ID.
- Группы подготовки и членство пользователей на сервере каталогов не поддерживаются.
Определение способа взаимодействия соединителя LDAP Microsoft Entra с сервером каталогов
Перед развертыванием соединителя на существующем сервере каталогов необходимо обсудить с оператором сервера каталогов в организации, как интегрироваться с сервером каталогов. Сведения для сбора включают в себя:
- Сетевая информация о том, как подключиться к серверу каталогов.
- Как соединитель должен аутентифицироваться на сервере каталогов.
- Какая схема выбрана для моделирования пользователей на сервере каталогов.
- Базовые правила иерархии именования и иерархии каталогов контекста именования.
- Связывание пользователей на сервере каталогов с пользователями в идентификаторе Microsoft Entra.
- Что должно произойти, когда пользователь выходит за рамки в Microsoft Entra ID.
При развертывании этого соединителя могут потребоваться изменения конфигурации сервера каталогов, а также изменения конфигурации идентификатора 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 , gidNumber , homeDirectory , mail , objectClass , sn , uid , uidNumber , userPassword |
Иерархия именования, требуемая сервером каталогов | Сопоставления атрибутов страниц на портале Azure |
Задайте для вновь созданного пользователя DN, чтобы он находился непосредственно под DC=Contoso,DC=lab . |
атрибуты для сопоставления пользователей между идентификатором Microsoft Entra и сервером каталогов | Сопоставления атрибутов страниц на портале Azure |
mail |
Поведение деактивации, когда пользователь выходит за пределы области действия в Microsoft Entra ID | Страница мастер настройки конфигурации деактивации | Удаление пользователя с сервера каталогов |
Сетевой адрес сервера каталогов — это имя узла и номер TCP-порта, обычно порт 389 или 636. За исключением того, где сервер каталогов находится совместно с соединителем на том же сервере Windows Server или используется безопасность на уровне сети, сетевые подключения от соединителя к серверу каталогов должны быть защищены с помощью SSL или TLS. Соединитель поддерживает подключение к серверу каталогов через порт 389 и запуск TLS для включения TLS в сеансе. Соединитель также поддерживает подключение к серверу каталогов на порт 636 для протокола LDAPS — LDAP поверх TLS.
Чтобы соединитель мог аутентифицироваться в уже настроенном сервере каталогов, необходимо иметь определённую учетную запись. Эта учетная запись обычно идентифицируется отличительным именем и имеет связанный пароль или сертификат клиента. Для выполнения операций импорта и экспорта объектов в подключенном каталоге учетная запись соединителя должна иметь достаточные разрешения в модели управления доступом каталога. Соединитель должен иметь разрешения на запись, чтобы иметь возможность экспортировать и разрешения на чтение, чтобы иметь возможность импорта. Конфигурация разрешений выполняется в интерфейсе управления целевого каталога.
Схема каталога указывает классы объектов и атрибуты, представляющие сущность реального мира в каталоге. Соединитель поддерживает представление пользователя со структурным классом объектов, например 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 обновлял объект на сервере каталогов, когда пользователь выходит из области возможности использовать приложение. Это поведение зависит от приложения, которое будет использовать сервер каталогов, так как многие каталоги, такие как OpenLDAP, могут не иметь способа активации учетной записи пользователя по умолчанию.
Установка и настройка агента управления ресурсами Microsoft Entra Connect
- Войдите на портал Azure.
- Перейдите к корпоративным приложениям и выберите «Новое приложение».
- Найдите приложение локального приложения ECMA
, присвойте приложению имя и выберите Создать , чтобы добавить его в клиент. - В меню перейдите на страницу управления конфигурацией вашего приложения.
- Выберите Начало работы.
- На странице настройки измените режим на Автоматический.
- В разделе локального подключениявыберите Скачать и установитьи выберите Принять условия & скачивания.
- Выйдите из портала и запустите установщик агента развертывания, примите условия использования и выберите Установить.
- Дождитесь мастера настройки агента подготовки Microsoft Entra, а затем выберите Далее.
- На шаге выбора расширения
выберите подготовки локальных приложений, а затем нажмите кнопку Далее . - Агент подготовки использует веб-браузер операционной системы для отображения всплывающего окна, где вы можете пройти аутентификацию в Microsoft Entra ID и, возможно, также в системе проверки удостоверений вашей организации. Если вы используете Internet Explorer в качестве браузера в Windows Server, вам может потребоваться добавить веб-сайты Майкрософт в список надежных сайтов браузера, чтобы разрешить JavaScript работать правильно.
- Укажите учетные данные администратора Microsoft Entra при появлении запроса на авторизацию. Пользователь должен иметь, как минимум, роль администратора удостоверений гибридной инфраструктуры .
- Выберите , затем, чтобы подтвердить настройку. После успешной установки можно выбрать Выход, а также закрыть установщик пакета агента конфигурации.
Настройка локального приложения ECMA
На портале в разделе подключения на месте выберите агента, которого вы развернули, и нажмите Назначить агента(-ов).
Откройте это окно браузера, выполнив следующий шаг настройки с помощью мастера настройки.
Настройте сертификат хоста соединителя ECMA в Microsoft Entra
- На сервере Windows Server, где установлен агент подготовки, щелкните правой кнопкой мыши мастер настройки Microsoft ECMA2Host в меню "Пуск" и запустите от имени администратора. Запуск от имени администратора Windows необходим для создания необходимых журналов событий Windows.
- После запуска конфигурации хоста соединителя ECMA, если мастер запускается впервые, он предложит вам создать сертификат. Оставьте порт по умолчанию 8585 и выберите Создать сертификат для создания сертификата. Автоматически созданный сертификат самозаверяется как часть доверенного корневого каталога. SAN соответствует имени узла.
- Выберите Сохранить.
Заметка
Если вы решили создать новый сертификат, запишите дату окончания срока действия сертификата, чтобы убедиться, что вы планируете вернуться в мастер конфигурации и повторно создать сертификат до истечения срока его действия.
Настройка универсального соединителя LDAP
В зависимости от выбранного варианта некоторые экраны мастера могут быть недоступны, и информация может немного отличаться. Используйте следующие сведения, чтобы помочь вам в конфигурации.
Создайте секретный маркер, который будет использоваться для проверки подлинности идентификатора Microsoft Entra в соединителе. Минимальная длина - 12 символов, и они должны быть уникальными для каждого приложения. Если у вас еще нет генератора секретов, можно использовать команду PowerShell, например следующую, чтобы создать пример случайной строки.
-join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
Если вы еще этого не сделали, запустите мастер настройки Microsoft ECMA2Host из меню "Пуск".
На странице свойств
заполните поля величинами, указанными в таблице, следующей за изображением, и выберите Далее .Свойство Ценность Имя Имя, выбранное для соединителя, которое должно быть уникальным для всех соединителей в вашей среде. Например, LDAP
.Автосинхронный таймер (минуты) 120 Секретный токен Введите ваш секретный токен здесь. Не менее 12 символов. DLL расширения Для универсального соединителя LDAP выберите Microsoft.IAM.Connector.GenericLdap.dll. На странице подключения
вы настроите способ взаимодействия узла соединителя ECMA с сервером каталогов и задайте некоторые параметры конфигурации. Заполните поля значениями, указанными в таблице, следующей за изображением, и нажмите кнопку Далее. Когда вы выбираете Next, соединитель запрашивает конфигурацию у сервера каталогов.
Свойство Описание Хозяин Имя узла, на котором расположен сервер LDAP. В этом примере используется APP3
в качестве примера имени узла.Порт Номер TCP-порта. Если сервер каталогов настроен для LDAP через SSL, используйте порт 636. Для Start TLS
или при использовании безопасности на уровне сети используйте порт 389.Таймаут подключения 180 Связывание Это свойство указывает, как соединитель проходит проверку подлинности на сервере каталогов. Если используется параметр Basic
или параметрыSSL
иTLS
и сертификат клиента не настроен, соединитель отправляет простую привязку LDAP для проверки подлинности с выдающимся именем и паролем. Если задана настройкаSSL
илиTLS
и указан сертификат клиента, соединитель отправляет запрос на привязку LDAP SASLEXTERNAL
для аутентификации с помощью сертификата клиента.Имя пользователя Как соединитель ECMA проходит проверку подлинности на сервере каталогов. В этом примере cn=admin,dc=contoso,dc=lab
Пароль Пароль пользователя, с помощью которого соединитель ECMA аутентифицируется на сервере каталогов. Область или домен Этот параметр требуется только в том случае, если вы выбрали Kerberos
в качестве параметра привязки, чтобы предоставить область или домен пользователя.Сертификат Параметры в этом разделе используются только при выборе SSL
илиTLS
в качестве параметра привязки.Псевдонимы атрибутов Текстовое поле псевдонимов атрибутов используется для атрибутов, определенных в схеме с синтаксисом RFC4522. Эти атрибуты не могут быть обнаружены во время обнаружения схемы, и соединителю требуется помощь в определении этих атрибутов. Например, если сервер каталогов не публикует userCertificate;binary
и вы хотите подготовить этот атрибут, в поле псевдонимов атрибутов необходимо ввести следующую строку, чтобы правильно определить атрибут userCertificate как двоичный атрибут:userCertificate;binary
. Если вам не требуются специальные атрибуты, отсутствующие в схеме, можете оставить это поле пустым.Включение операционных атрибутов Установите флажок Include operational attributes in schema
, чтобы также включить атрибуты, созданные сервером каталогов. К ним относятся такие атрибуты, как когда объект был создан и время последнего обновления.Включение расширяемых атрибутов Установите флажок Include extensible attributes in schema
, если в сервере каталогов используются расширяемые объекты (RFC4512/4.3). Включение этого параметра позволяет использовать каждый атрибут для всех объектов. Выбор этого параметра делает схему очень большой, поэтому если подключенный каталог не использует эту функцию, рекомендация заключается в том, чтобы сохранить параметр без выбора.Разрешить выбор привязки вручную Оставьте без отметки. Заметка
Если возникла проблема с попыткой подключиться и не удается перейти на страницу глобальной, убедитесь, что учетная запись службы на сервере каталогов включена.
На странице Global
вы настроите имя журнала изменений для дельта изменений, если это необходимо, а также дополнительные функции LDAP. Страница предварительно заполняется сведениями, предоставленными сервером LDAP. Проверьте показанные значения, а затем нажмите кнопку Далее. Свойство Описание Поддерживаемые механизмы SASL В верхнем разделе показаны сведения, предоставляемые самим сервером, включая список механизмов SASL. Сведения о сертификате сервера Если указан SSL
илиTLS
, мастер отображает сертификат, возвращенный сервером каталогов. Убедитесь, что издатель, тема и отпечаток предназначены для правильного сервера каталогов.Найденные обязательные функции Соединитель также проверяет наличие обязательных элементов управления в корневом DSE. Если эти элементы управления не указаны, появится предупреждение. Некоторые каталоги LDAP не перечисляют все функции в корневой DSE, и возможно, что соединитель работает без проблем, даже если предупреждение присутствует. Поддерживаемые элементы управления Контролируемые флажки управляют поведением определённых операций. Разностный импорт DN журнала изменений — это контекст именования, используемый журналом разностных изменений, например cn=changelog. Это значение должно быть указано, чтобы можно было выполнять разностный импорт. Если не требуется реализовать разностный импорт, это поле может быть пустым. Атрибут пароля Если сервер каталогов поддерживает другой атрибут пароля или хэширование паролей, можно указать назначение для изменений паролей. Имена секций В списке дополнительных разделов можно добавить дополнительные пространства имен, которые не обнаружены автоматически. Например, этот параметр можно использовать, если несколько серверов составляют логический кластер, который следует импортировать одновременно. Так же, как Active Directory может иметь несколько доменов в одном лесу, но все домены совместно используют одну схему, то же самое можно имитировать, введя дополнительные пространства имен в этом поле. Каждое пространство имен может импортироваться с разных серверов и дополнительно настроено на странице Настройка секций и иерархий. На странице Секции сохраните значение по умолчанию и нажмите кнопку Далее.
На странице Профили запуска убедитесь, что установлены оба флажка: "Экспорт " и "Полный импорт ". Затем выберите Далее.
На странице Экспорта оставьте значения по умолчанию неизменными и нажмите кнопку Далее.
На странице полного импорта оставьте значения по умолчанию неизменными и выберите Далее.
На странице DeltaImport, если она присутствует, оставьте значения по умолчанию неизменными и нажмите кнопку Далее.
На странице типов объектов
заполните поля и нажмите кнопку Далее .Свойство Описание Целевой объект Это значение является структурным классом объектов пользователя на сервере каталогов LDAP. Используйте inetOrgPerson
и не указывайте вспомогательный класс объектов в этом поле. Если для сервера каталогов требуются вспомогательные классы объектов, они будут настроены с помощью сопоставлений атрибутов на портале Azure.Якорь Значения этого атрибута должны быть уникальными для каждого объекта в целевом каталоге. Служба подготовки Microsoft Entra после начального цикла обращается к узлу соединителя ECMA, используя этот атрибут. Обычно используется различающееся имя, которое может быть выбрано как -dn-
. Многозначные атрибуты, такие как атрибутuid
в схеме OpenLDAP, нельзя использовать в качестве привязок.Атрибут запроса Этот атрибут должен совпадать с Anchor. DN Различающееся имя целевого объекта. Сохраняйте -dn-
.Автоматическое создание непроверенный Хост ECMA обнаруживает атрибуты, поддерживаемые целевым каталогом. Вы можете выбрать, какие из этих атрибутов вы хотите предоставить идентификатору Microsoft Entra. Затем эти атрибуты можно настроить на портале Azure для развертывания. На странице Выбор атрибутов добавьте все атрибуты в раскрывающемся списке по одному, которые требуются в качестве обязательных атрибутов или которые вы хотите настроить из Microsoft Entra ID.
Раскрывающийся список атрибутов показывает любой атрибут, обнаруженный в целевом каталоге, который не был выбран на предыдущем использовании мастера настройки на странице Выбор атрибутов.Убедитесь, что флажок
Treat as single value
снят для атрибутаobjectClass
, и еслиuserPassword
задано, оно либо невозможно выбрать, либо проверено для атрибутаuserPassword
.Настройте видимость для следующих атрибутов.
Атрибут Рассматривать как одно значение _distinguishedName -dn- экспорт_пароль cn Y gidNumber домашний каталог почта Y objectClass sn Y uid Y uidNumber пароль пользователя Y После добавления всех соответствующих атрибутов нажмите кнопку Далее.
На странице удаления вы можете указать, следует ли идентификатору Microsoft Entra ID удалить пользователей из каталога, когда они выходят за пределы области применения приложения. Если это так, в разделе Отключить потоквыберите Удалитьи в разделе "Удалить поток"выберите Удалить. Если выбрана
Set attribute value
, атрибуты, выбранные на предыдущей странице, не будут доступны для выбора на странице деактивации.
Заметка
Если вы используете атрибут , установите значение. Помните, что разрешены только логические значения.
- Выберите Готово.
Убедитесь, что служба ECMA2Host запущена и может читаться с сервера каталогов
Выполните следующие действия, чтобы убедиться, что узел соединителя запущен и обнаружил существующих пользователей с сервера каталогов.
- На сервере, на котором запущен узел соединителя Microsoft Entra ECMA, выберите Пуск.
- При необходимости выберите команду выполнить, а затем введите services.msc.
- В списке служб убедитесь, что Microsoft ECMA2Host присутствует и работает. Если он не запущен, выберите Запустить.
- Если вы недавно запустили службу и имеете много объектов пользователей на сервере каталогов, подождите несколько минут, пока соединитель установит соединение с сервером каталогов.
- На сервере, на котором запущен хост соединителя Microsoft Entra ECMA, запустите PowerShell.
- Перейдите в папку, в которой был установлен хост ECMA, например
C:\Program Files\Microsoft ECMA2Host
. - Перейдите к подкаталогу
Troubleshooting
. - Запустите скрипт
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: ************
- Если скрипт отображает сообщение об ошибке или предупреждении, убедитесь, что служба запущена, а имя соединителя и секретный маркер соответствуют этим значениям, настроенным в мастере настройки.
- Если скрипт отображает вывод
False
, то соединитель не видел никаких записей в исходном сервере каталогов для существующих пользователей. Если это новая установка сервера каталогов, то это поведение должно быть ожидаемым, и вы можете продолжить работу в следующем разделе. - Однако если сервер каталогов уже содержит одного или нескольких пользователей, но скрипт выдал
False
, это состояние указывает, что соединитель не смог получить данные с сервера каталогов. Если вы попытаетесь предоставить доступ, идентификатор Microsoft Entra может неправильно сопоставить пользователей в этом исходном каталоге с пользователями в идентификаторе Microsoft Entra. Подождите несколько минут, пока узел соединителя завершит чтение объектов с существующего сервера каталогов, а затем повторно запустите скрипт. Если выходные данные по-прежнемуFalse
, проверьте конфигурацию соединителя и убедитесь, что разрешения на сервере каталогов позволяют соединителю читать существующих пользователей.
Протестируйте подключение из Microsoft Entra ID к узлу соединителя
Вернитесь в окно веб-браузера, в котором вы настроили подготовку приложений на портале.
Заметка
Если время ожидания окна истекло, необходимо повторно выбрать агент.
- Войдите на портал Azure.
- Перейдите к корпоративным приложениям и локальному приложению ECMA.
- Выберите параметры.
- Если появится Начать, измените режим на Автоматический, в разделе Подключение на месте выберите агента, которого вы только что развернули, и выберите Назначить агента, и подождите 10 минут. В противном случае перейдите к редактированию .
В разделе Учетные данные администратора введите следующий URL-адрес. Замените часть
connectorName
именем соединителя на узле ECMA, напримерLDAP
. Если вы предоставили сертификат из центра сертификации для узла ECMA, заменитеlocalhost
именем узла сервера, на котором установлен узел ECMA.Свойство Ценность URL-адрес арендатора https://localhost:8585/ecma2host_connectorName/scim Введите значение токена секрета
, определенное при создании соединителя. Заметка
Если вы только что назначили агента для приложения, подождите 10 минут, пока регистрация завершится. Тест подключения не будет работать до завершения регистрации. Принудительное завершение регистрации агента путем перезапуска агента подготовки на сервере может ускорить процесс регистрации. Перейдите на сервер, найдите в строке поиска Windows службы , определите службу Microsoft Entra Connect Provisioning Agent, щелкните по ней правой кнопкой мыши и перезапустите.
Выберите Проверить подключениеи подождите одну минуту.
После успешного тестирования подключения и система указывает, что предоставленные учетные данные разрешены для включения конфигурации, выберите Сохранить.
Расширение схемы Microsoft Entra
Если для сервера каталогов требуются дополнительные атрибуты, которые не являются частью схемы Microsoft Entra по умолчанию для пользователей, то при подготовке можно настроить предоставление значений этих атрибутов из константы, из выражения, преобразованного из других атрибутов Microsoft Entra, или путем расширения схемы Microsoft Entra.
Если серверу каталогов требуется, чтобы пользователи имели атрибут, например uidNumber
для схемы POSIX OpenLDAP, и этот атрибут еще не является частью схемы Microsoft Entra для пользователя, и должен быть уникальным для каждого пользователя, то необходимо либо создать этот атрибут из других атрибутов пользователя с помощью выражения , или используйте функцию расширения каталога , чтобы добавить этот атрибут в качестве расширения.
Если ваши пользователи происходят из Служб доменов Active Directory и имеют атрибут в этом каталоге, вы можете использовать Microsoft Entra Connect или облачную синхронизацию с помощью Microsoft Entra Connect. Это настроит атрибут для синхронизации из Служб доменов Active Directory с идентификатором Microsoft Entra ID, что сделает его доступным для предоставления другим системам.
Если пользователи возникают в идентификаторе Microsoft Entra, необходимо определить расширение каталога для каждого нового атрибута для хранения на пользователя. Затем обновите пользователей Microsoft Entra, которые планируется подготовить, чтобы задать каждому пользователю значение этих атрибутов.
Настройка сопоставления атрибутов
В этом разделе описано, как настроить сопоставление атрибутов пользователя Microsoft Entra и атрибутов, выбранных ранее в мастере настройки узла ECMA. Позже, когда соединитель создает объект на сервере каталогов, атрибуты пользователя Microsoft Entra отправляются через соединитель на сервер каталогов, чтобы быть частью этого нового объекта.
В центре администрирования Microsoft Entra в разделе Корпоративные приложениявыберите локальное приложение ECMA, а затем выберите страницу подготовки.
Выберите Изменить настройку.
Разверните сопоставления и выберите Подготовьте пользователей Microsoft Entra. Если это первый раз, когда вы настроили сопоставления атрибутов для этого приложения, в качестве заполнителя присутствует только одно сопоставление.
Чтобы убедиться, что схема сервера каталогов доступна в идентификаторе Microsoft Entra, установите флажок Показать дополнительные параметры и выберите Список атрибутов редактирования для ScimOnPremises. Убедитесь, что перечислены все атрибуты, выбранные в мастере настройки. Если нет, подождите несколько минут, пока схема не обновится, затем выберите Сопоставление атрибутов в строке навигации, после чего выберите Изменить список атрибутов для ScimOnPremises, чтобы снова перезагрузить страницу. Как только вы увидите перечисленные атрибуты, выйдите с этой страницы, чтобы вернуться в список сопоставлений.
Каждый пользователь в каталоге должен иметь уникальное различающееся имя. Можно указать, как соединитель должен создавать различающееся имя с помощью сопоставления атрибутов. Выберите добавить новое сопоставление. Используйте следующие значения, чтобы создать сопоставление, изменяя различающиеся имена в выражении, чтобы соответствовать значению подразделения или другого контейнера в целевом каталоге.
- Тип сопоставления: выражение
- Выражение:
Join("", "CN=", Word([userPrincipalName], 1, "@"), ",DC=Contoso,DC=lab")
- Целевой атрибут:
urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:-dn-
- Применение этого сопоставления: только во время создания объекта
Если серверу каталогов требуется несколько значений класса структурных объектов или вспомогательных значений класса объектов, которые должны быть предоставлены в атрибуте
objectClass
, а затем добавьте сопоставление с этим атрибутом. Чтобы добавить сопоставление дляobjectClass
, выберите Добавить новое сопоставление. Используйте следующие значения, чтобы создать сопоставление, изменив имена классов объектов в выражении, чтобы они соответствовали схеме целевого каталога.- Тип сопоставления: выражение
- Выражение: при подготовке схемы POSIX:
Split("inetOrgPerson,posixAccount,shadowAccount",",")
- Целевой атрибут:
urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:objectClass
- Применение этого сопоставления: только во время создания объекта
Для каждого сопоставления в следующей таблице для сервера каталогов выберите Добавить новое сопоставлениеи укажите исходные и целевые атрибуты. Если вы подготавливаете существующий каталог с существующими пользователями, необходимо изменить сопоставление атрибута, который обычно задает объекты Match с помощью этого атрибута для этого атрибута. Узнайте больше о сопоставлении атрибутов здесь.
Для OpenLDAP со схемой POSIX необходимо также указать
gidNumber
,homeDirectory
,uid
и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
Выражение 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
Добавьте сопоставление для
urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:userPassword
, чтобы установить начальный случайный пароль для пользователя.Выберите Сохранить.
Убедитесь, что у пользователей, которым необходимо предоставить доступ к каталогу, есть необходимые атрибуты.
Если в каталоге 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 ID, можно использовать командлеты Microsoft Graph PowerShell для автоматизации проверки наличия у пользователей всех необходимых атрибутов.
Например, предположим, что предоставление требует от пользователей трех атрибутов DisplayName
,surname
и extension_656b1c479a814b1789844e76b2f459c3_MyNewProperty
. Этот третий атрибут используется для хранения uidNumber
. Можно использовать командлет Get-MgUser
для получения каждого пользователя и проверки наличия необходимых атрибутов. Обратите внимание, что командлет Graph версии 1.0 Get-MgUser
по умолчанию не возвращает ни одного из атрибутов расширения каталога пользователя, если только атрибуты не указаны в запросе в качестве одного из возвращаемых свойств.
В этом разделе показано, как взаимодействовать с Microsoft Entra ID с помощью командлетов Microsoft Graph PowerShell.
При первом использовании этих командлетов в вашей организации для этого сценария необходимо иметь роль глобального администратора, чтобы разрешить использование Microsoft Graph PowerShell в вашей компании. Последующие взаимодействия могут использовать роль с более низким уровнем привилегий, например:
- Администратор пользователя, если ожидается создание новых пользователей.
- Администратор приложений или администратор управления удостоверениями, если вы просто управляете назначениями ролей приложения.
Откройте PowerShell.
Если у вас еще нет модулей Microsoft Graph PowerShell, уже установлены, установите модуль
Microsoft.Graph.Users
и другие с помощью этой команды:Install-Module Microsoft.Graph
Если у вас уже установлены модули, убедитесь, что вы используете последнюю версию:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
Подключитесь к идентификатору Microsoft Entra:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.Read.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
Создайте список пользователей и атрибуты для проверки.
$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
Определите, какие пользователи в этом каталоге входят в число пользователей с аутентификацией Linux. Этот выбор зависит от конфигурации системы Linux. Для некоторых конфигураций любой пользователь, имеющийся в каталоге LDAP, является допустимым пользователем. Другим конфигурациям может потребоваться, чтобы пользователь мог иметь определенный атрибут или быть членом группы в этом каталоге.
Выполните команду, которая извлекает это подмножество пользователей из каталога LDAP в CSV-файл. Убедитесь, что выходные данные содержат атрибуты пользователей, которые используются для сопоставления с идентификатором Microsoft Entra. Примерами этих атрибутов являются идентификатор сотрудника, имя учетной записи или
uid
и адрес электронной почты.При необходимости передайте CSV-файл, содержащий список пользователей в систему с установленными командлет ами Microsoft Graph PowerShell.
Теперь, когда у вас есть список всех пользователей, полученных из каталога, вы сопоставите этих пользователей с пользователями в Microsoft Entra ID. Прежде чем продолжить, просмотрите сведения о сопоставления пользователей в исходных и целевых системах.
Получение идентификаторов пользователей в идентификаторе Microsoft Entra
В этом разделе показано, как взаимодействовать с Microsoft Entra ID с помощью командлетов Microsoft Graph PowerShell.
При первом использовании этих командлетов в вашей организации для этого сценария необходимо быть в роли глобального администратора, чтобы Microsoft Graph PowerShell можно было использовать в вашем клиенте. Последующие взаимодействия могут использовать роль с более низким уровнем привилегий, например:
- Администратор пользователя, если ожидается создание новых пользователей.
- Администратор приложений или администратор управления удостоверениями , если вы просто управляете назначениями ролей приложения.
Откройте PowerShell.
Если у вас еще нет установленных модулей Microsoft Graph PowerShell, установите их, включая модуль
Microsoft.Graph.Users
и другие, с помощью этой команды:Install-Module Microsoft.Graph
Если у вас уже установлены модули, убедитесь, что вы используете последнюю версию:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
Подключитесь к идентификатору Microsoft Entra:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
Если вы впервые использовали эту команду, может потребоваться согласие на предоставление этим разрешениям инструментам командной строки Microsoft Graph.
Прочитайте в сеанс 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
Выберите столбец файла users.csv, который будет соответствовать атрибуту пользователя в идентификаторе Microsoft Entra.
Если вы используете службы SAP Cloud Identity Services, то сопоставление по умолчанию — это атрибут SAP SCIM
userName
с атрибутом идентификатора Microsoft Entra IDuserPrincipalName
:$db_match_column_name = "userName" $azuread_match_attr_name = "userPrincipalName"
В другом примере, если вы используете базу данных или каталог, у вас могут быть пользователи в базе данных, где значение в столбце с именем
EMail
совпадает со значением атрибута Microsoft EntrauserPrincipalName
:$db_match_column_name = "EMail" $azuread_match_attr_name = "userPrincipalName"
Получите идентификаторы этих пользователей в 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 } }
Просмотрите результаты предыдущих запросов. Узнайте, не удалось ли найти пользователей из 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."
По завершении скрипта будет указано сообщение об ошибке, если какие-либо записи из источника данных не были расположены в идентификаторе Microsoft Entra. Если не все записи пользователей из хранилища данных приложения можно сопоставить с пользователями в Microsoft Entra ID, вам нужно будет выяснить, какие записи не совпадают и почему.
Например, адрес электронной почты пользователя и userPrincipalName могут быть изменены в идентификаторе Microsoft Entra, не обновляя соответствующее свойство
mail
в источнике данных приложения. Или пользователь, возможно, уже покинул организацию, но по-прежнему находится в источнике данных приложения. Или может существовать учетная запись поставщика или суперадминистратора в источнике данных приложения, которая не соответствует ни одному конкретному лицу в Microsoft Entra ID.Если пользователи не могли находиться в идентификаторе Microsoft Entra ID или не были активными и не смогли войти, но вы хотите проверить доступ или обновить их атрибуты в SAP Cloud Identity Services, базе данных или каталоге, вам потребуется обновить приложение, соответствующее правило или обновить или создать пользователей Microsoft Entra для них. Для получения дополнительной информации о том, какие изменения следует внести, см. раздел о управлении сопоставлениями и учетными записями пользователей в приложениях, которые не соответствовали пользователям в Microsoft Entra ID.
Если выбрать вариант создания пользователей в идентификаторе Microsoft Entra, вы можете создать пользователей в массовом режиме с помощью одного из следующих вариантов:
- CSV-файл, как описано в разделе Массовое создание пользователей в Центре администрирования Microsoft Entra
- Командлет New-MgUser
Убедитесь, что эти новые пользователи заполнены атрибутами, необходимыми для идентификатора Microsoft Entra, чтобы позже сопоставить их с существующими пользователями в приложении, и атрибуты, необходимые идентификатору Microsoft Entra, включая
userPrincipalName
,mailNickname
и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 } }
После добавления отсутствующих пользователей в идентификатор 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 ID
Теперь, когда узел соединителя Microsoft Entra ECMA взаимодействует с Microsoft Entra ID, а сопоставление атрибутов настроено, можно перейти к настройке того, кто будет включен в область обеспечения.
Важный
Если вы вошли с помощью роли администратора гибридных удостоверений, необходимо выйти и войти с учетной записью, которая имеет по крайней мере роль администратора приложений для этого раздела. Роль администратора гибридных идентификаторов не имеет разрешений назначать приложениям пользователей.
Если в каталоге LDAP есть существующие пользователи, необходимо создать назначения ролей приложения для существующих пользователей. Дополнительные сведения о том, как создавать назначения ролей приложения в массовом режиме с помощью New-MgServicePrincipalAppRoleAssignedTo
, см. в управлении существующими пользователями приложения видентификатора Microsoft Entra.
Если вы еще не хотите обновить существующих пользователей в каталоге LDAP, выберите тестового пользователя из идентификатора Microsoft Entra, который имеет необходимые атрибуты и будет подготовлен к серверу каталогов.
- Убедитесь, что пользователь выберет все свойства, которые будут сопоставлены с необходимыми атрибутами схемы сервера каталогов.
- На портале Azure выберите корпоративные приложения.
- Выберите локальное приложение ECMA.
- Слева в разделе Управлениевыберите "Пользователи и группы".
- Выберите Добавить пользователя или группу.
- В разделе Пользователивыберите Ничего не выбрано.
- Выберите пользователя справа и нажмите кнопку Выбрать.
- Теперь выберите Назначить.
Тестирование настройки
Теперь, когда атрибуты сопоставлены и назначены начальным пользователем, можно протестировать подготовку по запросу с одним из пользователей.
На сервере, на котором запущен Microsoft Entra ECMA Connector Host, выберите Запуск.
Введите запустите и введите services.msc в поле.
В списке служб убедитесь, что выполняются служба агент подготовки Microsoft Entra Connect и служба Microsoft ECMA2Host. Если нет, выберите Пуск.
На портале Azure выберите Корпоративные приложения.
Выберите локальное приложение ECMA.
Слева выберите подготовки.
Выберите Предоставление по запросу.
Найдите одного из тестовых пользователей и выберите Provision.
Через несколько секунд появится сообщение успешно созданного пользователя в целевой системе со списком атрибутов пользователя. Если вместо этого появится ошибка, ознакомьтесь с устранением ошибок настройки.
Начало обеспечения пользователей ресурсами
После успешного тестирования предоставления по запросу добавьте оставшихся пользователей. Дополнительные сведения о том, как массово создавать назначения ролей приложения с помощью New-MgServicePrincipalAppRoleAssignedTo
, см. в по управлению существующими пользователями приложения в идентификаторе Microsoft Entra.
- На портале Azure выберите приложение.
- Слева в разделе Управлениевыберите "Пользователи и группы".
- Убедитесь, что всем пользователям назначена роль приложения.
- Вернитесь на страницу конфигурации настройки.
- Убедитесь, что для области заданы только назначенные пользователи и группы, установите статус подготовки в Onи выберите Сохранить.
- Подождите несколько минут, пока подготовка начнется. Может потребоваться до 40 минут. После завершения процесса настройки, как описано в следующем разделе,
Устранение неполадок при обеспечении
Если отображается ошибка, выберите Просмотреть журналы предоставления ресурсов. Найдите в журнале строку, в которой статус сбой, и выберите эту строку.
Если сообщение об ошибке "Не удалось создать пользователя", то проверьте атрибуты, показанные в сравнении с требованиями схемы каталога.
Для получения дополнительной информации перейдите на вкладку "Устранение неполадок & Рекомендации".
Если сообщение об устранении неполадок содержит значение objectClass invalid per syntax
, убедитесь, что сопоставление атрибута подготовки с атрибутом objectClass
включает только имена классов объектов, распознаваемых сервером каталогов.
Для исправления других ошибок см. устранение неполадок при предоставлении локальных приложений.
Если вы хотите приостановить подготовку в этом приложении, на странице конфигурации подготовки можно изменить состояние подготовки на Offи выбрать Сохранить. Это действие останавливает работу службы предоставления и предотвращает её запуск в будущем.
Убедитесь, что пользователи успешно подготовлены
После ожидания проверьте сервер каталогов, чтобы убедиться, что пользователи подготовлены. Запрос, выполняемый на сервере каталогов, будет зависеть от того, какие команды предоставляет сервер каталогов.
В следующих инструкциях показано, как проверить OpenLDAP в Linux.
- Откройте окно терминала с командной оболочкой в системе с помощью OpenLDAP.
- Введите команду
ldapsearch -D "cn=admin,dc=contoso,dc=lab" -W -s sub -b dc=contoso,dc=lab -LLL (objectclass=inetOrgPerson)
- Убедитесь, что результирующий LDIF включает пользователей, созданных через Microsoft Entra ID.
Дальнейшие действия
- Дополнительные сведения о том, что предоставляет служба подготовки, как она работает и часто задаваемые к ней вопросы, см. в статье Автоматизация подготовки пользователей и отмена подготовки приложений SaaS с помощью идентификатора Microsoft Entra ID и архитектуры подготовки локальных приложений .