1

自動化に使用するサービス プリンシパルがあります。Directory.Read.AllAzure Active Directory に対する Microsoft Graphのアクセス許可があります。

Set-AzSqlServerActiveDirectoryAdministratorコマンドを実行できません。私が得るエラーは次のとおりです。

Cannot find the Azure Active Directory object 'My-AD-Group'.
Please make sure that the user or group you are authorizing is
registered in the current subscription's Azure Active directory.

この同じコマンドを自分で実行すると、問題なく動作します。

Directory.Read.All明らかに、私のサービス プリンシパルはアクセス許可以上のものを必要としています。しかし、サービス プリンシパルがこのコマンドを正常に実行するために必要な API アクセス許可を正確にリストしたドキュメントを見つけることができません。

Azure Active Directory へのアクセスを伴う特定の Azure PowerShell コマンドを実行するために必要な API アクセス許可を正確に特定する方法を知っている人はいますか?

余談ですが、私は PowerShell に縛られていません。このコマンドをazcliで動作させることもできません。私はそれを使用azしてこの答えを得る方法を受け入れています。

4

1 に答える 1

1

Microsoft Graph APIではなく、Azure AD Graph APIDirectory.Read.Allの(アプリケーション許可)を与える必要があります。また、サービス プリンシパルに SQL サーバーのアクセス許可があることを確認してください (たとえば、サービス プリンシパルがサブスクリプションまたは SQL サーバーのアクセス許可である場合)、正常に動作します。Owner

サービス プリンシパルをサブスクリプションまたは SQL サーバーのロールとして追加する場合は、ポータルでサブスクリプションまたは SQL サーバーに移動します -> Access control (IAM)-> Add-> Add role assignment-> サービス プリンシパルを名前で検索し、それをロールとして追加します(例Owner) ->Save詳細はこちら

ここに画像の説明を入力

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -DisplayName "group1" -ObjectId "64d1b8xxxxx4ffbd"

ここに画像の説明を入力

Azure Active Directory へのアクセスを伴う特定の Azure PowerShell コマンドを実行するために必要な API アクセス許可を正確に特定する方法を知っている人はいますか?

Azure PowerShell は基本的にさまざまな API を呼び出します。API のアクセス許可を取得するには、Fiddlerを介して要求をキャッチし、公式の API ドキュメントでアクセス許可を調べます。

于 2019-07-09T01:52:23.703 に答える