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


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

В этой статье рассматривается настройка управления из 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. Нажмите кнопку +Add (+Добавить) на панели слева, чтобы добавить в список нового администратора. Выберите команду Add System (Добавить систему) и введите имя системы.

    Примечание.

    Удостоверение администратора в службах 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. Перейдите к Идентификация>Приложения>Корпоративные приложения>Новое приложение.
  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. Просмотреть Identity>Приложения>Корпоративные приложения

    Снимок экрана: Колонка

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

    Снимок экрана ссылки SAP Cloud Identity Services в списке приложений.

  4. Выберите вкладку Свойства.

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

  6. Выберите вкладку Подготовка.

    Скриншот параметров управления с отмеченным параметром

  7. Для параметра Режим подготовки к работе выберите значение Automatic (Автоматически).

    Снимок экрана: раскрывающийся список

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

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

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

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

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

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

    Снимок экрана сопоставлений пользователей SAP Cloud Identity Services.

  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. Перейдите в раздел Идентификация>Пользователи>Все пользователи.
  3. Выберите «Новый пользователь»>Создать нового пользователя.
  4. Введите основное имя пользователя и отображаемое имя нового тестового пользователя. Имя субъекта-пользователя должно быть уникальным и не должно совпадать ни с каким текущим или предыдущим пользователем Microsoft Entra или пользователем SAP Cloud Identity Services. Нажмите кнопку Проверить и создать, а затем Создать.
  5. После создания тестового пользователя перейдите к Identity>Applications>Корпоративные приложения.
  6. Выберите приложение sap Cloud Identity Services.
  7. Выберите "Пользователи" и "Группы ", а затем выберите "Добавить пользователя или группу".
  8. В разделе "Пользователи и группы" выберите "Нет выбрано" и в текстовом поле введите имя участника-пользователя тестового пользователя.
  9. Нажмите Выбрать, а затем Назначить.
  10. Выберите "Подготовка" и выберите "Подготовка по запросу".
  11. В текстовом поле "Выбор пользователя или группы" введите имя основного пользователя тестового пользователя.
  12. Выберите настройку.
  13. Дождитесь завершения подготовки. При успешном выполнении отображается сообщение Modified attributes (successful).

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

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

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

  1. Перейдите в раздел Идентификация>Пользователи>Все пользователи.
  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 ID с помощью командлетов Microsoft Graph PowerShell.

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

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

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

    Install-Module Microsoft.Graph
    

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

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

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

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

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

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

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

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

    Если вы используете службы SAP Cloud Identity Services, то сопоставление по умолчанию — это атрибут 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 для них. Дополнительные сведения об изменениях см. в статье об управлении сопоставлениями и учетными записями пользователей в приложениях, которые не совпадают с пользователями в идентификаторе 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 сопоставляется как с атрибутом userName, так и с атрибутом emails[type eq "work"].value службы облачных удостоверений SAP. Если адреса электронной почты пользователя отличаются от основных имен пользователей, может потребоваться изменить это соответствие.
  • Облачные службы удостоверений SAP могут игнорировать значения postalCode атрибута, если формат почтового индекса компании не соответствует стране или региону компании.
  • По умолчанию атрибут department Microsoft Entra сопоставляется с атрибутом SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department . Если у пользователей Microsoft Entra есть значения атрибута department , эти значения должны соответствовать тем отделам, которые уже настроены в облачных службах идентификации SAP, в противном случае создание или обновление пользователя завершится ошибкой. department Если значения пользователей Microsoft Entra не соответствуют значениям в среде SAP, удалите сопоставление перед назначением пользователей.
  • Конечная точка 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 или Graph API. Отфильтруйте журнал по состоянию Сбой. Если возникают сбои с кодом ошибки DuplicateTargetEntries, это указывает на неоднозначность в правилах сопоставления при настройке. Вам необходимо обновить пользователей Microsoft Entra или сопоставления, которые используются для сопоставления, чтобы гарантировать соответствие каждого пользователя Microsoft Entra одному пользователю приложения. Затем отфильтруйте журнал по действию Создать и состоянию Пропущено. Если пользователи пропускались с кодом SkipReason NotEffectivelyEntitled, это может указывать на то, что учетные записи пользователей в идентификаторе Microsoft Entra не совпадали, так как состояние учетной записи пользователя было отключено.

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

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

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

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

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

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

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

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

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