ロジックアプリの相互API接続によるoffice365API接続の認証/承認の失敗

Aug 20 2020

ARMテンプレートを使用したロジックアプリのデプロイへの再認証と承認の問題に直面しています。私はいくつかの解決策を見つけましたが、それらのどれも私のために働きませんでした。実際、私の要件は少し異なります。これを以下に記述します。

前書き

私たちはクライアントのために働いており、クライアントはoffice365の完全なサブスクリプションを持っていません。ロジックアプリを使用してクライアントにソリューションを導入しました。

SharePointでの通知とデータのアップロードにoffice365コネクタを使用しているという点で、いくつかのロジックアプリがあります。これらのコネクタは、このロジックアプリ全体がクライアントのAzure Cloudにデプロイされている間、組織の資格情報で認証されます。簡単に言うと、これらのロジックアプリはハイブリッドロジックアプリです。つまり、ロジックアプリには私の会社のoffice365コネクタがあり、このロジックアプリはクライアントのAzureクラウド環境にデプロイされています。

問題

ロジックアプリのarmテンプレートをデプロイするたびに問題が発生し、ロジックアプリは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
  • SharePoint接続を備えたAzureLogicアプリ
  • ロジックアプリ用のARMテンプレートOffice365接続
  • 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 LogicApp-ARMテンプレートによるOffice365接続の作成
  • https://github.com/logicappsio/LogicAppConnectionAuth (接続を承認しますが、内部または外部のクラウドである場合にのみ承認します)
  • ARMテンプレート内でo365コネクタを使用してロジックアプリをデプロイする方法

上記の解決策を試してみると、すべての解決策が正しいことがわかりましたが、ロジックアプリでハイブリッド接続を使用しているため、私の場合は機能しません。いくつかの質問もあります

  1. MFAが有効になっている場合。デプロイ後、毎回ロジックアプリで手動認証が必要ですか?

  2. DevOpsを介してarmテンプレートをデプロイし、ロジックアプリの実行を実行すると、接続で「承認されていません」と表示され、次のエラーが発生します。

    { "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から非ホームテナントにアクセスする方法はありません。現在、関係するチームと協力して、これをドキュメントに追加できるかどうかを確認しています。