2017-02-10 16 views
0

私はPowershellで新しいAzure ADアプリケーションを作成しています。 Iアプリケーションを正常に作成し、次のPowerShellコマンドを使用してclient_secretを割り当てた:Powershellを使用して新しいAzure ADアプリケーションを設定するには?

$app = New-AzureRmADApplication -DisplayName "PowerShell-Test-POC2" -HomePage "http://www.microsoft.com" -IdentifierUris "http://kcuraonedrive.onmicrosoft.com/PowerShell-Test-POC2" -AvailableToOtherTenants $true

私の質問は、私は(すなわち、必要な権限とURLを返信)、PowerShellのを通じて、この新しく作成されたアプリケーションの構成については行く方法ですか?

答えて

6

新しいAzure AD v2コマンドレット(https://docs.microsoft.com/en-us/powershell/azuread/v2/azureactivedirectory)を使用することをお勧めします。

これらはARMよりも汎用性があり、キー、返信URLなどを簡単に指定することができます。

たとえば、返信のURLを追加する:

Set-AzureADApplication -ObjectId 1048db5f-f5ff-419b-8103-1ce26f15db31 -ReplyUrls @("https://localhost:8080","https://localhost:8081") 

が必要な権限を追加するには、カップルの事を知る必要があります。アクセス許可が定義されているサービスプリンシパルは、そのappIdが必要です。 (テナントからMicrosoft Graph APIプリンシパルが見つかりました)次に、appRoleまたはoauth2Permissionが必要です。そのIDが必要です。そして、委任権限追加する

$req = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess" 
$acc1 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "e1fe6dd8-ba31-4d61-89e7-88639da4683d","Scope" 
$acc2 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "798ee544-9d2d-430c-a058-570e29e34338","Role" 
$req.ResourceAccess = $acc1,$acc2 
$req.ResourceAppId = "00000003-0000-0000-c000-000000000000" 
Set-AzureADApplication -ObjectId 1048db5f-f5ff-419b-8103-1ce26f15db31 -RequiredResourceAccess $req 

ResourceAppIdは、MicrosoftグラフAPIのためのサービスプリンシパルのAPPIDです。この場合のResourceAccessオブジェクトには2つの要件があります。最初に、oauth2PermissionのIDを保持し、それが委任された許可であることを指定します。 2つ目はapp権限を持ち、idはappRoleのオブジェクトIDです。

Get-AzureADServicePrincipal 
ObjectId        AppId        DisplayName 
--------        -----        ----------- 
f004dde9-b40f-4259-91be-e257009a444a 00000003-0000-0000-c000-000000000000 Microsoft Graph 

そして、元本を取得し、委任権限をリストアップ:あなたが必要とするサービスプリンシパルを見つけるための許可

役割=アプリケーションの許可

を委任、あなたが実行することができます

範囲=

$msGraph = Get-AzureADServicePrincipal -ObjectId f004dde9-b40f-4259-91be-e257009a444a 
$msGraph.Oauth2Permissions | select Id,AdminConsentDisplayName,Value 
Id         AdminConsentDisplayName           Value 
--         -----------------------           ----- 
e1fe6dd8-ba31-4d61-89e7-88639da4683d Sign in and read user profile          User.Read 

アプリのパーミッションが必要な場合:

$msGraph.AppRoles | select Id,DisplayName,Value 
Id         DisplayName           Value 
--         -----------           ----- 
798ee544-9d2d-430c-a058-570e29e34338 Read calendars in all mailboxes      Calendars.Read 

Idは重要です。

スクリプトの場合、MSサービスのアプリケーションIDは常に同じです。許可IDはすべてのテナントで同じです。ですから、例えば:

  • MicrosoftグラフAPI
    • のAppID:00000003-0000-0000-c000-000000000000
  • のAzure ADグラフAPI
    • APPID:00000002-0000- 0000-c000-000000000000
+0

返信ありがとうございます。あなたは、あなたが言った行についての追加情報を提供してください:* "次に、あなたが必要とするappRoleまたはoauth2Permissionsを見つける必要があります" *? – jdave

+0

私の編集を参照してください。 Microsoft Graph APIのアクセス許可を取得するために使用したコマンドの例をいくつか追加しました。 – juunas

+0

@ junnas - ああありがとう!新しいアプリを設定していて、アクセス許可が定義されているサービス原則がない場合はどうなりますか?アプリの新しい権限を作成したければ、別の流れがありますか? – jdave

関連する問題