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

Для мультитенантного приложения Azure, когда мы вносим какие-либо изменения в объект приложения, изменения отражаются только в его объекте-субъекте службы в домашнем арендаторе приложения (арендаторе, в котором зарегистрировано приложение). Как насчет субъектов-служб, которые предоставляются на основе этого объекта приложения в других клиентах? Есть ли способ или рекомендации для обработки обновления субъекта-службы?

Повторный запуск потока согласия администратора обновит субъект-службу. Но у меня есть следующие вопросы:

  1. Есть ли способ определить, нужно ли обновить субъект-службу? Из ресурса субъекта-службы он не включает что-то вроде отметки времени последнего обновления. Итак, как мы можем определить принципала службы в клиенте клиента, который необходимо обновить, и уведомить его администратора?
  2. Похоже, что повторное выполнение согласия изменяет некоторые свойства субъекта-службы, такие как разрешения, но не некоторые другие, такие как имя приложения. Есть ли какие-либо рекомендации по этому поводу, например, удаление существующего субъекта-службы и повторное получение согласия администратора?

person Jason Wang    schedule 31.03.2021    source источник


Ответы (1)


1#

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

2#

Да, вы можете попросить своего клиента удалить субъект-службу (корпоративное приложение) в его клиенте и попытаться войти в приложение или снова дать согласие администратора. Это обновит необходимые вам свойства. Они могут сделать это с помощью PowerShell, Microsoft Graph или на портале Azure.

ОБНОВЛЕНИЕ:

Хотя в тип ресурса servicePrincipal или тип ресурса приложения, у нас есть другой метод для просмотра журналов аудита AAD.

На портале Azure - ›Azure Active Directory -› Журналы аудита выберите ApplicationManagement для категории и субъекта-службы обновления для Activity. И выберите данные в качестве периода времени (до одного месяца). Затем вы можете увидеть, какие участники службы были обновлены.

введите описание изображения здесь

Вы также можете использовать Microsoft Graph API Список directoryAudits, чтобы получить журнал обновлений определенного субъекта-службы.

Пример:

GET https://graph.microsoft.com/v1.0/auditLogs/directoryaudits?$filter=activityDisplayName eq 'Update service principal' and targetResources/any(c:c/id eq '{service principal object id}')
person Allen Wu    schedule 01.04.2021
comment
Спасибо за ответ, Аллен! Я надеюсь, что у принципала службы есть некоторые свойства, такие как версия или измененная дата и время, чтобы на их основе можно было реализовать какую-то логику обнаружения. - person Jason Wang; 01.04.2021
comment
@JasonWang Ваше требование разумно. Я обновил свой ответ. Если это полезно, вы можете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). См. meta.stackexchange.com/questions / 5234 /. Это может быть полезно для других членов сообщества. Спасибо. - person Allen Wu; 02.04.2021