Authentifizieren eines Benutzers mit einem Identitätstoken für Exchange

Wichtig

Legacy-Exchange-Benutzeridentitätstoken und Rückruftoken werden im Oktober 2024 für alle Exchange Online Mandanten im Rahmen der Microsoft Secure Future Initiative deaktiviert, die Organisationen die Tools bietet, die für die Reaktion auf die aktuelle Bedrohungslandschaft erforderlich sind. Exchange-Benutzeridentitätstoken funktionieren weiterhin für lokale Exchange-Instanzen. Die Authentifizierung geschachtelter Apps ist der empfohlene Ansatz für token in Zukunft. Weitere Informationen finden Sie in unserem Blogbeitrag zur Authentifizierung geschachtelter Apps und älteren Exchange-Token.

Mithilfe von Exchange-Benutzeridentitätstoken kann Ihr Add-In einen Add-In-Benutzer eindeutig identifizieren. Durch Einrichten der Identität des Benutzers können Sie ein Authentifizierungsschema für einmaliges Anmelden (Single Sign-On, SSO) für Ihren Back-End-Dienst implementieren, mit dem Kunden, die Outlook-Add-Ins verwenden, eine Verbindung mit Ihrem Dienst herstellen können, ohne sich anzumelden. Weitere Informationen dazu, wann Sie diesen Tokentyp verwenden, finden Sie unter Exchange-Benutzeridentitätstoken. In diesem Artikel sehen wir uns eine vereinfachte Methode der Verwendung des Exchange-Benutzertokens zur Authentifizierung eines Benutzers bei Ihrem Back-End an.

Wichtig

Dies ist nur ein einfaches Beispiel für eine SSO-Implementierung. Wie immer, wenn es um Identität und Authentifizierung geht, müssen Sie sicherstellen, dass Ihr Code die Sicherheitsanforderungen Ihrer Organisation erfüllt.

Senden der Token-ID in jeder Anforderung

Der erste Schritt besteht darin, dass das Add-In das Exchange-Benutzeridentitätstoken vom Server abruft, indem GetUserIdentityTokenAsync aufgerufen wird. Das Add-In sendet dieses Token dann mit jeder Anforderung, die an Ihr Back-End gestellt wird. Dies kann in einer Kopfzeile oder als Teil des Anforderungstexts der Fall sein.

Überprüfen des Tokens

Das Back-End MUSS das Token überprüfen, bevor es dieses akzeptiert. Dies ist ein wichtiger Schritt, um sicherzustellen, dass das Token vom Exchange-Server des Benutzers ausgegeben wurde. Informationen zur Überprüfung von Exchange-Benutzeridentitätstoken finden Sie unter Überprüfen eines Exchange-Identitätstokens.

Nach dem Überprüfen und Decodieren sieht die Nutzlast des Tokens in etwa wie folgt aus:

{ 
    "aud" : "https://mailhost.contoso.com/IdentityTest.html",
    "iss" : "00000002-0000-0ff1-ce00-000000000000@mailhost.contoso.com",
    "nbf" : "1505749527",
    "exp" : "1505778327",
    "appctxsender":"00000002-0000-0ff1-ce00-000000000000@mailhost.context.com",
    "isbrowserhostedapp":"true",
    "appctx" : {
        "msexchuid" : "53e925fa-76ba-45e1-be0f-4ef08b59d389",
        "version" : "ExIdTok.V1",
        "amurl" : "https://mailhost.contoso.com:443/autodiscover/metadata/json/1"
    }
}

Zuordnen des Tokens zu einem Benutzer in Ihrem Back-End

Der Back-End-Dienst kann eine eindeutige Benutzer-ID aus dem Token berechnen und diese einem Benutzer in Ihrem internen Benutzersystem zuordnen. Wenn Sie beispielsweise eine Datenbank zum Speichern von Benutzern verwenden, können Sie diese eindeutige ID dem Datensatz des Benutzers in Ihrer Datenbank hinzufügen.

Generieren einer eindeutigen ID

Verwenden Sie eine Kombination der msexchuid Eigenschaften und amurl . Sie können zum Beispiel die beiden Werte verketten und eine base64-codierte Zeichenfolge generieren. Dieser Wert kann jedes Mal zuverlässig aus dem Token generiert werden, Sie können also ein Exchange-Benutzeridentitätstoken wieder dem Benutzer in Ihrem System zuordnen.

Überprüfen des Benutzers

Nachdem Sie die eindeutige ID generiert haben, besteht der nächste Schritt darin, anhand dieser zugewiesenen ID in Ihrem System nach einem Benutzer zu suchen.

  • Wenn der Benutzer gefunden wird, behandelt das Back-End die Anforderung als authentifiziert, und die Anforderung kann fortgesetzt werden.

  • Wenn der Benutzer nicht gefunden wird, gibt das Back-End einen Fehler zurück, der angibt, dass der Benutzer sich anmelden muss. Das Add-In fordert den Benutzer dann auf, sich beim Back-End mithilfe der vorhandenen Authentifizierungsmethode anzumelden. Nachdem der Benutzer authentifiziert wurde, wird das Exchange-Benutzeridentitätstoken mit den Benutzerauthentifizierungsdetails übermittelt. Das Back-End kann dann den Datensatz des Benutzers in Ihrem System mit der eindeutigen ID aktualisieren.