【问题标题】:Sharepoint 2013 and Oauth 2.0Sharepoint 2013 和 Oauth 2.0
【发布时间】:2015-11-25 00:07:01
【问题描述】:

我需要澄清一下 Sharepoint 如何使用 Oauth 以及我可以/不能使用不记名令牌做什么。

我希望能够从 Sharepoint 检索不记名令牌,通过 javascript 跨域和/或设置 Sharepoint 以使用与我当前的 Oauth 服务器相同的机器密钥。

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

回顾:

  1. 我需要一个代码 sn-p 用于使用 Javascript、跨域和...从 Sharepoint 检索不记名令牌...

  2. 我需要了解如何使用 Oauth 2.0 为基于声明的不记名令牌共享相同的机器密钥

并澄清我要做什么:

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

【问题讨论】:

    标签: sharepoint oauth


    【解决方案1】:

    不记名代币的作用类似于货币,拥有代币的人就是合法所有者。这就是术语“持有者”(持有令牌的人)出现的原因。令牌主要仅依靠 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
     }
    );
    

    我从这里得到了答案: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 相同的机器密钥是困难的。

    对不起,如果我不太清楚,但如果您需要更多帮助,请回复此答案。我希望这对您有所帮助并享受您的一天!

    【讨论】:

    • 这无疑给了我一些方向。在将其标记为答案之前,我正在尝试它。我已经克服了理解 Oauth 和 REST 的困难......我只是想知道我对 Sharepoint 的选择。我正在阅读你给我的链接,现在。特别是带有您发布的脚本的那个。如果这就是我要找的,我会告诉你的。谢谢!
    • 欢迎您——我将尝试在第二个问题中找到您要查找的内容,但文档稀缺。希望对您有所帮助!
    • "为了回答你的第一个问题,我做了研究,发现你想要做什么。如果你想用 Java Script 编写它并使用跨域库,你不需要提供访问令牌。”澄清一下,跨域库只能从 Sharepoint 加载项中使用,而不是在外部使用。
    • 是的,抱歉——我一定误解了这一点并为此道歉。跨域库可从 Sharepoint 加载项获得,而不是在外部是正确的。对此感到抱歉。
    • 这给了我我需要的方向,所以,我会给你赏金。最终的答案是跨域库仅在加载项中可用。从外部通过 javascript 获取令牌非常复杂。最好的选择是通过加载项中的跨域脚本与 Sharepoint 交互,或者通过 c# 与服务器端对象交互。加载项似乎是实现简单性、可维护性和安全性的最佳方式。感谢您的意见!
    猜你喜欢
    • 2013-11-26
    • 2013-12-14
    • 2015-08-10
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多