私は、リソース グループを作成し、含まれているアプリケーション (この例では Web Api) を関連する AAD に登録する powershell スクリプトに取り組んでいます。しかし、Reader
権利を割り当てようとして呼び出すと、失敗し続けます。
Visual Studio (2015) の AzureResourceGroup テンプレートに付属する基本的な deploy*.ps1 ファイルから始めました。
次のコードを実行しています。
#Requires -Version 3.0
#Requires -Module AzureRM.Resources
#Requires -Module Azure.Storage
Import-Module Azure -ErrorAction SilentlyContinue
Set-StrictMode -Version 3
Login-AzureRmAccount
$tenantWebSite = New-AzureRmADApplication -DisplayName "TheSiteName" -HomePage "http://MySignOnUrl" -IdentifierUris "http://MyIdentifierUrl" -Password "MyClientSecret"
$tenantWebSiteServicePrincipal = New-AzureRmADServicePrincipal -ApplicationId $tenantWebSite.ApplicationId
New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipalName $tenantWebSite.ApplicationId
最後のコマンド ( New-AzureRmRoleAssignment
) は、次のエラーで失敗し続けます。
09:58:26 - [ERROR] New-AzureRmRoleAssignment : PrincipalNotFound: Principal
09:58:26 - [ERROR] 50f3d430c68b485b8c11a63552171550 does not exist in the directory
09:58:26 - [ERROR] <MyTenantId>.
09:58:26 - [ERROR] At D:\dev_new_2010\cto\src\dev\d.tom.0\deploy\calidos.maat.deploy.azureresource
09:58:26 - [ERROR] group\Scripts\Deploy-AzureResourceGroup.ps1:115 char:1
09:58:26 - [ERROR] + New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipa ...
09:58:26 - [ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
09:58:26 - [ERROR] + CategoryInfo : CloseError: (:) [New-AzureRmRoleAssignment], Clo
09:58:26 - [ERROR] udException
09:58:26 - [ERROR] + FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureRoleA
09:58:26 - [ERROR] ssignmentCommand
通常、このスクリプトは Visual Studio の deploy オプションを使用して実行します。Microsoft Azure PowerShell
コマンド ウィンドウからこのスクリプトを実行すると、同じエラーが発生します。
しかし、同じPowerShellウィンドウで正確なコマンドを実行すると、機能します!
New-AzureRmRoleAssignment -RoleDefinitionName Reader -ServicePrincipalName <ApplicationId>
これが ps1 ファイル内から失敗する理由について誰か考えがありますか? また、スコープを明示的に定義しようとしましたが、それもうまくいきませんでした。