Ich versuche, ein OAuth-Token zu validieren, das mein serverseitiger Code empfängt.Validieren Exchange-OAuth-Token
Der serverseitige Code verwendet die Exchange-verwaltete API und das Token, das gesendet wird, wurde von meinem Add-In aus Exchange mithilfe der Office.context.mailbox.getUserIdentityTokenAsync(callback)
-Methode in der Outlook-API abgerufen.
Ich laufe in ein Problem, wenn ich rufe die token.Validate(uri)
Methode:
var token = (AppIdentityToken)AuthToken.Parse(rawToken);
token.Validate(new Uri(hostUri));
Nach dem documentation:
hostUri: Der vollständig qualifizierte URI auf die Seite in Ihrem Outlook-Add -in dem getUserIdentityTokenAsync aufgerufen.
Um die hostUri innerhalb der Seite in dem Add-In zu erhalten, die ich benutze:
var hostUri = location.href.split('?')[0];
jedoch, dass vorgesehen URI, ein Fehler verursacht, wenn das Token zu validieren versucht:
Ich bin verwirrt, warum es den URI von wo das Add-In verwendet wird statt den öffentlichen Schlüssel des Identity Providers zu verwenden, der das Token (dh Exchange) ausgestellt hat.
Ja, es stellt sich heraus, dass die Token-Validierungsbibliothek im 'amurl'-Feld nachschaut, wo sie den öffentlichen Schlüssel zur Validierung des Tokens erhalten kann. In unserem Fall haben wir den Austausch in einer Test-VM mit einem erfundenen Domainnamen eingerichtet, so dass wir ihn nicht erreichen konnten. Sobald das behoben war (Datensatz zur Hostdatei hinzufügen), konnte er den öffentlichen Schlüssel und das Validierungs-Token abrufen . –