Sharepoint 2013和Oauth 2.0

Lee*_*rth 14 sharepoint oauth

我需要澄清Sharepoint如何使用Oauth以及我可以/不能使用持有者令牌.

我希望能够做的是从Sharepoint检索持有者令牌,通过javascript跨域和/或设置Sharepoint以使用与我当前的Oauth服务器相同的机器密钥.

我已经阅读了本文和其他几篇文章的大部分内容,但它让我在没有明确例子的情况下蹦蹦跳跳.:https: //msdn.microsoft.com/en-us/magazine/dn198245.aspx

概括:

  1. 我需要一个代码片段,用于使用Javascript,跨域和...从Sharepoint检索持有者令牌.

  2. 我需要与Oauth 2.0共享基于声明的承载令牌的相同机器密钥

并澄清我正在尝试做什么:

我需要读取/写入来自不同平台的Sharepoint列表,我想要一种标准的方法来实现它.REST似乎是要走的路.我们的应用程序正在使用RESTful服务和Oauth开发.我们已经用html和javascript覆盖了所有这些.我想了解如何继续使用我们当前的Oauth和REST模式在我们的html应用程序以及使用基于声明的承载令牌的Java和C#上创建安全的Sharepoint接口.如果我走在正确的轨道上,请确认并提供一些明确的示例/资源.如果有更好的方法来做到这一点,我会全力以赴.

mak*_*h81 2

不记名代币的工作原理类似于金钱,谁拥有代币,谁就是合法的所有者。这就是术语“持有者”(持有令牌的人)出现的原因。令牌主要仅依赖 SSL/TLS 来保证安全。任何“持有”访问令牌的人都将被允许进入。

为了回答你的第一个问题,我做了研究并发现了你想要做什么。如果您想用Java Script编写并使用跨域库,则不需要提供访问令牌。

var executor = new SP.RequestExecutor(appweburl);
executor.executeAsync(
  {
    url:
        appweburl +
        "/_api/SP.AppContextSite(@target)/web/lists?@target='" +
        hostweburl + "'",
    method: "GET",
    success: successHandler,
    error: errorHandler
 }
);
Run Code Online (Sandbox Code Playgroud)

我从这里得到了答案:https://msdn.microsoft.com/en-us/library/jj164022.aspx

对于你的第二个问题,我认为这是可能的,但不常见。不幸的是,我不喜欢使用与您当前的 Oauth 服务器相同的机器密钥,抱歉!如果我在不久的将来遇到这个问题,我一定会回答这个问题。

为了澄清你在做什么,是的,看起来你确实走在正确的轨道上。如果您的应用程序都使用 RESTful 服务,那么 REST 无疑是最佳选择。从同样的意义上讲,REST 可能更容易,因为它使用 HTTP 请求,这比 COBRA、RPC 或 SOAP 更容易。如果您希望更加安全,请使用 SOAP 之类的东西。虽然这是有争议的。

Microsoft 库可能是一些不错的资源。他们有很好的教程,尽管有些教程不太清楚。Microsoft 有关于 SOAP 和 REST 之间差异的文档,可在此处找到:https ://msdn.microsoft.com/en-us/magazine/dd942839.aspx 这是 Microsoft 库的链接: https: //msdn.microsoft.com/en -us/library/ms310241 OAuth、REST 等可能比较粗糙且难以理解。文档已经存在,但对于某些事情(例如使用与 OAuth 2.0 相同的机器密钥)来说很困难。

抱歉,如果我不太清楚,但如果您需要更多帮助,请回复此答案。我希望这对您有所帮助并祝您度过愉快的一天!