Autorisation à Office 365 / Sharepoint online
j'ai écrit un service WCF qui est hébergé dans Azure en tant que (PaaS). Le service à son tour doit parler à Sharepoint 2013 Online / Office 365.
je cherchais à utiliser le modèle D'objet Client Sharepoint pour lui parler, mais je continue à avoir l'erreur suivante: "le serveur distant a renvoyé une erreur: (403) Forbidden" Lorsque nous nous connectons pour accéder à L'instance SharePoint par le biais d'un navigateur, cela vous amène généralement à https://login.microsoftonline.com/login.srf pour que vous puissiez vous connecter en utilisant un Live Id. Le problème est que nous utilisons un compte fédéré et non un identifiant en direct, et que nous sommes donc redirigés vers un site adfs pour nous connecter . J'ai regardé un échantillon de code à http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx qui utilise une authentification basée sur des revendications, mais qui échoue toujours avec un message" authentification échouée " lorsqu'on essaie de récupérer un jeton Saml.
Si je comprends bien. Une façon de faire ceci est d'obtenir le Token Saml, passer ceci à SPO, qui retournera à son tour deux cookies que je dois inclure dans les requêtes faites avec le modèle D'objet Client. Le problème est que je ne trouve pas d'exemples appropriés sur la façon d'authentifier en utilisant le compte fédéré dans C#.
quelqu'un Peut me pointer dans la bonne direction, à savoir comment je pourrais procéder autoriser mon service WCF pour parler à SharePoint.
Désolé si c'est dans le mauvais forum. Je ne suis pas vraiment sûr que ce soit un problème D'Azur ou juste SharePoint car je suis assez nouveau pour les deux technologies.
6 réponses
essayez l'article de blog suivant. La possibilité d'accéder au bureau 365 API
vient d'être annoncée le mois dernier et la possibilité de l'appeler à partir de votre service web est assez nouvelle. Cet article est un bon tutoriel sur le sujet.
Salut juste dans le cas que nous avons enregistré comme un Office365 revendeur il y a quelques jours j'ai dû apprendre une pénible lession: auth. le jeton que vous recevez de sharepoint n'est valide que pour 2 heures! Peut-être que ça va changer dans Sharepoint 15 qui sait...
j'ai pensé que cela pourrait être un indice précieux parce qu'il n'y a pas de solution connue...
avez-vous essayé de prendre le code échantillon de Wictor et juste remplacer le login.URL srf avec votre terminal de connexion ADFS?
Garder fiddler ouverte que vous essayez ceci, et d'inspecter les requêtes/réponses à chaque fois, vous aurez probablement plus de détail pourquoi les choses ne fonctionnent pas dans le corps de la réponse que le C# cache loin dans son modèle d'objet.
consultez ce billet de blog aussi, sur la façon d'obtenir le jeton auth de ADFS en utilisant n'importe quoi où vous pouvez créer une enveloppe SOAP:
je sais que c'est un ancien post, mais utiliser SharePoint en ligne par le biais d'une application sans utiliser de Principal D'application peut être une violation de votre contrat de licence. Vous devez utiliser true OAuth et la classe TokenHelper qui fait partie du SDK pour utiliser le modèle app correctement.
utilisez un site SharePoint Office 365 pour créer un environnement où vous pouvez utiliser ACS pour établir la confiance entre une application hébergée par un fournisseur et une ferme SharePoint 2013 sur place, tout comme vous le feriez si vous développiez des applications pour un site SharePoint Office 365. Vous pouvez consulter le lien suivant pour plus de compréhension: http://msdn.microsoft.com/en-us/library/office/dn155905 (v = bureau.15).aspx
je recevais un 403 tout en essayant de faire similaire avec le modèle objet SharePoint. Tout ce que j'ai eu à faire pour le rectifier était d'inclure l'agent utilisateur.
J'espère que c'est utile.