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


Поставщик прокси

Предостережение

Набор средств Microsoft Graph не рекомендуется использовать. Период выхода на пенсию начинается 1 сентября 2025 года, а полный выход на пенсию запланирован на 28 августа 2026 года. Разработчикам следует перейти на использование пакетов SDK для Microsoft Graph или других поддерживаемых средств Microsoft Graph для создания веб-интерфейсов. Дополнительные сведения см. в объявлении об устаревании.

При использовании поставщика прокси-сервера вы можете использовать серверную проверку подлинности (например, поток Auth2.0 On-Behalf-Of) для включения microsoft Graph Toolkit путем маршрутизации всех вызовов к Microsoft Graph через собственную серверную часть.

Серверная служба должна предоставлять API, который вызывается для каждого вызова Microsoft Graph. Например, когда компонент пытается получить ресурс, ProxyProvider вместо этого вызывает базовый API и добавляет этот ресурс.

https://graph.microsoft.com/v1.0/me => https://myurl.com/api/GraphProxy/v1.0/me

Затем реализация API должна вызвать Microsoft Graph от имени пользователя и вернуть результаты компоненту.

Пример реализации см. в примере ASP.NET MVC.

Дополнительные сведения о поставщиках проверки подлинности см. в статье Поставщики.

Начало работы

Поставщик прокси-сервера можно инициализировать с помощью HTML или JavaScript. Это следует делать только один раз для каждой страницы.

Инициализация на HTML-странице

Инициализация поставщика прокси-сервера в ФОРМАТЕ HTML — это самый простой способ определения собственного маршрута для пользовательской проверки подлинности на стороне сервера. Используйте компонент , mgt-proxy-provider чтобы задать url-адрес graph-proxy-url. Он задает определенный поставщик прокси-сервера в качестве глобального поставщика.

<mgt-proxy-provider
  graph-proxy-url="https://myurl.com/api/GraphProxy"
></mgt-proxy-provider>
Атрибут Описание
graph-proxy-url Базовый URL-адрес API прокси-сервера.

Инициализация в JavaScript

Дополнительные параметры можно предоставить, инициализировав поставщик в JavaScript.

import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";

Providers.globalProvider = new ProxyProvider(
  "https://myurl.com/api/GraphProxy"
);

При необходимости можно отправить дополнительные заголовки с каждым запросом в API прокси-сервера, используя необязательную функцию в качестве второго параметра в конструкторе.

import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";

Providers.globalProvider = new ProxyProvider(
  "https://myurl.com/api/GraphProxy",
  async () => {
    return {
      header: "value",
      header2: "value2",
    };
  }
);

Это полезно, когда необходимо передать маркеры или другие заголовки в серверную часть.

Если вы используете mgt-login компонент, следует также указать login функции и logout для поставщика:

import { Providers } from "@microsoft/mgt-element";
import { ProxyProvider } from "@microsoft/mgt-proxy-provider";

let provider = new ProxyProvider("https://myurl.com/api/GraphProxy");
provider.login = () => {
  /* will be called when "Sign In" is clicked */
};
provider.logout = () => {
  /* will be called when "Sign Out" is called */
};

Providers.globalProvider = provider;