尽管微软给我们提供了认证的API,不过在实际开发中,我们还是经常需要用到认证所需的Token的。本篇文章就介绍如何获取SharePoint Online(O365)的认证Token。

这里我们可以用Java,C#,C/C++等一切语言来实现。JavaScript除外,因为涉及到跨域的问题。

一、获取Security Token。

通过post方式访问 [https://login.microsoftonline.com/extSTS.srf],其中请求正文为如下内容。

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"xmlns:a="http://www.w3.org/2005/08/addressing"xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><s:Header><a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">https://login.microsoftonline.com/extSTS.srf</a:To><o:Security s:mustUnderstand="1"xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><o:UsernameToken><o:Username>[username]</o:Username><o:Password>[password]</o:Password></o:UsernameToken></o:Security></s:Header><s:Body><t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"><a:EndpointReference><a:Address>[endpoint]</a:Address></a:EndpointReference></wsp:AppliesTo><t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType><t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType></t:RequestSecurityToken></s:Body>
</s:Envelope>

在PostMan中的演示截图:

相应报文中会返回一个 security token,用于获取Access Token,如下图所示。


二、获取Access Token

通过post方式访问 [https://yourdomain.sharepoint.com/_forms/default.aspx?wa=wsignin1.0],请求正文为刚刚获取到的Security Token。如下图所示:

对应的相应信息如下:

我们可以看到相应头中设置了两个cookie,rtFa和FedAuth,这两个cookie在后续的访问中都需要加在请求中。

三、获取Request Digest(最终我们想要的Token)

通过Post访问 [https://yourdomain.sharepoint.com/_api/contextinfo],把上一步获取的两个cookie信息加上。如下图所示。

得到的响应信息如下所示。

这就是我们所要的最终的Token啦!在后续对SharePoint的访问中,只需要加上这个token以及之前的两个cookie就可以了,如下图所示。

如何获取SharePoint online(O365)的token相关推荐

  1. android 腾讯微博授权,5腾讯微博Android客户端开发获取请求用户授权Request Token.pdf...

    腾讯微博Android客户端开发 博客:/coolszy Android Android 腾讯微博AAnnddrrooiidd客户端开发 RequestToken RequestToken --获取请 ...

  2. 七种方法教你如何获取以太坊测试网Token

    七种方法教你如何获取以太坊测试网Token 在使用以太坊测试网时,我们通常都需要获取一些测试币,这里就以MetaMask为例介绍一下怎么获取以太坊测试币. 首先介绍一种最权威且一直可以用的方法,以Ro ...

  3. loadrunner之获取登陆接口中的token值及 LoadRunner数据更新与更新方式

    Loadrunner获取登陆接口中的token值   登录后,服务器会生成token并返回给客户端,之后客户端与服务器交互的操作中,服务器程序会对比这个token,正确则允许操作,否则拒绝客户端请求. ...

  4. 如何获取微信API的Access Token

    进入微信公众平台,点击公众平台测试帐号: 得到appID和app secret: 使用url:https://api.weixin.qq.com/cgi-bin/token?grant_type=cl ...

  5. 通过javascript获取sharepoint数据,使用JS导出Excel

    通过网页将数据导出到Excel是常见需求,使用服务器端导出,开发周期长,部署麻烦.这里推荐一种客户端导出方法. 客户端导出与Sharepoint无关.这里附带使用场景基于SP,因为SP自带的导出功能比 ...

  6. java apns feedback_php从苹果apns的feedback服务器获取推送失败的token

    注意事项: 1.建议和feedback服务器建立长连接,连接过于频繁有可能被当做攻击(简简单单的做一些测试时没有关系的); 2.获取的token是在上次你给你的应用发推送失败时加feedback服务的 ...

  7. 获取百度开放平台Access Token,调用百度统计接口

    官方文档:http://developer.baidu.com/wiki/index.php?title=docs/oauth 获取 Access Token有几种方式 由于项目需求比较简单,这里选择 ...

  8. python接口测试,获取响应文本中的token并传入下一方法

    业务流程:忘记密码时,提交答案验证获取token,使用token更新密码 首先调用submit_answer方法,回答正确的密保答案后获取token,定义dic空字典变量,获取返回的响应文本,dic字 ...

  9. 完整获取华为云IAM用户Token步骤

    查看华为云官方文档,虽然详细,但是很散,对刚刚接触的人不友好,最近项目需要华为云的人脸识别功能,看文档有点头大,很多东西分的很散. 整理了一下: 1.获取IAM用户Token 2.用Token去使用华 ...

最新文章

  1. (转载)MultiAnimation
  2. OutOfMemoryError dump memory
  3. html空白文字宽度
  4. centos 配置php开发环境变量配置,CentOS中配置PHP和Nginx环境变量
  5. 用计算机模拟地球诞生,计算机模拟显示早期金星或像地球一样宜居
  6. 信息服务器 iis 7.0,iis7.0的技术参数汇总
  7. 县级外业调查及举证软件_我公司中标江西省第三次全国国土调查县级建库软件项目...
  8. 公众服务常用电话号码大全
  9. 方便的管理苹果Mac上菜单栏图标软件推荐:Bartender
  10. 利用border设置transparent绘制图形
  11. 什么是软件研发费用定额?
  12. 计算机不能报名系统软件,电脑无法安装税控系统、国税申报软件,怎么回事
  13. Pytorch mask:上三角和下三角
  14. 边境的悍匪—机器学习实战:第十三章 使用TensorFlow加载和预处理数据
  15. Alpha测试、Beta测试和验收测试的含义与区别
  16. QIIME 2教程. 05粪菌移植分析练习Fecal microbiota transplant (FMT)(2020.11)
  17. 查询-SPJ练习3参考答案
  18. 一种提升多分类准确性的Trick
  19. 一个电商数据分析师的经验总结
  20. 新年新故事 | Nice 兔 Meet U

热门文章

  1. 【源代码管理工具GIT】
  2. php domdocument soap,在PHP中使用SoapClient从WSDL获取元素
  3. 网络电视html5软件,网络电视软件哪个好
  4. 数学建模、运筹学之非线性规划
  5. Java、JSP基于JAVAEE的食堂管理系统
  6. ipad ios 电子杂志制作软件 ipad ios 电子杂志制作开发软件
  7. 获取OpenHarmony源码
  8. MTK平台Modem(2G、3G、4G)配置之编译环境搭建
  9. 如何使Like使用索引
  10. vue中60余种工具类