2017-04-16 53 views
0

我在Azure門戶(https://portal.azure.com)中創建了一個測試應用程序。在Visual Studio 2015年我有PowerShell和可以執行:Get-AzureRmADApplication顯示沒有權限

獲取-AzureRmADApplication

我得到以下輸出:

DisplayName    : test 
ObjectId    : ... 
IdentifierUris   : ... 
HomePage    : ... 
Type     : Application 
ApplicationId   : ... 
AvailableToOtherTenants : False 
AppPermissions   : 
ReplyUrls    : ... 

的 「AppPermissions」 列表是空的,雖然在Azure的門戶網站我已經給出了「測試」所有可用的權限。

我正在使用PowerShell 3.0.399.0。至少,這是什麼獲取的主機報告的:如果我使用

Name    : PowerShell Tools for Visual Studio Host 
Version   : 3.0.399.0 
InstanceId  : d7bb788e-e342-41fb-a78b-cad36f940aae 

:獲取AzureADApplication篩選器「顯示名稱EQ‘測試’」我得到:

[ERROR] Get-AzureADApplication : Error occurred while executing GetApplications 
[ERROR] Code: Authentication_Unauthorized 
[ERROR] Message: User was not found 
[ERROR] HttpStatusCode: Forbidden 
[ERROR] HttpStatusDescription: Forbidden 
[ERROR] HttpResponseStatus: Completed 

任何想法?如何在PowerShell中獲得應用程序「測試」的權限?爲什麼這不適合我?

BR,劉若英

回答

0

就目前來說,AD應用程序的權限是建立在的OAuth 2.0,我們可以利用這個腳本來獲取權限:

PS C:\Users> Get-AzureADApplication | where{ $_.displayname -eq 'jasonweb' } | fl * 


DeletionTimeStamp   : 
ObjectId     : 6b11xxxx-xxxx-xxxx-xxxx-xxx9e59532e 
ObjectType     : Application 
AddIns      : {} 
AppId      : efc18xxx-xxxx-xxxx-xxxx-xxxx401dc6bc 
AppRoles     : {} 
AvailableToOtherTenants : False 
DisplayName    : jasonweb 
ErrorUrl     : 
GroupMembershipClaims  : 
Homepage     : http://jasontest321.azurewebsites.net 
IdentifierUris    : {https://XXXXXXXXXX.onmicrosoft.com/9d1xxxxx-xxxx-xxxx-xxxx-xxxxcecab763} 
KeyCredentials    : {} 
KnownClientApplications : {} 
LogoutUrl     : 
Oauth2AllowImplicitFlow : False 
Oauth2AllowUrlPathMatching : False 
Oauth2Permissions   : {class OAuth2Permission { 
           AdminConsentDescription: Allow the application to access jasonweb on behalf of the signed-in user. 
           AdminConsentDisplayName: Access jasonweb 
           Id: acecxxxx-xxxx-xxxx-xxxx-xxxxd1a04466 
           IsEnabled: True 
           Type: User 
           UserConsentDescription: Allow the application to access jasonweb on your behalf. 
           UserConsentDisplayName: Access jasonweb 
           Value: user_impersonation 
          } 
          } 
OAuth2RequiredPostResponse : 
PasswordCredentials  : {} 
PublicClient    : False 
RecordConsentConditions : 
ReplyUrls     : {http://jasontest321.azurewebsites.net} 
RequiredResourceAccess  : {class RequiredResourceAccess { 
           ResourceAppId: 00000003-0000-0000-c000-000000000000 
           ResourceAccess: System.Collections.Generic.List`1[Microsoft.Open.AzureAD.Model.ResourceAccess] 
          } 
          , class RequiredResourceAccess { 
           ResourceAppId: 00000002-0000-0000-c000-000000000000 
           ResourceAccess: System.Collections.Generic.List`1[Microsoft.Open.AzureAD.Model.ResourceAccess] 
          } 
          } 
SamlMetadataUrl   : 

注: 此命令屬於Azure Active directory version 2.0

有關安裝的更多信息 Azure Active Directory V2 powershell模塊請參考此link

+0

Get-AzureADApplication不適用於我。我在我的問題中已經改寫並添加了一些額外的信息。 –

+0

@RenéHeuven根據您的錯誤消息,cmdlet Get-AzureADapplication沒有指定租戶,因此連接已建立到domian,其中用戶沒有管理員權限。請參考此類似案例:http://stackoverflow.com/questions/43301218/authenticating-with-azure-active-directory-on-powershell/43314137#43314137我們可以使用此命令來登錄Azure AD'Connect-AzureAD - TenantId' –

+0

@RenéHeuven現在是否有效,請讓我知道是否需要進一步的幫助。 –