2017-02-10 105 views
0

我正在通過Powershell創建一個新的Azure AD應用程序。我已經成功地創建應用程序和分配client_secret具有以下PowerShell命令:如何通過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

我的問題是我怎麼去通過PowerShell的配置這個新創建的應用程序,(即所需的權限和回覆的網址)?

回答

6

我建議寧願使用新的Azure AD v2 cmdlet:https://docs.microsoft.com/en-us/powershell/azuread/v2/azureactivedirectory

它們比ARM更通用,可以更容易地指定按鍵,回覆URL等內容。

例如,加回復的網址:

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

要添加所需的權限,你必須找出幾件事情。定義權限的服務主體,您將需要它的appId。 (我從租戶那裏找到Microsoft Graph API校長)然後,您需要找到您想要的appRoleoauth2Permission。你將需要它的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是微軟圖形API的服務主體的APPID。這種情況下的ResourceAccess對象包含兩個要求。首先保存我想要的oauth2Permission的id,並指定它是委託權限。第二個包含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也相同。因此,例如:

  • 微軟圖形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

相關問題