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


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

В этой статье рассматривается настройка управления из Microsoft Entra ID в SAP Cloud Identity Services. Цель — настроить Microsoft Entra ID для автоматического предоставления и удаления пользователей в SAP Cloud Identity Services, чтобы эти пользователи могли аутентифицироваться в облачных службах SAP и иметь доступ к другим сервисам SAP. Облачные службы удостоверений SAP поддерживают предоставление из своего локального каталога удостоверений в другие приложения SAP в качестве целевых систем.

Примечание.

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

Предварительные условия

В сценарии, описанном в этой статье, предполагается, что у вас уже есть следующие условия:

Примечание.

Эта интеграция также доступна для использования из облачной среды Microsoft Entra для государственных организаций США. Это приложение можно найти в коллекции облачных приложений Microsoft Entra для государственных организаций США и настроить его так же, как и в общедоступной облачной среде.

Если пользователей в Microsoft Entra ID у вас еще нет, начните с статьи план развертывания Microsoft Entra для подготовки пользователей с использованием исходных и целевых приложений SAP. В этой статье показано, как подключить Microsoft Entra к авторитетным источникам для списка работников в организации, таких как SAP SuccessFactors. В нем также показано, как использовать Microsoft Entra для настройки удостоверений для этих работников, чтобы они могли войти в одно или несколько приложений SAP, таких как SAP ECC или SAP S/4HANA.

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

Настройка облачных сервисов управления идентификацией SAP для провиженинга

В этой статье вы добавите систему администрирования в sap Cloud Identity Services и настройте Microsoft Entra.

Диаграмма архитектуры SSO и модели подготовки между приложениями SAP, Службами облачной идентификации SAP и Microsoft Entra.

  1. Войдите в административную консоль SAP Cloud Identity Services https://<tenantID>.accounts.ondemand.com/admin, или https://<tenantID>.trial-accounts.ondemand.com/admin если это пробная версия. Перейдите к пользователи и авторизации > администраторы.

    Снимок экрана: консоль администрирования служб облачных удостоверений SAP.

  2. Нажмите кнопку +Добавить на левой панели, чтобы добавить нового администратора в список. Выберите "Добавить систему " и введите имя системы.

    Примечание.

    Удостоверение администратора в службах SAP Cloud Identity Services должно иметь тип System. Пользователь администратора не может пройти проверку подлинности в API SAP SCIM при подготовке. Облачные службы удостоверений SAP не позволяют изменять имя системы после его создания.

  3. В разделе "Настройка авторизации" включите переключатель для управления пользователями. Затем нажмите кнопку "Сохранить", чтобы создать систему.

    Снимок экрана функции SCIM в службах облачных удостоверений SAP.

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

  5. Скопируйте идентификатор клиента и секрет клиента , созданные SAP. Эти значения вводятся в поля "Имя пользователя администратора" и "Пароль администратора" соответственно. Это делается на вкладке "Подготовка" приложения SAP Cloud Identity Services, которое вы настроили в следующем разделе.

  6. Облачные службы удостоверений SAP могут иметь сопоставления с одним или несколькими приложениями SAP в качестве целевых систем. Проверьте, есть ли какие-либо атрибуты у пользователей, которые эти приложения SAP требуют для предоставления через службы облачной идентификации SAP. В этой статье предполагается, что облачные службы идентификации SAP и целевые системы, в которые отправляются данные, требуют двух атрибутов: userName и emails[type eq "work"].value. Если целевые системы SAP требуют других атрибутов, и они не являются частью пользовательской схемы идентификатора Microsoft Entra, может потребоваться настроить атрибуты расширения синхронизации.

Перед настройкой Microsoft Entra ID для автоматической подготовки пользователей в SAP Cloud Identity Services необходимо добавить SAP Cloud Identity Services из галереи приложений Microsoft Entra в список корпоративных приложений арендатора. Этот шаг можно выполнить в Центре администрирования Microsoft Entra или через API Graph.

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

