Wie soll ich feststellen, ob ein MSAL-Konto ein Exchange-basiertes E-Mail-System hat? (habe eine Ausnahme)

9

Ich arbeite mit MSAL und habe einen Benutzer, der den folgenden Fehler erhalten hat:

%Vor%

Der Code ist der standardmäßige MSAL-Democode:

%Vor%

Es stellt sich heraus, dass die Integration so ist:

  1. Es ist ein Hybrid-Exchange-System
  2. Einige Postfächer befinden sich in Office 365.
  3. Einige Postfächer befinden sich vor Ort.
  4. Andere Postfächer befinden sich auf einem Mail-System eines Drittanbieters (Intermedia) (das Verzeichnis wird über ein benutzerdefiniertes Skript mit AD Connect synchronisiert)

Frage

Wie sollte ich für die obige Situation defensiv codieren? (oder ähnliche hybride Situationen)?

    
CHI Coder 007 11.12.2016, 04:00
quelle

1 Antwort

1

Alte Frage, aber es scheint, dass andere darin gelandet sind.

Dies ist nicht wirklich ein MSAL-Problem, da das Token selbst hier nicht das Problem ist. Die Ausnahme stammt vom Aufruf von https://graph.microsoft.com/v1.0/me/messages , wenn der Benutzer kein zugängliches Postfach hat.

Sie können im Allgemeinen feststellen, welche Ressourcen einem user zugewiesen wurden, indem Sie sich die provisionedPlans Sammlung:

%Vor%

Dadurch werden Sammlungsressourcen zurückgegeben, die für den Benutzer bereitgestellt wurden. Dieser Benutzer hat beispielsweise keine Exchange-Bereitstellung:

%Vor%

Vergleichen Sie dies mit diesem Benutzer, für den ExCange bereitgestellt wurde:

%Vor%

Eine ähnliche Eigenschaft, die auch nützlich sein kann, ist assignedPlans Dadurch werden die Ressourcen zurückgegeben, die user zugewiesen wurden. Dies ist nützlich, um festzustellen, ob die Bereitstellung noch nicht erfolgt ist, oder um Ressourcen zu ermitteln, die nicht formell "bereitgestellt" werden, z. B. Microsoft Teams.

Das heißt, Sie sollten immer defensiv für die Möglichkeit kodieren, dass ein Benutzer keine Berechtigung für eine angeforderte Ressource hat oder nicht hat. Es gibt mehrere Szenarien, in denen eine Ressource aufgrund eines Ausfalls oder von Benutzerberechtigungen möglicherweise nicht verfügbar ist und die einzige sichere Methode zur Behebung dieser Szenarien darin besteht, mit einer soliden Ausnahmebehandlung zu stoppen.

    
Marc LaFleur 06.12.2017 17:49
quelle

Tags und Links