Proxy-Anbieter

Wenn Sie den Proxyanbieter verwenden, können Sie Ihre Back-End-Authentifizierung (z. B. Auth2.0 On-Behalf-Of-Flow) verwenden, um das Microsoft Graph-Toolkit zu nutzen, indem Sie alle Aufrufe an Microsoft Graph über Ihr eigenes Back-End weiterleiten.

Ihr Back-End-Dienst muss eine API verfügbar machen, die für jeden Aufruf von Microsoft Graph aufgerufen wird. Wenn beispielsweise eine Komponente versucht, eine Ressource abzurufen, ruft der ProxyProvider stattdessen Ihre Basis-API auf und fügt diese Ressource an.

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

Ihre API-Implementierung sollte dann Microsoft Graph im Namen des Benutzers aufrufen und die Ergebnisse an die Komponente zurückgeben.

Ein Implementierungsbeispiel finden Sie im ASP.NET MVC-Beispiel.

Weitere Informationen zu Authentifizierungsanbietern finden Sie unter Anbieter.

Erste Schritte

Sie können den Proxyanbieter in HTML oder JavaScript initialisieren. Sie sollten dies nur einmal pro Seite tun.

Initialisieren auf der HTML-Seite

Das Initialisieren des Proxyanbieters in HTML ist die einfachste Möglichkeit, eine eigene Route für die benutzerdefinierte serverseitige Authentifizierung zu definieren. Verwenden Sie die mgt-proxy-provider -Komponente, um graph-proxy-url festzulegen. Dadurch wird der definierte Proxyanbieter als globaler Anbieter festgelegt.

<mgt-proxy-provider
  graph-proxy-url="https://myurl.com/api/GraphProxy"
></mgt-proxy-provider>
Attribut Beschreibung
graph-proxy-url Basis-URL für die Proxy-API.

Initialisieren in JavaScript

Sie können weitere Optionen bereitstellen, indem Sie den Anbieter in JavaScript initialisieren.

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

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

Optional können Sie mit jeder Anforderung zusätzliche Header an Ihre Proxy-API senden, indem Sie eine optionale Funktion als zweiten Parameter im Konstruktor verwenden.

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

Dies ist nützlich, wenn Sie Token oder andere Header an Ihr Back-End übergeben müssen.

Wenn Sie die mgt-login -Komponente verwenden, sollten Sie auch die login Funktionen und logout für den Anbieter angeben:

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;