2017-08-08 1 views
0

J'ai une application EWS pour laquelle je suis supposé mettre en œuvre oauth pour accéder aux API gérées par EWS. J'essaie de suivre le code posté ici: Authenticate an EWS application by using OAuth mais ne pas être en mesure de comprendre comment obtenir les paramètres comme autorité/clientId/clientAppUri et serverName. J'ai enregistré mon application sur le portail Azur, mais je ne vois pas de telles informations liées à mon application. En outre, je ne vois aucune autorisation disant "Accéder aux boîtes aux lettres en tant qu'utilisateur connecté via les services Web Exchange" sur le portail de gestion Azur.Comment obtenir les paramètres oauth pour l'application EWS

Répondre

0

La question dans ce poste SO fait référence à un article MSDN qui a une section qui explique ce que ces valeurs doivent être:

La bibliothèque d'authentification AD Azure pour simplifier .NET obtenir un jeton d'authentification d'Azure Active Directory afin que vous puissiez utiliser le jeton dans votre application. Vous devez fournir quatre pièces de informations pour obtenir le jeton:

  1. L'URI du serveur jeton. Le serveur de jetons est l'autorité qui authentifie l'utilisateur et renvoie un jeton que votre application peut utiliser pour accéder à EWS.

  2. ID de client d'application créé lorsque vous avez enregistré votre application auprès d'Azure Active Directory.

  3. L'URI du client d'application a été créé lorsque vous avez enregistré votre application auprès d'Azure Active Directory.

  4. L'URI du serveur EWS et l'URI du point de terminaison EWS. Pour Exchange dans le cadre d'Office 365, ce sera https: ///ews/exchange.asmx.

Le code suivant montre comment utiliser l'authentification AD Azure Library pour obtenir un jeton d'authentification. Il suppose que les informations nécessaires pour faire la demande d'authentification est stockée dans fichier App.config de l'application

string authority = ConfigurationManager.AppSettings["authority"]; 
string clientID = ConfigurationManager.AppSettings["clientID"]; 
Uri clientAppUri = new Uri(ConfigurationManager.AppSettings["clientAppUri"]; 
string serverName = ConfigurationManager.AppSettings["serverName"]; 

AuthenticationContext authenticationContext = new AuthenticationContext(authority, false); 

AuthenticationResult authenticationResult = authenticationContext.AcquireToken(serverName, clientId, clientAppUri); 
+0

J'ai essayé la suite de l'article msdn mais toujours pas en mesure de comprendre l'url autorité, donc dans mon cas je sais maintenant que le nom de serveur est https://outlook.office365.com/ puisque c'est l'URL retournée dans le cadre de la découverte automatique de l'utilisateur. Mais je ne suis pas encore sûr de repos, pour l'autorité, devrais-je aller de l'avant et utiliser le même que mentionné dans l'article: http://login.windows.net/.onmicrosoft.com où devaccountname serait l'adresse e-mail de l'utilisateur? – tavier

+0

et pour l'application client uri je pense que je dois utiliser la même URL que j'ai entré lors de l'inscription de mon application sur azur. Je sais que l'ID du client est certain pour le moment :) – tavier

+0

La valeur de la clé Autorité doit être définie sur le domaine Azure (some_domain.onmicrosoft.com) de votre compte d'organisation. Ainsi, par exemple, si le compte d'organisation est [email protected] Ensuite, l'autorité est http://login.windows.net/contoso.onmicrosoft.com – MadDev