Proveedor de proxy

Cuando se usa el proveedor de proxy, puede usar la autenticación de back-end (como el flujo Auth2.0 en nombre de) para alimentar el kit de herramientas de Microsoft Graph mediante el enrutamiento de todas las llamadas a Microsoft Graph a través de su propio back-end.

El servicio back-end debe exponer una API a la que se llamará para cada llamada a Microsoft Graph. Por ejemplo, cuando un componente intenta obtener un recurso, ProxyProvider llamará en su lugar a la API base y anexará ese recurso.

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

A continuación, la implementación de la API debe llamar a Microsoft Graph en nombre del usuario y devolver los resultados al componente.

Para obtener un ejemplo de implementación, vea el ejemplo de ASP.NET MVC.

Para obtener más información sobre los proveedores de autenticación, consulte proveedores.

Introducción

Puede inicializar el proveedor de proxy en HTML o JavaScript. Debe hacerlo solo una vez por página.

Inicializar en la página HTML

Inicializar el proveedor de proxy en HTML es la manera más sencilla de definir su propia ruta para la autenticación personalizada del lado servidor. Use el mgt-proxy-provider componente para establecer graph-proxy-url. Esto establecerá el proveedor de proxy definido como proveedor global.

<mgt-proxy-provider
  graph-proxy-url="https://myurl.com/api/GraphProxy"
></mgt-proxy-provider>
Atributo Description
graph-proxy-url Dirección URL base de la API de proxy.

Inicialización en JavaScript

Puede proporcionar más opciones inicializando el proveedor en JavaScript.

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

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

Opcionalmente, puede enviar encabezados adicionales con cada solicitud a la API de proxy mediante una función opcional como segundo parámetro del constructor.

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",
    };
  }
);

Esto resulta útil cuando necesita pasar tokens u otros encabezados al back-end.

Si va a usar el mgt-login componente, también debe especificar las login funciones y logout para el proveedor:

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;