Сбой аутентификации / авторизации подключения к office365 API из-за кросс-API-соединения в приложениях логики

Aug 20 2020

Я столкнулся с проблемой повторной аутентификации и авторизации при развертывании приложения логики с использованием шаблона ARM. Я нашел несколько решений, но ни одно из них не помогло мне. На самом деле мое требование немного другое, о чем я пишу ниже.

Введение

Мы работаем для нашего клиента, и у нашего клиента нет полной подписки на office365. Мы представили моему клиенту решение с приложениями логики.

У нас есть несколько приложений логики, в которых мы используем коннекторы office365 для уведомления и загрузки данных в SharePoint, эти коннекторы проходят аутентификацию с использованием учетных данных моей организации, пока все это приложение логики развернуто в облаке Azure моего клиента. Вкратце, эти приложения логики являются приложениями гибридной логики, что означает, что у приложений логики есть коннектор office365 моей компании, и это приложение логики развернуто в клиентской облачной среде Azure.

Проблема

Мы сталкиваемся с проблемой всякий раз, когда развертываем шаблон руки приложения логики, приложения логики запрашивают аутентификацию для шагов office365.

Я следил за следующими документами и решениями, но у меня это не сработало из-за гибридного решения.

  • https://www.bruttin.com/2017/06/13/deploy-logic-app-with-arm.html
  • https://social.msdn.microsoft.com/Forums/en-US/7a9e8ebe-3438-4916-8041-2058fcdc1e31/arm-resource-manager-template-connection-parameters-for-oauth-googlesheet-managed-api?forum=azurelogicapps
  • https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-azure-resource-manager-templates-overview#authenticate-connections
  • Приложение логики Azure с подключением к SharePoint
  • Шаблон ARM Подключение к Office 365 для приложений логики
  • https://blogs.msdn.microsoft.com/logicapps/2016/02/23/deploying-in-the-logic-apps-preview-refresh/
  • http://blog.davidebbo.com/2015/01/azure-resource-manager-client.html
  • Приложение логики Azure - создание подключения к Office365 с помощью шаблона ARM
  • https://github.com/logicappsio/LogicAppConnectionAuth (Для авторизации подключения, но авторизация только в том случае, если это внутреннее или внешнее облако)
  • Как развернуть приложение логики с o365 Connector в шаблоне ARM

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

  1. Когда MFA включен. мне нужна ручная аутентификация в приложении логики каждый раз после развертывания?

  2. Когда я развертываю шаблон руки через DevOps и выполняю приложение логики, соединение сообщает о несанкционированном доступе и дает мне следующую ошибку.

    { "error_description": "Exception of type 'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' was thrown." }

Пожалуйста, дайте мне знать, есть ли у кого-нибудь решение этой проблемы.

Ответы

1 JayaChatterjee-MSFT Aug 26 2020 at 17:53

Если выполнение для онлайн-соединителя точки общего доступа не удается, в сценарии PowerAutomate или LogicApps соединение создается до того, как станет возможным узнать, к какому пользователю будет осуществляться доступ, поэтому единственный вариант по умолчанию - домашний клиент пользователя, как и сегодня. По умолчанию токен, сгенерированный для аутентификации, будет соответствовать корневому сайту пользователя - как аудитории, так и tenantId. Позже коннектор может обменивать токен для другой аудитории (для сценариев X-Geo), но tenantId останется прежним. Вот как это работает сегодня, и обходного пути нет. На данный момент нет возможности получить доступ к клиентам, не являющимся домашними, из PowerAutomate / LogicApps. В настоящее время мы обсуждаем этот вопрос с соответствующей командой, чтобы проверить, можем ли мы добавить это в документ.