Чтобы добавить sap Cloud Identity Services из коллекции приложений Microsoft Entra с помощью Центра администрирования Microsoft Entra, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
  2. Перейдите к Entra ID>приложениям Enterprise>Новая заявка.
  3. Чтобы добавить приложение из коллекции, введите sap Cloud Identity Services в поле поиска.
  4. Выберите sap Cloud Identity Services на панели результатов и добавьте это приложение. Подождите несколько секунд, пока приложение не будет добавлено в ваш клиент.

Настройка автоматического предоставления пользователей в SAP Cloud Identity Services

В этом разделе представлены шаги по настройке службы предоставления Microsoft Entra для создания, обновления и отключения пользователей в SAP Cloud Identity Services на основе назначений пользователей приложениям в Microsoft Entra ID.

Чтобы настроить автоматическую подготовку пользователей для служб SAP Cloud Identity в Microsoft Entra ID:

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.

  2. Перейдите к приложениям Entra ID>Enterprise

    Снимок экрана панели

  3. В списке приложений выберите приложение , sap Cloud Identity Services.

    Снимок экрана: ссылка на облачные службы удостоверений SAP в списке приложений.

  4. Перейдите на вкладку "Свойства ".

  5. Убедитесь, что параметр "Требуется назначение" установлен на "Да". Если для него задано значение No, все пользователи в каталоге, включая внешние удостоверения, могут получить доступ к приложению, и вы не можете проверить доступ к приложению.

  6. Перейдите на вкладку "Подготовка ".

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

  7. Установите режим подготовки на Автоматический.

    Снимок экрана: раскрывающийся список режимов подготовки, где указан параметр

  8. В разделе «Учетные данные администратора» введите https://<tenantID>.accounts.ondemand.com/service/scim, или если это пробная версия — https://<tenantid>.trial-accounts.ondemand.com/service/scim, с указанием идентификатора арендатора в сервисах облачной идентификации SAP в поле URL-адрес арендатора. Введите значения идентификатора клиента и секрета клиента , полученные ранее в имени пользователя администратора и пароля администратора соответственно. Выберите "Проверить подключение", чтобы убедиться, что идентификатор Microsoft Entra может подключаться к облачным службам удостоверений SAP. Если подключение завершается ошибкой, убедитесь, что у учетной записи системы SAP Cloud Identity Services есть разрешения администратора, секрет по-прежнему действителен и повторите попытку.

    Снимок экрана URL-адреса арендатора и токена.

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

    Снимок экрана: сообщение электронной почты с уведомлением.

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

  11. В разделе Сопоставления выберите Предоставление пользователей Microsoft Entra ID.

    Снимок экрана сопоставлений пользователей служб облачной идентификации SAP.

  12. Просмотрите атрибуты пользователя, синхронизированные с идентификатором Microsoft Entra и SAP Cloud Identity Services, в разделе "Сопоставление атрибутов ". Если атрибуты в облачных службах удостоверений SAP не отображаются в качестве целевого объекта для сопоставления, выберите " Показать дополнительные параметры " и выберите "Изменить список атрибутов" для службы проверки подлинности удостоверений SAP Cloud Platform, чтобы изменить список поддерживаемых атрибутов. Добавьте атрибуты клиента SAP Cloud Identity Services.

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

  14. "Убедитесь, что существует сопоставление атрибутов для IsSoftDeleted или функция, содержащая IsSoftDeleted, сопоставленные с атрибутом приложения." Если пользователь удален из приложения, восстановимо удален в Microsoft Entra ID или заблокирован для входа, служба подготовки Microsoft Entra обновит атрибут, сопоставленный с isSoftDeleted. Если сопоставленный атрибут отсутствует, то пользователи, которые впоследствии будут отозваны из роли приложения, продолжат существовать в базе данных приложения.

  15. Добавьте любые дополнительные сопоставления, которые требуются вашим службам SAP Cloud Identity Services и целевым подчиненным системам SAP.

  16. Нажмите кнопку "Сохранить ", чтобы зафиксировать любые изменения.

    Атрибут Тип Поддерживается для фильтрации Требуется для облачных сервисов идентификации SAP
    userName Строка
    emails[type eq "work"].value Строка
    active Логический
    displayName Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager Справочные материалы
    addresses[type eq "work"].country Строка
    addresses[type eq "work"].locality Строка
    addresses[type eq "work"].postalCode Строка
    addresses[type eq "work"].region Строка
    addresses[type eq "work"].streetAddress Строка
    name.givenName Строка
    name.familyName Строка
    name.honorificPrefix Строка
    phoneNumbers[type eq "fax"].value Строка
    phoneNumbers[type eq "mobile"].value Строка
    phoneNumbers[type eq "work"].value Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:costCenter Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:division Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber Строка
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:organization Строка
    locale Строка
    timezone Строка
    userType Строка
    company Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute1 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute2 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute3 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute4 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute5 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute6 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute7 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute8 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute9 Строка
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute10 Строка
    sendMail Строка
    mailVerified Строка
  17. Чтобы настроить фильтры области, ознакомьтесь со следующими инструкциями, приведенными в статье о фильтре области.

  18. Чтобы включить службу подготовки Microsoft Entra для SAP Cloud Identity Services, измените состояние подготовки на Включено в разделе Параметры.

    Снимок экрана: активирован статус подготовки.

  19. Для значения области в разделе "Параметры " выберите "Синхронизация только назначенных пользователей и групп".

    Снимок экрана: область предоставления ресурсов.

  20. Когда вы будете готовы к подготовке, нажмите кнопку "Сохранить".

    Сохранение конфигурации подготовки устройств (скриншот).

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

