Доступ к веб-службам Sharepoint без аутентификации - PullRequest
3 голосов
/ 11 августа 2009

Можно ли получить доступ к веб-службе sharepoint без аутентификации? Если вы не можете сделать это напрямую, можете ли вы придумать какие-либо способы обойти это, например, иметь промежуточную открытую службу, которая выполняет аутентификацию для вас с помощью общедоступной учетной записи.

Ответы [ 2 ]

8 голосов
/ 11 августа 2009

Джон,

Модель безопасности веб-приложения, с помощью которого вы пытаетесь получить доступ к веб-службе, о которой идет речь, будет зависеть от того, сможете ли вы получить доступ к службе анонимно. Если вы пытаетесь получить доступ к веб-службе через веб-приложение, для которого включен анонимный доступ, вы сможете подключиться к веб-службе. Попробуйте это на анонимном сайте (если он у вас есть): http://yoursitehere/_vti_bin/lists.asmx. Вы получите страницу с дружественным сервисом, авторизация не требуется.

В этом и заключается подвох: как только вы пройдете слой веб-службы, у вас будет еще один уровень безопасности. Сама SharePoint захочет проверить разрешения для доступа через веб-службы, как обычно, поэтому, если вы не пытаетесь выполнить операцию или получить доступ к данным, разрешенным для анонимных пользователей, вы будете заблокированы. *

У вас есть несколько вариантов:

  1. Просто убедитесь, что все, что вы пытаетесь сделать, разрешено анонимно. Это может показаться простым, но на самом деле это может быть довольно сложно для всего, кроме самых простых и простых операций. Большинство организаций тоже не заботятся о том, чтобы открыть вещи до такой степени.

  2. Если вы управляете кодом, вызывающим веб-сервис, вы можете прикрепить учетные данные к запросу веб-сервиса. Я рекомендую начать здесь, так как это сделает вещи на 1017 * лот проще, чем пытаться все раскрыть. Существует множество примеров присоединения учетных данных к прокси-серверу веб-службы (например, http://msdn.microsoft.com/en-us/security/cc178918.aspx)

  3. Наконец, вы можете написать свой собственный веб-сервис, который оборачивает интересующий веб-сервис (или сервисы) SharePoint. Вы можете разрешить анонимный доступ к вашей веб-службе, а затем использовать соответствующий контекст безопасности в своей собственной службе для доступа к SharePoint с требуемым уровнем разрешений.

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

  • Sean
2 голосов
/ 11 августа 2009

Не думаю, что вы можете, для большинства действий, выполняемых веб-сервисами, нужен явный пользователь с правильными установленными разрешениями. Если оба сайта являются внутренними, ваши варианты могут включать

  • Используя автоматическую аутентификацию NTLM, дайте нужной команде полную группу аутентифицированных пользователей. Использование IE или соответствующих расширений учетных данных FireFox будет автоматически передано без запроса пользователя. Ваш пробег может отличаться.

  • Передача правильных учетных данных пользователю по умолчанию в явном виде при обращении к веб-службе с этого другого сайта.

  • Если вы чувствуете себя креативно, здесь - это блог от Reza Alirezaei, в котором он рассказывает, как анонимный пользователь подключается к определенной учетной записи. Если вам удастся предоставить этой учетной записи соответствующие разрешения, вы там. Но не для слабонервных.

...