之前介绍过ADFS 单点登录,这次介绍Oauth的单点登录。有时候坚持OCS 是Oauth 和 S2S的简称。
SharePoint Oauth和服务器到服务器(S2S)身份验证概述(Oauth and server-to-server (S2S) authentication overview)
注:感谢 张峰 对错误之处的建议,已经更改
打开授权和服务器到服务器身份验证
开放授权(OAuth)2.0是一种开放的授权标准,是用户获得对资源的有限访问的一种方式; 例如,一个网站,通过使用他们的Microsoft,Google,Facebook或Twitter帐户访问网站,而无需与网站提供商(资源所有者)共享密码。
服务器到服务器(S2S)身份验证使用OAuth协议及其令牌交换系统。在SharePoint中,S2S身份验证允许S2S能够代表用户访问和请求彼此资源的服务器。
用于SharePoint混合功能的S2S身份验证协议与用户身份验证分开。您不应将SharePoint用户的S2Sit混淆为用户登录身份验证协议。
通过了解服务器到服务器身份验证的软件应用程序,可以实现跨服务器资源共享功能。在SharePoint混合中,此跨服务器共享位于本地SharePoint场和SharePoint Online之间。这是云搜索服务应用程序,混合站点功能和混合业务连接服务所必需的。
- SharePoint 和Oauth 授权流程图:
关于图的解释说明:
1. 用户从 SharePoint 启动 SharePoint add-in。add-in的设计决定完成此步骤的方式。
- 如果add-in设计为在add-in部件(本质上是关于 IFRAME 的包装程序)中显示远程 Web 应用程序(中 Contoso.com 上),那么启动add-in 就是表示导航到包含add-in 部件的 SharePoint 页面。 (如果用户尚未登录,SharePoint 将提示用户登录。)SharePoint 处理页面并检测到页面上有一个 Contoso.com 应用程序中的组件。
- 如果add-in 设计为在浏览器使用完整页面,用户可通过在 SharePoint 网站的“网站内容”**** 页面上选择add-in 磁贴来启动它。 (一种变体是add-in 包含启动远程组件的自定义菜单或功能区项目时的情况。)
2.不论add-in如何启动,SharePoint 必须获取可以发送到 Contoso.com 应用程序的上下文令牌,因此它要求 ACS 创建包含 SharePoint 上下文相关信息的上下文令牌,其中包括当前用户、远程应用程序 URL 和其他信息。 上下文令牌还包含加密刷新令牌。
3.ACS 借助使用 Contoso.com add-in 密码的算法签署上下文令牌,并将其返回到 SharePoint。 只有 ACS 和 Contoso.com add-in 知道密码。
4. 如果在add-in 部件中显示 Contoso.com 应用程序,SharePoint 会呈现托管add-in部件的页面,并将上下文令牌添加到 URL 中,add-in 部件中的 IFRAME 会调用该 URL 来获取其内容。 如果 Contoso.com 应用程序是完整页面,SharePoint 会将浏览器重定向到 Contoso.com,并包括上下文令牌作为重定向响应的一部分。