Подготовка нового тестового пользователя из идентификатора Microsoft Entra в sap Cloud Identity Services

Рекомендуется, чтобы один новый тестовый пользователь Microsoft Entra был назначен службам SAP Cloud Identity Services для проверки конфигурации автоматической подготовки пользователей.

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений и администратор пользователей.
  2. Перейдите к Entra ID>пользователям.
  3. Выберите "Новый пользователь">"Создать нового пользователя".
  4. Введите имя участника-пользователя и отображаемое имя нового тестового пользователя. Имя субъекта-пользователя должно быть уникальным и не должно совпадать ни с каким текущим или предыдущим пользователем Microsoft Entra или пользователем SAP Cloud Identity Services. Выберите Обзор + создание и Создать.
  5. После создания тестового пользователя перейдите к Entra ID>приложениям для предприятия.
  6. Выберите приложение sap Cloud Identity Services.
  7. Выберите "Пользователи" и "Группы" , а затем выберите "Добавить пользователя или группу".
  8. В разделе "Пользователи и группы" выберите "Нет выбрано" и в текстовом поле введите имя участника-пользователя тестового пользователя.
  9. Выберите Выбрать, а затем Назначить.
  10. Выберите "Подготовка" и выберите "Подготовка по запросу".
  11. В текстовом поле "Выбор пользователя или группы" введите принципальное имя тестового пользователя.
  12. Выберите Обеспечение.
  13. Дождитесь завершения подготовки. При успешном выполнении отображается сообщение Modified attributes (successful).

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

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

Наконец, можно удалить тестового пользователя из идентификатора Microsoft Entra.

  1. Перейдите к Entra ID>пользователям.
  2. Выберите тестового пользователя, нажмите кнопку "Удалить" и нажмите кнопку "ОК". Это действие временно удаляет тестового пользователя из Microsoft Entra ID.

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

