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


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

При использовании поставщика прокси-сервера вы можете использовать серверную проверку подлинности (например, поток 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;