在Intranet中处理SSO的最佳方法

时间:2015-08-20 14:58:43

标签: javascript asp.net ajax sharepoint

用例概述,我们想要实现的目标:

两个不同域上的两台服务器;仅可从内部(内部网)

获得

用户登录SharePoint,单击按钮 - 将调用CORS Ajax请求发送到api.mydomain.com。

因此,我想在没有其他登录提示(SSO)的情况下将用户从SharePoint授权到其他应用程序。例如,domain \ testuser登录到SharePoint,并在将javascript ajax发送到“其他应用程序”后,他将在那里通过“domain \ testuser”进行身份验证

问题是,我们应该使用哪种Web API身份验证?候选人很少:

  1. Kerberos - 但据我所知,它将要求最终用户配置我们的服务器 作为“受信任的网站”,在Firefox,IE / Chrome以及Chrome中的一些注册修改......也许有一种方法可以避免最终用户的这种复杂配置?
  2. OAuth2 - 虽然我不知道如何将它与ActiveDirectory一起使用
  3. 使用来自SharePoint的基于声明的身份验证 - 我们可以将来自STS的AJAX令牌放入其中,因此可以从JS获取令牌 - 这不是安全问题吗?
  4. Custom Auth(希望不惜一切代价避免这种情况)
  5. 你的想法?
  6. 我们无法使用ADFS,因为SharePoint 2013存在问题。

    你怎么看?哪个选项对我们和最终用户最好?

1 个答案:

答案 0 :(得分:0)

我使用了自定义OAuth2授权提供程序。

流速:

  1. 用户访问SharePoint
  2. SharePoint调用webApi / token OAuth2模拟当前用户
  3. WebApi返回令牌
  4. 令牌返回给用户,现在他可以将其用于api调用
  5. 仅允许对/ token的SharePoint调用(仅限SSL)
  6. 效果很好。