Убедитесь, что у существующих пользователей облачных удостоверений SAP есть необходимые атрибуты сопоставления

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

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

  1. Войдите в административную консоль SAP Cloud Identity Services https://<tenantID>.accounts.ondemand.com/admin, или https://<tenantID>.trial-accounts.ondemand.com/admin если это пробная версия.

  2. Перейдите к Пользователи и авторизации> Экспорт пользователей.

  3. Выберите все атрибуты, необходимые для сопоставления пользователей Microsoft Entra с пользователями в SAP. К этим атрибутам относятся SCIM ID, userName, emails, а также другие атрибуты, которые вы можете использовать в системах SAP в качестве идентификаторов.

  4. Выберите "Экспорт " и дождитесь скачивания CSV-файла в браузере.

  5. Откройте окно PowerShell.

  6. Введите следующий скрипт в редактор. В строке один, если вы выбрали другой соответствующий атрибут, отличный от userName, измените значение переменной sapScimUserNameField на имя атрибута SAP Cloud Identity Services. В строке два измените аргумент на имя экспортированного CSV-файла с Users-exported-from-sap.csv на имя скачанного файла.

    $sapScimUserNameField = "userName"
    $existingSapUsers = import-csv -Path ".\Users-exported-from-sap.csv" -Encoding UTF8
    $count = 0
    $warn = 0
    foreach ($u in $existingSapUsers) {
     $id = $u.id
     if (($null -eq $id) -or ($id.length -eq 0)) {
         write-error "Exported CSV file doesn't contain the id attribute of SAP Cloud Identity Services users."
         throw "id attribute not available, re-export"
         return
     }
     $count++
     $userName = $u.$sapScimUserNameField
     if (($null -eq $userName) -or ($userName.length -eq 0)) {
         write-warning "SAP Cloud Identity Services user $id doesn't have a $sapScimUserNameField attribute populated"
         $warn++
     }
    }
    write-output "$warn of $count users in SAP Cloud Identity Services did not have the $sapScimUserNameFIeld attribute populated."
    
  7. Выполните скрипт. По завершении скрипта, если у одного или нескольких пользователей не было необходимого соответствующего атрибута, просмотрите этих пользователей в экспортируемом CSV-файле или в консоли администрирования облачных служб удостоверений SAP. Если эти пользователи также присутствуют в Microsoft Entra, вам сначала нужно обновить их представление в SAP Cloud Identity Services, чтобы у них был заполнен соответствующий атрибут.

  8. После обновления атрибутов этих пользователей в службах SAP Cloud Identity Services, повторно экспортируйте пользователей из этих служб, как описано в шагах 2–5 и шагах для PowerShell в этом разделе, чтобы подтвердить, что в облачных службах идентификации SAP нет пользователей, у которых отсутствуют соответствующие атрибуты, препятствующие их созданию.

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

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

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

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

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

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

    Install-Module Microsoft.Graph
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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 имеют необходимые атрибуты

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

  • По умолчанию значение атрибута пользователя Microsoft Entra сопоставляется как с атрибутом userPrincipalName, так и с атрибутом userName службы облачных удостоверений SAP. Если адреса электронной почты пользователя отличаются от основных имен пользователей, может потребоваться изменить это соответствие.
  • Облачные службы удостоверений SAP могут игнорировать значения postalCode атрибута, если формат почтового индекса компании не соответствует стране или региону компании.
  • По умолчанию атрибут country Microsoft Entra сопоставляется с полем SAP Cloud Identity Services addresses[type eq "work"].country . Если значения атрибута country не являются двумя символами кодов стран ISO 3166, создание этих пользователей в облачных службах удостоверений SAP может завершиться ошибкой. Дополнительные сведения см. в разделе "Страны.свойства".
  • По умолчанию атрибут department Microsoft Entra сопоставляется с атрибутом SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department . Если у пользователей Microsoft Entra есть значения атрибута department , эти значения должны соответствовать тем отделам, которые уже настроены в облачных службах идентификации SAP, в противном случае создание или обновление пользователя завершится ошибкой. Дополнительные сведения см. в departments.properties. department Если значения пользователей Microsoft Entra не совпадают с значениями в среде SAP, обновите значения отделов в Microsoft Entra, обновите допустимые значения отделов в sap Cloud Identity Services или удалите сопоставление перед назначением пользователей.
  • Конечная точка SCIM облачных служб удостоверений SAP требует наличия определенных атрибутов в определенном формате. Дополнительные сведения об этих атрибутах и их конкретном формате см. здесь.

Назначение пользователей приложению SAP Cloud Identity Services в Microsoft Entra ID

Идентификатор Microsoft Entra использует концепцию, называемую назначениями, чтобы определить, какие пользователи должны получать доступ к выбранным приложениям. В контексте автоматической подготовки пользователей, если значение параметров областисинхронизация только назначенных пользователей и групп, то только пользователи и группы, которым назначена роль приложения этого приложения в идентификаторе Microsoft Entra, синхронизируются со службами SAP Cloud Identity Services. При назначении пользователя облачным службам удостоверений SAP в диалоговом окне назначения необходимо выбрать любую допустимую роль для конкретного приложения (если она доступна). Пользователи с ролью доступа по умолчанию исключаются из подготовки. В настоящее время доступна единственная роль для служб SAP Cloud Identity Services — пользователь.

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

