2016-11-18 17 views
2

MS AzureのマルチテナントSaaSアプリケーションを構築しています。顧客はAzureテナントを持ってきてデータを監査することができます。これに対する許可を得るために、我々は顧客のテナントのグローバル管理者がアプリケーションに許可を与える標準的な同意フローを採​​用しています。紺色のモニタ(洞察)の管理者の同意フローap

このアプローチは、共有ファイルやユーザー/グループなどのテナントのデータを使用する場合は問題ありませんが、最近では監査ログを読む必要がありますAzure Subscriptionお客様(例: VMの削除、ストレージアカウントの操作など)。これを実装するには、Azure Monitor API(旧Azure Insights API):https://msdn.microsoft.com/en-us/library/azure/dn931943.aspxを使用します。

問題は、Microsoftが提供する同意フレームワークは、Azureサブスクリプションのデータにアクセスするための役割を割り当てるメカニズムを持っていないようです。私たちのプリンシパルを使用してデータを読み取ろうとするとき、私たちは次のエラーを取得:今のよう

The client 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' with object id 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' does not have authorization to perform action 'microsoft.insights/eventtypes/values/read' over scope '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.

を、私たちは手動で我々のアプリに「読者」の役割を追加することを除いて、エラーを修正する方法を発見していませんAzure Portal(https://docs.microsoft.com/en-us/azure/resource-group-create-service-principal-portal、「役割へのアプリケーションの割り当て」)の顧客のサブスクリプション設定については、実際に手作業で作業することは避けてください。

どのようによりエレガントな方法でこれを解決するためのアイデアですか?

答えて

関連する問題