在我写这篇文章的时候,这个SSO机制还是在 Developer Preview 阶段,可能在发布前还会有一些改进。不过我觉得这个功能很好,所以先和大家分享一下。
如果大家之前已经开发过Teams的tab应用,可能会发现如果你需要一个当前用户的token十分繁琐,这个SSO的设计就是用来解决这个问题的,目前只支持工作组织账号(暂不支持Microsoft Account)。
我们先来看一下处理的流程:
- 在你的tab前端代码里,调用
getAuthToken()
方法,这个方法会告知Teams客户端,你的tab app想要一个token。 - 如果这个是当前用户第一次,并且你的app需要用户审核,那teams客户端就会弹出一个审核的窗口。类似于下图
- Teams客户端会向Azure AD发送申请用户token的请求。
- 如果一切顺利,AzureAD就会把token返回给Teams客户端
- Teams客户端把token返回给你的tab应用,token作为
getAuthToken()
的返回对象。要注意,这是一个异步的调用 - 你的tab app拿到token后就可以对token进行解析获取用户的一些身份信息,下面是一个tab app的解析的代码: