Обработка запросов на собрание из приложения Azure Logic с функциями Azure - PullRequest
0 голосов
/ 01 января 2019

Проведя часы исследований, я не более чем совершенно сбит с толку.Было много изменений, происходящих во всех функциях Azure, а также в приложениях Azure Logic, графике и аутентификации в Azure Ad, так что действительно трудно найти нужные ресурсы.

То, чего я хочу достичь, довольно просто:

  1. Лазерное логическое приложение, которое запускается при получении нового сообщения электронной почты в общую папку «Входящие».
  2. Если эти сообщения электронной почты являются приглашениями на собрание и помечаются как частные или отправляются сСтатус «свободен». Запрос на собрание должен автоматически отклоняться.
  3. Сообщение отправлено в свободный канал.

Ожидается, что на шаге 2 все уже работает.К сожалению, ни один соединитель по умолчанию не предоставляет каких-либо действий для чтения более подробной информации о приглашениях на собрания, и никакое действие соединителя не позволяет отклонять приглашения на собрания.Таким образом, очевидный путь заключается в том, чтобы использовать функцию Azure и выполнять все это с помощью Microsoft Graph API.

Итак, я всегда терплю неудачу: Как получить правильный токен Auth в функции Azure, чтобыДоступ к графику Microsoft?

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

1 Ответ

0 голосов
/ 02 января 2019

1.Откройте MSI в приложении функций

В приложении функций перейдите к Platform features, выберите Identity и переключите Status на On.Нажмите Save.

enter image description here

2. Разрешения и роли для идентификатора управляемой службы

Дайте принципалу службы разрешение на получение некоторого Справочникаданные, такие как информация о пользователе из моего Azure AD.Следующие команды Azure AD добавляют моего участника службы в роль каталога AD Directory Readers: enter image description here

3.Получить токен

Поскольку MSI включен вФункция Azure, вы можете перейти к https://***.scm.azurewebsites.net и щелкнуть Среда и получить MSI_SECRET

public static async Task<HttpResponseMessage> GetToken(string resource, string apiversion)  {
    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Add("Secret", Environment.GetEnvironmentVariable("MSI_SECRET"));
    return await client.GetAsync(String.Format("{0}/?resource={1}&api-version={2}", Environment.GetEnvironmentVariable("MSI_ENDPOINT"), resource, apiversion));
}

Для получения более подробной информации, вы можете обратиться к этой статье и этой одной.

...