Sto utilizzando l'API REST di Azure per recuperare i dettagli sull'utilizzo della fatturazione e sui rapporti. Per acquisire il token utilizzando il metodo AcquireToken(), inizialmente ho utilizzato solo ID client che richiede quindi le credenziali utente nella finestra di accesso.L'API di utilizzo della fatturazione di Azure restituisce 401 Non autorizzato
Tuttavia, sto cercando approccio non-interattiva, quindi ho usato credenziali client in cui ho passato Id client e client chiave segreta.
Ma dà "server remoto restituisce un errore 401 non autorizzato"
Quando guardo in errore profondamente, ho trovato che dà l'errore "Il token di accesso è dal pubblico sbagliato o risorsa"
Per favore dammi qualsiasi soluzione con cui posso accedere all'API senza alcuna interazione da parte dell'utente.
Grazie in anticipo.
Ecco il mio codice:
{
string token = GetOAuthTokenFromAAD();
string requestURL = String.Format("{0}/{1}/{2}/{3}",
ConfigurationManager.AppSettings["ARMBillingServiceURL"],
"subscriptions",
ConfigurationManager.AppSettings["SubscriptionID"],
"providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&$filter=OfferDurableId eq 'MS-AZR-*****' and Currency eq 'INR' and Locale eq 'en-IN' and RegionInfo eq 'IN'");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestURL);
request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + token);
request.ContentType = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(String.Format("RateCard service response status: {0}", response.StatusDescription));
}
public static string GetOAuthTokenFromAAD()
{
AuthenticationContext authenticationContext = new AuthenticationContext(string.Format("{0}/{1}",ConfigurationManager.AppSettings["ADALServiceURL"], ConfigurationManager.AppSettings["TenantDomain"]));
AuthenticationResult result = null;
ClientCredential uc = new ClientCredential(Client_Id, Secret_Key);
try
{
result = authenticationContext.AcquireToken("https://management.core.windows.net/", uc);
}
return result.AccessToken;
}
//App Config File
<add key="ADALServiceURL" value="https://login.microsoftonline.com" />
<add key="ADALRedirectURL" value="http://*****-authentication.cloudapp.net" />
<add key="ARMBillingServiceURL" value="https://management.core.windows.net" />
<add key="TenantDomain" value="********.onmicrosoft.com" />
<add key="SubscriptionID" value="*******-****-****-****-********" />
<add key="ClientId" value="*******-****-****-****-********" />
Si prega di condividere il proprio codice e anche le impostazioni per l'applicazione creata in Azure AD. –
Aggiunto nel post. – Tejas
Una domanda rapida: hai aggiunto l'autorizzazione per eseguire le operazioni dell'API di gestione dei servizi durante la configurazione dell'applicazione in Azure AD? –