Innenleben des Exchange-Identitätstokens

Das Exchange-Benutzeridentitätstoken, das von der getUserIdentityTokenAsync-Methode zurückgegeben wird, bietet die Möglichkeit, dass Ihr Add-In-Code die Identität des Benutzers mit Aufrufen Ihres Back-End-Diensts einschließen kann. In diesem Artikel werden das Format und die Inhalte des Tokens erläutert.

Was ist ein Identitätstoken?

Ein Exchange-Benutzeridentitätstoken ist eine base64-codierte Zeichenfolge, die vom Exchange-Server signiert wird, von dem diese gesendet wurde. Das Token ist nicht verschlüsselt, und der öffentliche Schlüssel, den Sie zum Validieren der Signatur verwenden, wird auf dem Exchange-Server gespeichert, der das Token ausgegeben hat. Das Token besteht aus drei Teilen: einer Kopfzeile, einer Nutzlast und einer Signatur. In der Tokenzeichenfolge sind die Teile zur besseren Aufteilung des Tokens durch einen Punkt (.) voneinander getrennt.

Exchange verwendet das JSON-Webtokenformat (JWT) für das Identitätstoken. Informationen zu JWT-Token finden Sie unter RFC 7519 JSON-Webtoken (JWT).

Identitätstokenheader

Der Header stellt Informationen zum Format und Signaturinformationen des Tokens bereit. Im folgenden Beispiel wird gezeigt, wie der Header des Tokens aussieht.

{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "Un6V7lYN-rMgaCoFSTO5z707X-4"
}

In der folgenden Tabelle werden die Bestandteile des Tokenheaders beschrieben.

Anspruch Wert Beschreibung
typ JWT Identifiziert das Token als JSON-Webtoken. Alle Identitätstoken, die von Exchange-Server bereitgestellt werden, sind JWT-Token.
alg RS256 Der Hashalgorithmus, der zum Erstellen der Signatur verwendet wird. Alle vom Exchange-Server bereitgestellten Token verwenden den Hashalgorithmus „ RSASSA-PKCS1-v1_5 with SHA-256“.
x5t Zertifikatfingerabdruck Der X.509-Fingerabdruck des Tokens.

Identitätstokenlast

Die Last enthält die Authentifizierungsansprüche, mit denen das E-Mail-Konto und der Exchange-Server, der das Token gesendet hat, identifiziert werden. Das folgende Beispiel veranschaulicht den Abschnitt für die Last.

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

In der folgenden Tabelle werden die Bestandteile der Identitätstokenlast beschrieben.

Anspruch Beschreibung
aud Die URL des Add-Ins, die das Token angefordert hat. Ein Token ist nur gültig, wenn es über das Add-In gesendet wird, das im Browser des Clients ausgeführt wird. Wenn das Add-In das Office-Add-Ins-Manifestschema v1.1 verwendet, ist diese URL die URL, die im ersten SourceLocation-Element unter dem Formattyp ItemRead oder ItemEdit angegeben wird, je nachdem, welches zuerst als Teil des Elements FormSettings im Add-In-Manifest auftritt.
iss Ein eindeutiger Bezeichner für den Exchange-Server, der das Token ausgestellt hat. Alle Token, die von diesem Exchange-Server ausgestellt wurden, denselben Bezeichner.
nbf Datum und Uhrzeit, ab dem bzw. der das Token gültig ist. Der Wert ist die Anzahl von Sekunden seit 1. Januar 1970.
exp Datum und Uhrzeit, bis zu dem bzw. der das Token gültig ist. Der Wert ist die Anzahl von Sekunden seit 1. Januar 1970.
appctxsender Ein eindeutiger Bezeichner für den Exchange-Server, der den Anwendungskontext gesendet hat.
isbrowserhostedapp Gibt an, ob das Add-In in einem Browser gehostet wird.
appctx Der Anwendungskontext für das Token.

Die Informationen im appctx-Anspruch stellt den eindeutigen Bezeichner für das Konto und den Speicherort des öffentlichen Schlüssels bereit, das bzw. der zum Anmelden des Tokens verwendet wird. Die folgende Tabelle enthält die Teile des appctx-Elements.

Anwendungskontexteigenschaft Beschreibung
msexchuid Ein eindeutiger Bezeichner für das E-Mail-Konto und den Exchange-Server.
version Die Versionsnummer des Formulars. Der Wert ist für alle von Exchange bereitgestellten Token ExIdTok.V1.
amurl Die URL des Dokuments mit den Authentifizierungsmetadaten, das den öffentlichen Schlüssel des zum Signieren des Tokens verwendeten X.509-Zertifikats enthält. Weitere Informationen zum Verwenden des Dokuments mit den Authentifizierungsmetadaten finden Sie unter Überprüfen eines Exchange-Identitätstokens.

Identitätstokensignatur

Die Signatur wird erstellt durch das Hashing der Header- und Lastabschnitte mit dem im Header angegebenen Algorithmus und mithilfe des selbstsignierten X509-Zertifikats, das sich auf dem Server in dem für die Last angegebenen Speicherort befindet. Ihr Webdienst kann diese Signatur überprüfen, um sicherzustellen, dass das Identitätstoken von dem Server stammt, an den es gesendet werden soll.

Zusätzliche Ressourcen

Ein Beispiel, dass das Exchange-Benutzeridentitätstoken analysiert, finden Sie unter Outlook-hinzufügen-In-Token-Viewer.