2017-03-08 44 views

回答

0

感謝您的回覆,其他存儲帳戶我的意思是經典存儲帳戶本身沒有列出的存儲帳戶。 而不是使用 https://management.core.windows.net//services/storageservices

的我用REST API的 新存儲賬戶 /management.azure.com/subscriptions/id/providers/Microsoft.Storage/storageAccounts?api-version=2016-12-01

經典: /management.azure.com/subscriptions//providers/Microsoft.ClassicStorage/storageAccounts?api-version=

,並獲得鑰匙 /訂閱/ {} subscriptionId/resourceGroups/{resourceGroupName } {/providers/Microsoft.Storage/storageAccounts/一個ccountName}/listKeys?API版本= 2016年12月1日

/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ClassicStorage/storageAccounts/{accountName}/listKeys?api-version=2016 -11-01

0

但是,答覆只給我幾個存儲帳戶,這是 經典,我如何獲得其他存儲帳戶?

通過"other"存儲帳戶,我猜你的意思是"Azure Resource Manager (ARM)"存儲帳戶。有一個不同的API可以獲得使用Azure AD身份驗證的ARM存儲帳戶。

要了解有關ARM API列出存儲帳戶的更多信息,請參閱此鏈接:https://docs.microsoft.com/en-us/rest/api/storagerp/storageaccounts#StorageAccounts_List

要了解更多有關如何進行身份驗證/授權ARM API調用,請訪問以下鏈接:https://docs.microsoft.com/en-us/rest/api/

0

我同意拉夫Mantri,如果你想指定的預訂下列出ARM存儲帳戶,請使用this API

GET https://management.azure.com/subscriptions/ {} subscriptionId /providers/Microsoft.Storage/storageAccounts?api-version=2016-12-01

而弗洛翼代碼示例在我身邊正常工作,請參閱它。

string tenantId = "{tenantId}"; 
string clientId = "{clientId}"; 
string clientSecret = "{secret}"; 
string subscriptionid = "{subscriptionid}"; 

string authContextURL = "https://login.windows.net/" + tenantId; 
var authenticationContext = new AuthenticationContext(authContextURL); 
var credential = new ClientCredential(clientId, clientSecret); 
var result = await authenticationContext.AcquireTokenAsync(resource: "https://management.azure.com/", clientCredential: credential); 

if (result == null) 
{ 
    throw new InvalidOperationException("Failed to obtain the JWT token"); 
} 

string token = result.AccessToken; 
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(string.Format("https://management.azure.com/subscriptions/{0}/providers/Microsoft.Storage/storageAccounts?api-version=2016-12-01", subscriptionid)); 

request.Method = "GET"; 
request.Headers["Authorization"] = "Bearer " + token; 


HttpWebResponse response = null; 
try 
{ 
    response = (HttpWebResponse)request.GetResponse(); 
    //extract data from response 
} 
catch (WebException ex) 
{ 
    //ex.Message; 
} 

此外,這篇文章解釋瞭如何create AD application and service principal that can access resources,請參考。