2012-11-21 17 views
44

Piszę usługę WCF hostowaną na Azure jako (PaaS). Usługa z kolei musi porozmawiać z Sharepoint 2013 Online/Office 365.Autoryzacja do usługi Office 365/Sharepoint online

Szukałem przy użyciu modelu obiektu klienta Sharepoint rozmawiać z nim, ale wciąż pojawia się następujący błąd: "Serwer zdalny zwrócił błąd: (403) Forbidden " Kiedy logujemy się, aby uzyskać dostęp do instancji SharePoint za pośrednictwem przeglądarki, zazwyczaj przenosimy Cię do https://login.microsoftonline.com/login.srf, abyś mógł zalogować się przy użyciu identyfikatora Live ID. Problem polega na tym, że używamy konta federacyjnego, a nie identyfikatora Live Id, a zatem ponownie przekierowujemy do strony adfs, aby się zalogować. Sprawdziłem przykład kodu pod adresem http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx, który korzysta z uwierzytelniania opartego na roszczeniach, ale zawsze kończy się niepowodzeniem z komunikatem "Uwierzytelnienie nie powiodło się" podczas próby odzyskania tokenu Samla.

Jeśli rozumiem to poprawnie. Jednym ze sposobów, aby to zrobić, jest uzyskanie tokena Samla, przekazanie go do SPO, które z kolei zwróci dwa pliki cookie, które muszę uwzględnić w żądaniach utworzonych za pomocą modelu obiektu klienta. Problem polega na tym, że nie znajduję żadnych właściwych przykładów uwierzytelniania za pomocą konta Federated w języku C#.

Czy ktoś może wskazać mi właściwy kierunek, w jaki sposób mogę kontynuować autoryzowanie mojej usługi WCF do rozmowy z SharePoint.

Przepraszamy, jeśli znajduje się on na niewłaściwym forum. Nie jestem do końca pewien, czy jest to problem Azure, czy po prostu SharePoint, ponieważ jestem całkiem nowy w obu technologiach.

+2

Miałem to samo pytanie na Stackoverflow. Teraz jest ostatecznie rozwiązany: http://stackoverflow.com/questions/11295953/claim-auth-from-adfs Napisałem też o tym blogu i stworzyłem repozytorium GitHub z projektem wstążki, aby zacząć. Mam nadzieję, że ci to pomoże: http://jwillmer.de/blog/2013/01/04/sharepoint-online-with-adfs-authentication/ – jwillmer

+0

Ja też wpadłem na to samo - @jwillmer mam zmodyfikowaną wersję Twój kod nie zależy od win8 \ .net 4.5 ... Daj mi znać, jeśli chcesz zaakceptować łatkę lub inną wersję github. –

+0

@TravisSharp Jestem szczęśliwy, że mogę przyjąć Twoją prośbę o pociągnięcie. Otwórz dla ulepszeń! ;-) – jwillmer

Odpowiedz

0

Witam na wszelki wypadek, że kilka dni temu zarejestrowaliśmy się jako reseller Office365, musiałem nauczyć się jednej bolesnej lekcji: Autor. token otrzymany z sharepoint jest ważny tylko przez 2 godziny! Może to się zmieni w Sharepoint 15 Kto wie ...

myślałem, że to może być cenną wskazówką, ponieważ nie wiadomo, obejście ...

+0

Wiem, że minęło trochę czasu, ale czy jest tam jakaś oficjalna strona: MSDN lub podobne o tym wspominające? – Akash

0

Czy próbowali biorąc przykładowy kod Wictor i tylko zastępując logowania. srf URL z punktem końcowym logowania do ADFS?

Trzymaj skrzypka otwartego podczas wypróbowywania tego i sprawdzaj żądania/odpowiedzi za każdym razem, prawdopodobnie zobaczysz więcej szczegółów, dlaczego rzeczy nie pracują w ciele odpowiedzi, które C# ukrywa w swoim modelu obiektowym.

Sprawdź ten wpis na blogu też, w jaki sposób dostać token uwierzytelniający z ADFS używając czegokolwiek gdzie można utworzyć kopertę 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

Wiem, że to stary post, ale przy użyciu programu SharePoint Online za pośrednictwem aplikacji bez korzystania z Głównego App może stanowić naruszenie umowy licencyjnej. Powinieneś używać prawdziwej OAuth i klasy TokenHelper, która jest częścią zestawu SDK do prawidłowego korzystania z modelu aplikacji.

0

Użyj witryny SharePoint Office 365, aby utworzyć środowisko, w którym można używać ACS w celu ustanowienia zaufania między aplikacją hostowaną przez dostawcę a lokalną farmą programu SharePoint 2013, tak jak w przypadku tworzenia aplikacji dla Office 365 Witryna programu SharePoint. Aby uzyskać dodatkowe informacje, można przejść do poniższego łącza: http://msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx

1

Wypróbuj poniższy artykuł na blogu. Możliwość dostępu do Office 365 API została właśnie ogłoszona w zeszłym miesiącu, a możliwość wywoływania tego z usługi internetowej jest całkiem nowa. This article to dobry samouczek na ten temat.

Powiązane problemy