Есть ли выражение Power Automate Flow для атрибута Azure AD «Альтернативные адреса электронной почты»?
Я пытаюсь создать поток, который использует соединитель Azure AD с действием «Получить пользователя».
Затем я инициализирую переменную, которая позволяет мне выбирать динамический контент из списка (например, рабочий телефон, местоположение и т. Д.). Если я смотрю код, я вижу body/businessPhone или body/location. Я предположил, что могу использовать body/{any attribute} в своем выражении, но, похоже, это не так.
В Azure мне нужен атрибут «OtherMail», в O365 атрибут с тем же значением - «AlternateEmailAddresses». Ни одно из этих значений в выражении не работает. Интересно, что эти значения отображаются как {myemail@domain.com} в фигурных скобках.
Если я использую динамическое содержимое для отображения названия компании (код которого - body/companyName) и вставляю для этого адрес электронной почты в Azure AD, поток работает.
Однако для ясности я считаю, что в Azure AD следует использовать атрибут альтернативного адреса электронной почты, но Flow не хочет работать.
1 ответ
Во-первых, нам нужно знать действие « Получить пользователя » для API- интерфейса графа Microsoft запроса соединителя Azure AD в серверной части. Он запрашивает api графа, но не api графа. Если запрос
beta
graph api, он ответит на все поля пользователя, как показано на скриншоте ниже:
Но если запрос
v1.0
graph api, по умолчанию он просто ответит на 12 полей, как показано на скриншоте ниже:
Вот почему вы не можете получить поле из действия «Получить пользователя» .
Для реализации ваших требований есть два решения:
Первое решение:
Добавлять
?$select=otherMails
после идентификатора пользователя в действии " Получить пользователя ".
Я тестирую это на своей стороне, иногда это работает, а иногда нет . Не знаю почему. Вы можете протестировать это решение на своей стороне, если вы можете принять это решение, это нормально, потому что оно очень простое.
Второе решение:
Вам необходимо запросить api графика вручную с помощью действия « HTTP » вместо использования действия « Получить пользователя ».
Во-первых, вам необходимо зарегистрировать приложение в Azure AD. Скопируйте два идентификатора («ID приложения (клиента) » и « ID каталога (клиента) ») в блокнот для дальнейшего использования.
Затем перейдите на вкладку « Разрешения API ». « Добавить разрешение » -> « Microsoft Graph ».
Выберите « Разрешения приложения » -> « User.Read.All ».
Добавьте разрешение и не забудьте дать на него согласие администратора.
Затем перейдите на вкладку « Сертификаты и секреты » -> « Новый секрет клиента ».
Теперь вернитесь к своей автоматике питания. Добавьте действие « HTTP » с URI, как показано на скриншоте ниже:
Внизу действия « HTTP » добавьте новый параметр « Аутентификация ». Заполните « Арендатор поле ввода» с вашим арендатором ид, заполняющим в « Client ID поле ввода» с «Application (клиент) ID» зарегистрированного приложением, заполняющим в « Тайном поле ввода» с клиентом секретом , который вам созданный выше.
После запуска Power Automate можно получить поле
otherMails
.