Поделиться через


Краткое руководство по API Fabric

Введение

Чтобы работать с API Fabric, как и многие другие службы Майкрософт, сначала необходимо получить маркер Microsoft Entra для службы Fabric, а затем использовать этот маркер в заголовке авторизации вызова API.

В этом кратком руководстве вы создадите консольное приложение на C#, которое получит токен Entra ID с помощью библиотеки MSAL.Net, а затем используете C# HttpClient для вызова API Список рабочих областей.

Создание регистрации приложения

Чтобы получить токен Microsoft Entra, сначала необходимо зарегистрировать приложение с помощью идентификатора Microsoft Entra.

Дополнительные сведения о регистрации приложения и различных свойствах приложения и его применении к вашему сценарию см. в статье "Регистрация приложения на платформе удостоверений Майкрософт".

В этом кратком руководстве описано, как создать общедоступный клиент с URI перенаправления = http://localhost

  1. Войдите в Центр администрирования Microsoft Entra с учетной записью не ниже администратора облачных приложений.

  2. Перейдите в раздел Приложения > Регистрация приложений.

  3. Нажмите кнопку "Создать регистрацию".

  4. Введите отображаемое имя для вашего приложения и добавьте URI перенаправления публичного клиента http://localhost

    Снимок экрана: форма регистрации приложения.

  5. Выберите Зарегистрировать.

  6. Скопируйте идентификатор приложения (клиента) и вставьте его в блокнот, который будет использоваться позже.

Снимок экрана, на котором показано приложение в Azure после регистрации.

Получение токена

В этом руководстве вы будете использовать MSAL.Net для получения токена Entra ID для службы Fabric со следующими разрешениями: Workspace.ReadWrite.All, Item.ReadWrite.All.

Дополнительные сведения о получении токенов с помощью MSAL.Net см. в статье «Получение токенов» — библиотека аутентификации Microsoft для .NET.

Вставьте идентификатор приложения (клиента), скопированный ранее, и вставьте его для переменной ClientId.

Пример кода на C# для получения токена доступа Microsoft Entra

#region parameters section 
string ClientId = "YourApplicationId"; 
string Authority = "https://login.microsoftonline.com/organizations"; 
string RedirectURI = "http://localhost"; 
#endregion 

#region Acquire a token for Fabric APIs 
// In this sample we acquire a token for Fabric service with the scopes  
// Workspace.ReadWrite.All and Item.ReadWrite.All 
string[] scopes = new string[] { "https://api.fabric.microsoft.com/Workspace.ReadWrite.All https://api.fabric.microsoft.com/Item.ReadWrite.All" }; 

PublicClientApplicationBuilder PublicClientAppBuilder = 
        PublicClientApplicationBuilder.Create(ClientId) 
        .WithAuthority(Authority) 
        .WithRedirectUri(RedirectURI); 

IPublicClientApplication PublicClientApplication = PublicClientAppBuilder.Build(); 

AuthenticationResult result = await PublicClientApplication.AcquireTokenInteractive(scopes) 
        .ExecuteAsync() 
        .ConfigureAwait(false); 

Console.WriteLine(result.AccessToken); 
#endregion 

API рабочих пространств для списка звонков

В этом разделе вы сделаете следующее:

  1. Создайте C# HttpClient с токеном, полученным в предыдущем разделе.
  2. Добавьте https://api.fabric.microsoft.com/v1/ в качестве базового URL-адреса для клиента.
  3. Вызов API рабочих пространств списков и вывод ответа на консоль.

Пример кода C# для создания http-клиента и вызова API рабочих областей списка

// Create client 
HttpClient client = new HttpClient(); 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); 
string baseUrl = "https://api.fabric.microsoft.com/v1/"; 
client.BaseAddress = new Uri(baseUrl); 

// Call list workspaces API 
HttpResponseMessage response = await client.GetAsync("workspaces"); 
string responseBody = await response.Content.ReadAsStringAsync(); 
Console.WriteLine(responseBody); 

Полный пример кода консольного приложения C#

using Microsoft.Identity.Client; 
using System.Net.Http.Headers; 

#region parameters section 
string ClientId = "YourApplicationId";  
string Authority = "https://login.microsoftonline.com/organizations"; 
string RedirectURI = "http://localhost";  
#endregion 

#region Acquire a token for Fabric APIs 
// In this sample we acquire a token for Fabric service with the scopes Workspace.ReadWrite.All and Item.ReadWrite.All 
string[] scopes = new string[] { "https://api.fabric.microsoft.com/Workspace.ReadWrite.All https://api.fabric.microsoft.com/Item.ReadWrite.All" }; 

PublicClientApplicationBuilder PublicClientAppBuilder = 
        PublicClientApplicationBuilder.Create(ClientId) 
        .WithAuthority(Authority) 
        .WithRedirectUri(RedirectURI); 

IPublicClientApplication PublicClientApplication = PublicClientAppBuilder.Build(); 

AuthenticationResult result = await PublicClientApplication.AcquireTokenInteractive(scopes) 
        .ExecuteAsync() 
        .ConfigureAwait(false); 

Console.WriteLine(result.AccessToken); 
#endregion 

#region Create an HTTP client and call the Fabric APIs 
// Create client 
HttpClient client = new HttpClient(); 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); 
string baseUrl = "https://api.fabric.microsoft.com/v1/"; 
client.BaseAddress = new Uri(baseUrl); 

// Call list workspaces API 
HttpResponseMessage response = await client.GetAsync("workspaces"); 
string responseBody = await response.Content.ReadAsStringAsync(); 
Console.WriteLine(responseBody); 
#endregion