尽管微软给我们提供了认证的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. 父表ID查询子表 所属name字符拼接 for xml path
  2. python 数学公式识别_Python实现基于KNN算法的笔迹识别功能详解
  3. Win32 设备管理(2)
  4. html5 响应式背景图
  5. 对象的序列化----将对象转化成二进制数据流
  6. 【零基础学Java】—List集合(三十九)
  7. xtrabackup与mysqldump对比测试
  8. python之模块 os
  9. 问道手游服务器维护,问道手游2021年5月20日维护公告_问道手游2021年5月20日更新了什么_玩游戏网...
  10. easyUi combobox setValue 引起的关于js的坑
  11. HTML龙卷风特效代码
  12. 华夏文化-让你心醉又心碎的陶笛--故乡的原风景
  13. Folium库使用心得(二)
  14. Linux虚拟机下FTP服务器的搭建(详细)
  15. 1.1.7. Least Angle Regression(最小角回归)和 1.1.8. LARS Lasso
  16. 电子音乐包括电声乐器和计算机音乐,对国内电子和电声音乐发展的思考与分析...
  17. 【硬件】军品钽电容(火炬电子)
  18. 计算机网络攻防演练,网络安全攻防演练
  19. 一款好用的CRM管理软件需要具备什么?
  20. .NET微服务迁移至.NET6.0的故事

热门文章

  1. 张飞老师硬件第十五部视频整理——硬件基础1-2-3
  2. 设计到生产:流程名词解释
  3. Pydicom读取dcm格式视频
  4. python爬虫(四)——模拟登录丁香园
  5. 跟着omnipeek学802.11之Omnipeek无线空中抓包入门
  6. 计算机激光鼠标,光电鼠标和激光鼠标的区别 选择一款你喜欢的【图文】
  7. cakephp oracle,CakePHP入门(8)-创建Model
  8. 兄弟连NoSQL视频教程 redis笔记
  9. 【无碳小车】备战无碳小车从小白入门为大神
  10. 采用CAnimateCtrl的AVI播放器,没有什么应用的,纯当练技术