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

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

Примечание.

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

Необходимые компоненты

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

Примечание.

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

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

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

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

    Снимок экрана: консоль Администратор служб облачных удостоверений 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 Cloud Identity Services и подчиненные целевые системы требуют двух атрибутов и userNameemails[type eq "work"].value. Если целевые системы SAP требуют других атрибутов, и они не являются частью пользовательской схемы идентификатора Microsoft Entra ID, может потребоваться настроить атрибуты расширения синхронизации.

Перед настройкой идентификатора 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 как минимум облачные приложения Администратор istrator.
  2. Перейдите к приложениям>Identity>Applications>Enterprise. Новое приложение.
  3. Чтобы добавить приложение из коллекции, введите sap Cloud Identity Services в поле поиска.
  4. Выберите SAP Cloud Identity Services на панели результатов и добавьте это приложение. Подождите несколько секунд, пока приложение не будет добавлено в ваш клиент.

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

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

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

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

  2. Обзор корпоративных приложений>удостоверений>

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

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

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

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

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

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

    Снимок экрана: раздел

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

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

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

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

  9. В поле Почтовое уведомление введите адрес электронной почты пользователя или группы, которые должны получать уведомления об ошибках подготовки, а также установите флажок Send an email notification when a failure occurs (Отправить уведомление по электронной почте при сбое).

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

  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 или подчиненных целевых систем 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, измените состояние подготовки на On в разделе Параметры.

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

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

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

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

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

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

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

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

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator и пользователь Администратор istrator.
  2. Перейдите в раздел Удостоверение>Пользователи>Все пользователи.
  3. Выберите "Создать пользователя>".
  4. Введите имя участника-пользователя и отображаемое имя нового тестового пользователя. Имя субъекта-пользователя должно быть уникальным и не совпадает с текущим или предыдущим пользователем Microsoft Entra или пользователем sap Cloud Identity Services. Нажмите кнопку Проверить и создать, а затем Создать.
  5. После создания тестового пользователя перейдите к приложениям Identity>Applications> Enterprise.
  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. Перейдите в раздел Удостоверение>Пользователи>Все пользователи.
  2. Выберите тестового пользователя, нажмите кнопку "Удалить" и нажмите кнопку "ОК". Это действие обратимо удаляет тестового пользователя из идентификатора Microsoft Entra.

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

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

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

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

  1. Войдите в консоль https://<tenantID>.accounts.ondemand.com/admin Администратор служб облачных удостоверений SAP или https://<tenantID>.trial-accounts.ondemand.com/admin пробную версию.

  2. Перейдите к разделу "Пользователи и авторизация экспортируют пользователей>".

  3. Выберите все атрибуты, необходимые для сопоставления пользователей Microsoft Entra с пользователями в SAP. К этим атрибутам относятся SCIM IDатрибуты , userNameemailsи другие атрибуты, которые могут использоваться в системах 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 does not 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 does not 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 Cloud Identity Services Администратор Консоли. Если эти пользователи также присутствуют в Microsoft Entra, сначала необходимо обновить представление облачных служб удостоверений SAP, чтобы они были заполнены соответствующим атрибутом.

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

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

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

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

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

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

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

    Install-Module Microsoft.Graph
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • По умолчанию значение атрибута пользователя userPrincipalName Microsoft Entra сопоставляется как с атрибутами облачных удостоверений SAP, так userName и emails[type eq "work"].value с атрибутами. Если адреса электронной почты пользователя отличаются от имен субъектов-пользователей, может потребоваться изменить это сопоставление.
  • Облачные службы удостоверений 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

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

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

Проверьте наличие пользователей, которые присутствуют в облачных службах идентификации SAP и не назначены приложению в идентификаторе Microsoft Entra

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

  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.

    Это создается на основе переменной, заданной $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 are not 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 и обновлением пользователей облачных удостоверений SAP, чтобы иметь атрибуты из идентификатора Microsoft Entra.

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

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

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

Если вы не видите подготовленных пользователей, ознакомьтесь с инструкциями, описанными в руководстве по устранению неполадок, для которых не подготовлены пользователи. Затем проверка журнал подготовки через Центр администрирования Microsoft Entra или API Graph. Отфильтруйте журнал по состоянию Сбой. Если возникают сбои с кодом errorCode of 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, эти изменения будут автоматически подготовлены к облачным службам удостоверений SAP.

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

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

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