2012-11-21 24 views
44

Scrivo un servizio WCF ospitato in Azure come (PaaS). Il servizio a sua volta deve parlare con Sharepoint 2013 Online/Office 365.Autorizzazione a Office 365/Sharepoint online

Stavo cercando di utilizzare il modello a oggetti del client Sharepoint per parlare con esso, ma continuo a ricevere il seguente errore: "Il server remoto ha restituito un errore: (403) Vietato " Quando effettuiamo il login per accedere all'istanza di SharePoint tramite un browser, di solito vi porta a https://login.microsoftonline.com/login.srf in modo da poter accedere utilizzando un Live Id. Il problema è che stiamo usando un account federato e non un Live Id e quindi reindirizzare nuovamente ad un sito adfs per accedere. Ho esaminato un esempio di codice su http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx che utilizza l'autenticazione basata sulle attestazioni, ma ciò non riesce sempre con un messaggio "Autenticazione non riuscita" quando si tenta di recuperare il token Saml.

Se ho capito bene. Un modo per farlo è quello di ottenere il token Saml, passare questo a SPO, che a sua volta restituirà due cookie che devo includere nelle richieste fatte con il modello dell'oggetto Client. Il problema è che non sto trovando esempi appropriati su come autenticarsi usando l'account federato in C#.

Qualcuno mi può indirizzare nella giusta direzione, su come potrei procedere autorizzando il mio servizio WCF a parlare con SharePoint.

Siamo spiacenti se questo è nel forum sbagliato. Non sono esattamente sicuro che si tratti di un problema di Azure o solo di SharePoint poiché sono piuttosto nuovo per entrambe le tecnologie.

+2

Aveva la stessa domanda su Stackoverflow. Ora è finalmente risolto: http://stackoverflow.com/questions/11295953/claim-auth-from-adfs Ho anche scritto un post sul blog e ho creato un repo GitHub con un progetto su nastro per iniziare. Spero che possa aiutarti: http://jwillmer.de/blog/2013/01/04/sharepoint-online-with-adfs-authentication/ – jwillmer

+0

Mi sono imbattuto nella stessa cosa - @jwillmer ho una versione modificata di il tuo codice che non dipende da win8 \ .net 4.5 ... Fammi sapere se desideri accettare una patch o un'altra versione per github. –

+0

@TravisSharp Sono felice di accettare la tua richiesta di pull. Aperto per miglioramenti! ;-) – jwillmer

risposta

0

Salve nel caso in cui ci siamo registrati come rivenditori Office365 pochi giorni fa ho dovuto imparare una dolorosa conferenza: l'auth. il token che ottieni da sharepoint è valido solo per 2 ore! Forse questo cambierà in Sharepoint 15 chissà ...

Ho pensato che questo potrebbe essere un indizio prezioso perché non v'è alcuna soluzione nota ...

+0

So che è da un po ', ma c'è qualche pagina ufficiale: MSDN o simile a menzionare questo? – Akash

0

Hai provato di prendere il codice di esempio di Wictor e solo sostituendo il login. URL srf con l'endpoint di accesso ADFS?

Tieni aperto il violinista mentre provi e ispezioni ogni volta le richieste/risposte, probabilmente vedrai più dettagli sul motivo per cui le cose non funzionano all'interno del corpo della risposta che C# si nasconde nel suo modello a oggetti.

Dai un'occhiata a questo post sul blog anche su come ottenere il token di autenticazione da ADFS utilizzare qualsiasi cosa in cui è possibile creare una busta SOAP:

http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-android-java-node-js-or-any-platform-or-language/

0

So che questo è un vecchio post, ma utilizzando SharePoint Online tramite un'app senza l'utilizzo di un'app l'autorità può costituire una violazione del contratto di licenza. Dovresti utilizzare OAuth vero e la classe TokenHelper che fa parte dell'SDK per utilizzare correttamente il modello di app.

0

Utilizzare un sito di SharePoint di Office 365 per creare un ambiente in cui è possibile utilizzare ACS per stabilire la fiducia tra un'app ospitata dal provider e una farm SharePoint 2013 locale, proprio come si farebbe se si sviluppassero app per Office 365 Sito di SharePoint È possibile visitare il seguente link per ulteriori informazioni: http://msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx

1

Provare il seguente articolo del blog. La possibilità di accedere all'ufficio 365 API è stata appena annunciata il mese scorso e la possibilità di chiamare questo dal tuo servizio web è piuttosto nuova. This article è un buon tutorial sull'argomento.

Problemi correlati