web-dev-qa-db-fra.com

Autorisation pour Office 365/Sharepoint en ligne

J'écris un service WCF hébergé dans Azure en tant que (PaaS). À son tour, le service doit parler à Sharepoint 2013 Online/Office 365.

Je cherchais à utiliser le modèle objet client Sharepoint pour lui parler, mais le message d'erreur suivant s'affiche: "Le serveur distant a renvoyé une erreur: (403) interdit" Lorsque nous nous connectons pour accéder à l'instance SharePoint via un navigateur vous amène généralement à https://login.microsoftonline.com/login.srf afin que vous puissiez vous connecter à l’aide d’un identifiant en direct. Le problème est que nous utilisons un compte fédéré et non un identifiant dynamique et que nous sommes donc redirigés vers un site adfs pour vous connecter. J'ai consulté un exemple de code sur http: //www.wictorwilen. .se/Publier/Authentification active auprès d'Office 365 et SharePoint-Online.aspx qui utilise l'authentification basée sur les revendications, mais cela échoue toujours avec un message "Authentication Failed" (Échec de l'authentification) lors de la tentative récupérer Saml Token.

Si j'ai bien compris. Une façon de procéder consiste à obtenir le jeton Saml et à le transmettre à SPO, qui retournera à son tour deux cookies que je dois inclure dans les demandes effectuées avec le modèle objet Client. Le problème est que je ne trouve aucun exemple approprié d'authentification avec le compte fédéré en C #.

Quelqu'un peut-il m'indiquer la meilleure direction à suivre pour autoriser mon service WCF à communiquer avec SharePoint?.

Désolé si c'est dans le mauvais forum. Je ne sais pas exactement s'il s'agit d'un problème Azure ou de SharePoint, car je connais assez bien les deux technologies.

45
Werner du Plessis

Essayez l'article de blog suivant. La possibilité d'accéder à Office 365 API vient d'être annoncée le mois dernier et la possibilité de l'appeler depuis votre service Web est plutôt nouvelle. Cet article est un bon tutoriel sur le sujet.

1
RimskyDon

Utilisez un site Office 365 SharePoint pour créer un environnement dans lequel vous pouvez utiliser ACS pour établir une relation de confiance entre une application hébergée par un fournisseur et une batterie de serveurs SharePoint 2013 sur site, exactement comme si vous développiez des applications pour un site Office 365 SharePoint. .____.] Vous pouvez visiter le lien suivant pour plus de compréhension: http://msdn.Microsoft.com/en-us/library/office/dn155905(v=office.15).aspx

0
user3132148

Bonjour, juste au cas où nous serions inscrits comme revendeur Office365 il y a quelques jours, je devais apprendre un détail douloureux: L'authentification. Le jeton que vous recevez de SharePoint n'est valable que pour 2 heures! Cela changera peut-être dans Sharepoint 15, qui sait ... 

J'ai pensé que cela pourrait être un indice précieux, car il n'existe aucune solution de contournement connue ...

0
Teyhouse

Je recevais un 403 en essayant de faire la même chose avec le modèle d'objet SharePoint. Tout ce que je devais faire pour le corriger était d'inclure l'agent utilisateur.

Answer here Utilisation de WebRequest pour obtenir les cookies permettant de se connecter automatiquement à Sharepoint Online, ce qui génère des erreurs de variété

J'espère que ça vous aidera.

0
Dan

Je sais que ceci est un ancien message, mais utiliser SharePoint Online par le biais d'une application sans utiliser d'App Principal peut constituer une violation de votre contrat de licence. Vous devez utiliser true OAuth et la classe TokenHelper faisant partie du SDK pour utiliser correctement le modèle d'application.

0
Brian P

Avez-vous essayé d'utiliser le code exemple de Wictor et de simplement remplacer l'URL login.srf par votre point de terminaison de connexion ADFS? 

Gardez le violon ouvert pendant que vous essayez ceci, et inspectez les demandes/réponses à chaque fois, vous verrez probablement plus de détails sur la raison pour laquelle les choses ne fonctionnent pas dans le corps de la réponse que C # cache dans son modèle d'objet.

Consultez également cet article de blog sur la façon d'obtenir le jeton d'authentification auprès d'ADFS à l'aide de tout élément permettant de créer une enveloppe SOAP:

http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-Android-Java-node-js- ou-une-plateforme-ou-une langue/

0
James Love