Есть ли выражение 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.

Другие вопросы по тегам