博客地址:http://blog.csdn.net/FoxDave
本篇我们介绍并展望Microsoft Graph的身份验证状况,特别是获取访问令牌的部分。

任何对Microsoft Graph的请求都需要进行正确地认证,即包括一个访问令牌。Microsoft Graph中的访问令牌是一个base 64编码的JSON web token (JWT),它必须通过Azure AD给出。

对于Azure AD有两个主要的认证流程:

  1. 用户代理 (app+user)
  2. 仅应用程序 (app-only)

总体步骤如下:

  1. 在Azure AD中注册应用程序
  2. 配置/授予权限
  3. 获取访问令牌
  4. 使用访问令牌调用Microsoft Graph

在后续的文章中我们还会对这些步骤进行详细的介绍。
既然我们要去获取访问令牌,我们先讨论一下Microsoft Graph身份认证的现在和未来。注意我们介绍的内容中有一些元素目前在支持生产环境的预览版库中。

目前状态

由于目前有多个门户可以注册应用程序,继而有多套客户端SDK,多个Azure AD终结点,Microsoft Graph的身份认证包含了一些决策。了解我们的目标受众是一个关键的决策点,因为它影响了我们可以使用或不可以使用哪些组件。微软推荐我们从相对新的MSAL和Azure AD v2版本的终结点开始。ADAL和v1版本的终结点目前只支持MSAL/Azure AD v2版本的终结点中还不支持的有限数量的认证场景,但这些差异将会很快被解决。更多关于两个版本终结点的差异请访问此链接。

未来状态

未来对于Microsoft Graph的认证请参看下图。Azure AD v2版本的终结点可以发行v1和v2版本的访问令牌。并且Azure Portal是唯一的用于注册应用程序的地址。总体来说未来的状态通过降低决策点并提供对广泛需求的支持来简化到Microsoft Graph的认证过程。

关于获取访问令牌的内容我们会在之后的文章中详细介绍,这里我们先简单看一下下面的访问令牌示例:

注意:Azure AD访问令牌是一个票据令牌,意思是任何持有该令牌的人或应用程序都可以使用它以许可的权限去调用Microsoft Graph。因此我们必须确保安全传输和存储以防止意外被使用。
乍一看这些访问令牌的格式好像有些读不明白,但是我们可以使用很多工具对它进行解码。例如Azure AD团队提供了一个网站https://jwt.io/。下面是解码后的令牌的示例。

这对诊断问题非常有帮助。关于访问令牌架构的更多信息,可以戳这里。

练习

通过http://jwt.ms/解码示例令牌。

  1. V1 sample token
    eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0=.D3H6pMUtQnoJAGq6AHd
  2. V2 sample token
    eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt

Microsoft Graph for Office 365 - 身份验证路线图和访问令牌相关推荐

  1. Microsoft Graph for Office 365 - 用例:更新用户邮箱设置

    博客地址:http://blog.csdn.net/FoxDave 上一篇文章我们实现了在.Net Core应用程序中去为用户分配一个许可的操作.本篇我们将实现更新用户Office 365中邮箱设置的 ...

  2. Office 365 身份验证和单一登录部署(4)

    配置本地和Office 365联合信任 建议将DirSync tool和Windows Azure Active Directory 模块安装在ADFS服务器上,这样就不用去设置ADFS contex ...

  3. Microsoft Graph for Office 365 - 用例:Microsoft Teams相关的交互

    本篇我们介绍Microsoft Teams相关的内容. Microsoft Teams介绍 Microsoft Teams是用于企业沟通协作的软件,可以即时消息,语音通话,在线会议等.它以团队为基础单 ...

  4. Microsoft Graph for Office 365 - 认证和授权场景

    博客地址:http://blog.csdn.net/FoxDave 上一篇我们介绍了发起Microsoft Graph请求的核心:访问令牌.本篇我们探讨一下在使用Microsoft Graph进行查询 ...

  5. Office 365:如何删除和管理Microsoft Team (Office 365 Groups)Team Site

    博客地址:http://blog.csdn.net/shelleyliu0415 2016年年底,微软正式发布基于Office 365平台的一款高效提高团队沟通和交流的工具:Microsoft Tea ...

  6. Microsoft Defender for Office 365部署方案

    目录 前言 一.Microsoft Defender for Office 365 部署架构 1.部署环境 2.Microsoft Defender for Office 365 核心服务

  7. Office 365身份认证--深度解析(一)

    微软Office 365现在支持的认证方式,正准确的说是Azure Active Directory认证方式有下列两大块: 1.云端认证 a.纯云用户的云端认证(本文不讨论,因为也太多好讨论的) b. ...

  8. Office 365身份认证--深度解析(二)

    上一章谈到的认证方式,最后的表格里忘记说明了灾备的情况,也就是说如果PTA+SSSO失效时,可以用密码哈希来访问Office 365,但是这需要跑一个PowerShell命令来做切换. 从ADFS迁移 ...

  9. 微软SQL服务器登录,Microsoft SQL Server 【Windows 身份验证】和 【sa】都无法登录的解决方案...

    1.修改启动参数:打开[SQL Server 配置管理器(SQL Server Configuration Manager)]→右键[SQL Server(MSSQLSERVER)]属性→高级(Adv ...

最新文章

  1. 深入分析Java的序列化与反序列化
  2. 使用外部表关联MySQL数据到Oracle
  3. 非常精美的全能视频转换器 注册版
  4. MacBook 无法启动(白苹果+无限菊花)解决方案及心得
  5. Java 洛谷 P1425 小鱼的游泳时间
  6. ajax里拼接标签属性规则,vue 标签属性数据绑定和拼接的实现方法
  7. 装饰器 闭包 生成器 迭代器
  8. 手把手教你python实现量价形态选股知乎_【手把手教你】Python实现基于事件驱动的量化回测...
  9. 【渝粤题库】国家开放大学2021春2223物业管理财税基础题目
  10. Cassandra操作入门
  11. pandas string
  12. request 获取url
  13. java doget 返回json_HttpClient调用doGet、doPost、JSON传参及获得返回值
  14. android 连续调用方法是,android – SwitchPreferences多次调用onPreferenceChange()方法
  15. LeetCode刷题——62. 不同路径
  16. git log 日期格式
  17. JavaScript设计模式之状态模式
  18. 小学计算机课题研究报告,小学信息技术自主学习方法探究研究课题研究报告
  19. 阿里CEO张勇:打破各企业边界 联手对抗黑灰产
  20. 关于解决Mac上keras数据集自动下载过慢问题(不要问我是怎么知道的,干就完了,奥利给!)

热门文章

  1. win10 无法设置移动热点和win10移动热点-手机成功连接,无法上网
  2. matlab给热力图添加标签,第3期:如何制作热力图|标签云图.pdf
  3. 答题活动小程序v1.0
  4. DP结合3dmax建模(一)
  5. Win10 磁盘一写数据就利用率100%,并出现卡顿、假死无反应,过一会儿又正常,经常反复
  6. 电脑pin码忘了登录不进系统_升级win10系统必须要做的5件事,装机、重装系统必知...
  7. 老男孩的运维笔记文档-中级部分(运维中级)列表(二)
  8. matlab调整字体大小
  9. 高德地图 web 端 JS API 遇到的坑及性能优化
  10. 人工机器:机器学习的哲学原理、基础及完备性的来由