web-dev-qa-db-de.com

Online-Autorisierung für Office 365/Sharepoint

Ich schreibe einen WCF-Dienst, der in Azure als (PaaS) gehostet wird. Der Dienst muss wiederum mit Sharepoint 2013 Online/Office 365 sprechen.

Ich habe über das Sharepoint Client-Objektmodell nachgefragt, um mit ihm zu sprechen, erhalte jedoch den folgenden Fehler: "Der Remote-Server hat einen Fehler zurückgegeben: (403) Verboten" Wenn wir uns anmelden, um über ein. Auf die SharePoint-Instanz zuzugreifen Browser führt Sie normalerweise zu https://login.microsoftonline.com/login.srf , damit Sie sich mit einer Live-ID anmelden können. Das Problem ist, dass wir ein föderiertes Konto und keine Live-ID verwenden und daher erneut auf eine adfs-Site umgeleitet werden, um sich anzumelden. Ich habe mir ein Codebeispiel unter http: //www.wictorwilen angesehen .se/Post/How-to-Active-Authentifizierung-to-Office-365-and-SharePoint-Online.aspx das die anspruchsbasierte Authentifizierung verwendet, dies schlägt jedoch beim Versuch mit der Meldung "Authentication Failed" fehl Saml Token abrufen.

Wenn ich das richtig verstanden habe. Eine Möglichkeit, dies zu erreichen, besteht darin, das Saml-Token zu erhalten, dieses an SPO zu übergeben, das wiederum zwei Cookies zurückgibt, die ich in die Anforderungen des Client-Objektmodells aufnehmen muss. Das Problem ist, dass ich keine richtigen Beispiele für die Authentifizierung mit dem Verbundkonto in C # finde.

Kann mir jemand die richtige Richtung weisen, wie ich meinen WCF-Dienst dazu autorisieren könnte, mit SharePoint zu sprechen.

Sorry wenn dies im falschen Forum ist. Ich bin mir nicht ganz sicher, ob es sich um ein Azure-Problem oder nur um SharePoint handelt, da ich für beide Technologien ziemlich neu bin.

45

Versuchen Sie den folgenden Blogartikel. Die Möglichkeit, auf das Office 365 API zuzugreifen, wurde vor kurzem angekündigt, und die Möglichkeit, dies über Ihren Webservice anrufen zu können, ist ziemlich neu. Dieser Artikel ist ein gutes Tutorial zu diesem Thema.

1
RimskyDon

Verwenden Sie eine Office 365 SharePoint-Website, um eine Umgebung zu erstellen, in der Sie mit ACS eine Vertrauensstellung zwischen einer vom Provider gehosteten App und einer lokalen SharePoint 2013-Farm herstellen können, genau wie bei der Entwicklung von Apps für eine Office 365 SharePoint-Website. Sie können den folgenden Link zum besseren Verständnis besuchen: http://msdn.Microsoft.com/en-us/library/office/dn155905(v=office.15).aspx

0
user3132148

Hallo, nur für den Fall, dass wir uns vor ein paar Tagen als Office365-Wiederverkäufer registriert hatten, musste ich eine schmerzhafte Lektion lernen: Die Autorin. Token, die Sie von Sharepoint erhalten, sind nur 2 Stunden gültig! Vielleicht ändert sich das in Sharepoint 15, wer weiß ... 

Ich dachte, das könnte ein wertvoller Hinweis sein, da es keine bekannte Problemumgehung gibt ...

0
Teyhouse

Ich habe einen 403 bekommen, als ich versuchte, das SharePoint-Objektmodell ähnlich zu machen. Alles was ich tun musste, um es zu korrigieren, war das User-Agent.

Antworten Sie hier Verwenden Sie WebRequest, um Cookies zu erhalten, um sich automatisch bei Sharepoint Online anzumelden, und erhalten Sie verschiedene Fehler

Hoffe es ist etwas Hilfe.

0
Dan

Ich weiß, dass dies ein alter Beitrag ist, aber die Verwendung von SharePoint Online über eine App ohne Verwendung eines App Principals kann einen Verstoß gegen Ihre Lizenzvereinbarung darstellen. Sie sollten true OAuth und die TokenHelper-Klasse verwenden, die Teil des SDK ist, um das App-Modell ordnungsgemäß zu verwenden.

0
Brian P

Haben Sie versucht, den Beispielcode von Wictor zu verwenden und nur die login.srf-URL durch Ihren ADFS-Anmeldeendpunkt zu ersetzen? 

Halten Sie den Fiddler offen, während Sie dies ausprobieren, und prüfen Sie die Anforderungen/Antworten jedes Mal. Sie werden wahrscheinlich mehr Details darüber erfahren, warum die Dinge nicht innerhalb des Antwortkörpers arbeiten, den C # im Objektmodell versteckt.

Lesen Sie auch diesen Blogbeitrag, um zu erfahren, wie Sie das Auth-Token von ADFS abrufen können. Verwenden Sie dabei alles, wo Sie einen SOAP -Umschlag erstellen können:

http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-Android-Java-node-js- oder eine beliebige Plattform-oder-Sprache/

0
James Love