Подтвердить что ты не робот

Авторизация в офис 365/Sharepoint онлайн

Я пишу службу WCF, размещенную в Azure как (PaaS). Служба, в свою очередь, должна поговорить с Sharepoint 2013 Online/Office 365.

Я искал использование объектной модели SharePoint, чтобы поговорить с ним, но продолжаю получать следующую ошибку: "Удаленный сервер ответил на ошибку: (403) Запрещено" Когда мы входим в систему для доступа к экземпляру SharePoint через браузер, вы обычно можете перейти к https://login.microsoftonline.com/login.srf, чтобы вы могли войти в систему, используя Live Id. Проблема в том, что мы используем федеративную учетную запись, а не Live Id, и поэтому снова перенаправляем сайт adfs для входа в систему. Я просмотрел образец кода в http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx, который использует проверку подлинности на основе утверждений, но это всегда терпит неудачу с сообщением "Ошибка аутентификации", когда пытаясь восстановить Самленский токен.

Если я это правильно понимаю. Один из способов сделать это - получить токен Saml, передать это SPO, который, в свою очередь, вернет два файла cookie, которые мне нужно включить в запросы, сделанные с объектной моделью клиента. Проблема в том, что я не нахожу подходящих примеров того, как аутентифицироваться с помощью федеративной учетной записи на С#.

Может ли кто-нибудь указать мне в правильном направлении, как я могу продолжить авторизацию службы WCF, чтобы поговорить с SharePoint.

Извините, если это неправильный форум. Я не совсем уверен, является ли это проблемой Azure или просто SharePoint, поскольку я довольно новичок в обеих технологиях.

4b9b3361

Ответ 1

Попробуйте следующую статью в блоге. Возможность доступа к Office 365 API была объявлена ​​только в прошлом месяце, и возможность вызова этого из вашего веб-сервиса довольно новая. Эта статья является хорошим учебным пособием по этому вопросу.

Ответ 2

Привет, на всякий случай, когда мы зарегистрировались как реселлер Office365 несколько дней назад, мне пришлось изучить один больной лимит: auth. токен, который вы получаете от sharepoint, действителен только в течение 2 часов! Возможно, это изменится в Sharepoint 15, который знает...

Я думал, что это может быть ценным намеком, потому что неизвестного обходного пути нет...

Ответ 3

Пробовали ли вы использовать код примера Wictor и просто заменили URL login.srf своей конечной точкой входа в ADFS?

Держите скрипт открытым, когда вы попробуете это, и каждый раз проверяйте запросы/ответы, вы, вероятно, увидите более подробную информацию о том, почему вещи не работают в теле ответа, которые С# скрывает в своей объектной модели.

Также просмотрите это сообщение в блоге о том, как получить токен auth из ADFS, используя что-либо, где вы можете создать конверт 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/

Ответ 4

Я знаю, что это старый пост, но использование SharePoint Online через приложение без использования принципала приложения может быть нарушением вашего лицензионного соглашения. Вы должны использовать истинный OAuth и класс TokenHelper, который является частью SDK, чтобы правильно использовать модель приложения.

Ответ 5

Используйте сайт Office 365 SharePoint для создания среды, в которой вы можете использовать ACS для установления доверия между приложением, размещенным провайдером, и локальной фермой SharePoint 2013, так же, как если бы вы разрабатывали приложения для Office 365 SharePoint сайт. Вы можете посетить следующую ссылку для дальнейшего понимания: http://msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx

Ответ 6

Я получал 403, пытаясь сделать подобное с объектной моделью SharePoint. Все, что я должен был сделать, чтобы исправить это, это включить пользовательский агент.

Ответ здесь Использование WebRequest для получения файлов cookie для автоматического входа в Sharepoint Online, получения ошибок varour

Надеюсь, что это поможет.