无需身份验证即可访问Sharepoint Web服务

时间:2009-08-11 15:15:18

标签: sharepoint moss wss

是否可以在不进行身份验证的情况下访问sharepoint Web服务?如果你不能这样做,你可以想办法解决这个问题,例如在中间使用公开帐户为你打开一个开放服务。

2 个答案:

答案 0 :(得分:8)

约翰,

您尝试访问相关网络服务的Web应用程序的安全模型将驱动您是否可以匿名访问该服务。如果您尝试通过启用了匿名访问的Web应用程序访问Web服务,那么您将能够访问Web服务。继续在匿名网站上尝试此操作(如果有的话):http://yoursitehere/_vti_bin/lists.asmx。您将获得友好的服务页面,无需验证。

这是一个问题:一旦你遍历Web服务层,你就有了另一层安全性来处理。 SharePoint本身将要像通常那样通过Web服务检查访问权限,因此除非您尝试操作或尝试访问匿名用户允许的数据,否则您将被阻止。

您有一些选择:

  1. 只需确保您所做的一切都是匿名的。这听起来很容易,但除了最简单直接的操作之外,其他任何事情都很难。大多数组织也不关心在这种程度上开放。

  2. 如果您控制调用Web服务的代码,则可以将凭据附加到Web服务请求。我建议从这里开始,因为它会让事情变得更容易很多比试图把一切都打开更容易。将凭证附加到Web服务代理(例如,http://msdn.microsoft.com/en-us/security/cc178918.aspx

  3. 存在大量示例
  4. 最后,您可以编写自己的Web服务来包装感兴趣的SharePoint Web服务(或服务)。您可以允许匿名访问您的Web服务,然后在您自己的服务中采用适当的安全上下文来访问具有所需权限级别的SharePoint。

  5. 我希望这有帮助!

    • 肖恩

答案 1 :(得分:2)

我认为你不能,webservices执行的大多数操作都需要一个具有正确权限集的显式用户。如果两个站点都是内部站点,则您的选项可能包括

  • 使用自动NTLM身份验证,为完整的Authenticated Users组提供必要的acecss。使用IE或FireFox凭据的正确扩展将自动传递而无需用户提示。您的里程可能会有所不同。

  • 在对Web服务的调用中明确地将正确的凭据传递给默认用户 从那个其他网站。

  • 如果您觉得有创意,here是来自Reza Alirezaei的博客,他将完成将匿名用户映射到特定帐户的步骤。如果您设法为该帐户授予适当的权限,那么您就在那里。但不是为了胆小的人。