代码之家  ›  专栏  ›  技术社区  ›  codebrane

来自不带用户的本机客户端的SharePoint REST API

  •  0
  • codebrane  · 技术社区  · 7 年前

    我了解如何使用交互式身份验证访问SharePoint REST API,即让计算机上的用户在webapp中键入用户名/密码。有没有办法让命令行应用程序访问API?例如,在没有用户干预的情况下连接和查询SharePoint列表?

    我在租户中注册了一个本机客户机,并拥有一个appid(没有app secret),但所有api调用都返回 401 Unauthorized 。我还尝试通过图形API访问,但是 403 Forbidden 。这两种方法都是使用租户注册的Web应用程序的初始客户端凭据流中的访问令牌,我希望这会起作用。

    似乎不可能只使用appid获得访问_令牌,因为流需要客户端机密。

    This 说:

    此类型的权限需要管理员同意,并且 可用于本机客户端应用程序

    这似乎没有意义,因为它需要管理员权限才能完成某些无法完成的任务。如果本地客户机无法访问API,则不清楚它们的用途。也许上面提到的是Web应用,而不是本地客户机,也就是说,管理员可以允许Web应用在没有用户上下文的情况下使用访问令牌进行连接。

    2 回复  |  直到 7 年前
        1
  •  0
  •   Razvan    7 年前

    关于从SharePoint获取令牌(使用SharePoint REST API),请参阅我对此文章的回答: https://stackoverflow.com/a/52582017/6445723

    机制基本上是相同的,您执行应用程序中描述的POST请求,并在FormDigestValue属性中获得答案。通过将该值放入x-requestDigest HTTP头,今后在所有API调用中使用该值。

    afaik对于本机客户机或其他Web应用程序的身份验证机制没有区别。有些库(如SharePointPNPJS)可以抽象出上面的其余调用,但它们做的几乎是相同的事情。

        2
  •  -2
  •   Vaseem AbdulSamad    7 年前

    您需要在身份验证提供程序中以明文形式发送基本身份验证凭据。转到管理中心(Central Admin)>>安全(Security)>>安全身份验证提供商(Security Authentication Providers)>>在右侧下拉列表中选择应用程序并单击默认值

    在声明身份验证类型中勾选“基本身份验证”

    推荐文章