Проверьте наличие пользователей, которые зарегистрированы в SAP Cloud Identity Services и не назначены приложению в Microsoft Entra ID

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

  1. С помощью PowerShell найдите идентификатор субъекта-службы для субъекта-службы приложения.

    Например, если корпоративное приложение называется SAP Cloud Identity Services, введите следующие команды:

    $azuread_app_name = "SAP Cloud Identity Services"
    $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'"
    $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
    
  2. Получите пользователей, которые в настоящее время имеют назначения к приложению в Microsoft Entra ID.

    Это создается на основе переменной, заданной $azuread_sp в предыдущей команде.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. Сравните список идентификаторов пользователей, уже имеющихся в облачных службах идентификации SAP и Идентификаторе Microsoft Entra, с этими пользователями, назначенными приложению в идентификаторе Microsoft Entra. Этот скрипт основан на переменной, заданной $azuread_match_id_list в предыдущих разделах:

    $azuread_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_not_in_role_list += $id }
    }
    $azuread_not_in_role_count = $azuread_not_in_role_list.Count
    Write-Output "$azuread_not_in_role_count users in the application's data store aren't assigned to the application roles."
    

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

  4. Выберите User роль основного субъекта службы приложения.

    $azuread_app_role_name = "User"
    $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq "User"}).Id
    if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
    
  5. Создайте назначения ролей для приложения для пользователей, которые уже присутствуют в SAP Cloud Identity Services и Microsoft Entra, и в настоящее время не имеют назначений ролей для приложения.

    foreach ($u in $azuread_not_in_role_list) {
       $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id
    }
    
  6. Подождите одну минуту, пока изменения будут распространяться в идентификаторе Microsoft Entra.

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

Назначение оставшихся пользователей и мониторинг начальной синхронизации

После завершения тестирования пользователь успешно оформлен в службы SAP Cloud Identity Services, а существующие пользователи служб облачной идентификации SAP назначаются роли приложения. Вы можете назначить дополнительных авторизованных пользователей приложению SAP Cloud Identity Services, следуя одной из инструкций ниже.

Когда пользователи назначены на роль приложения и находятся в области подготовки к предоставлению, служба подготовки Microsoft Entra предоставит их в SAP Cloud Identity Services. Обратите внимание, что начальная синхронизация занимает больше времени, чем последующие синхронизации, которые происходят примерно каждые 40 минут, пока запущена служба подготовки Microsoft Entra.

Если вы не видите, что пользователи подготовлены, ознакомьтесь с шагами в руководстве по устранению неполадок для случаев, когда пользователи не подготовлены. Затем проверьте журнал подготовки через Центр администрирования Microsoft Entra или API Graph. Отфильтруйте журнал до сбоя состояния. Если возникают сбои с кодом ошибки DuplicateTargetEntries, это указывает на неоднозначность в правилах сопоставления развертывания. Вам необходимо обновить пользователей Microsoft Entra или сопоставления, которые используются для сопоставления, чтобы гарантировать, что каждому пользователю Microsoft Entra соответствует один пользователь приложения. Затем отфильтруйте журнал по действию «Создать» и статусу «Пропущено». Если пользователи пропускались с кодом SkipReason NotEffectivelyEntitled, это может указывать на то, что учетные записи пользователей в идентификаторе Microsoft Entra не совпадали, так как состояние учетной записи пользователя было отключено.

Настройка единого входа

Вы также можете включить единый вход на основе SAML для SAP Cloud Identity Services, следуя инструкциям, приведенным в статье о едином входе в SAP Cloud Identity Services. Единый вход можно настроить независимо от автоматической подготовки пользователей, хотя эти две возможности хорошо дополняют друг друга.

Контроль за выделением ресурсов

С помощью раздела "Сведения о синхронизации" можно отслеживать ход выполнения и следовать ссылкам на отчет о действиях подготовки, который описывает все действия, выполняемые службой подготовки Microsoft Entra в облачных службах удостоверений SAP. Вы также можете отслеживать проект подготовки с помощью API Microsoft Graph.

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

Поддержание назначений ролей приложения

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

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

Дополнительные ресурсы