通过GoDaddy购买的Office365帐户未返回刷新令牌

dru*_*kel 12 oauth azure office365 azure-active-directory office365api

背景

我们有一个功能,可以使用此处概述的Office365 REST apis同步我们的应用程序和Office365之间的日历条目和联系人.我们正在使用API的第1版.对于授权,我们在此处通过Azure AD执行授权.

问题

在正常情况下(当使用直接从Microsoft购买的Office365帐户时),我们的系统按预期工作:我们能够在用户到期时刷新用户的令牌,并在交换时返回新的访问和刷新令牌.

在第二种情况下,当使用GoDaddy购买的 Office365帐户进行测试时,我们遇到了一个阻塞问题,可以在这一系列步骤中概述:1.用户从我们的应用程序 - > Office365登录页面发送.2.用户输入电子邮件地址3.用户被重定向到GoDaddy Office365登录页面.4.用户完成授权,并通过响应中的访问代码重定向回我们的应用程序.5.应用程序交换来自Office365的access_token和refresh_token的访问代码.6.一段时间过去了,access_token到期7.应用程序使用refresh_token刷新用户的access_token

预期的行为

此时我们希望收到一个新的access_token以及一个新的refresh_token,就像我们使用常规Office365帐户时一样

实际行为

仅对于通过GoDaddy购买的帐户,我们在首次刷新后不会在响应中收到新的刷新令牌.

显然,当打算进行长时间运行的同步时,这是一个突破性的情况,因为用户将无法再超过此点刷新其令牌.

邮差跟踪(可以保存为.json并导入到Postman进行调试 https://gist.github.com/drunkel/7ec66ed33f66d0070148694651699d03(ID和秘密已被删除)

题:

  • 这是一个已知的问题?
  • 有解决方法吗?

小智 2

我是 GoDaddy 的软件工程师,可以确认此问题已得到解决。现代身份验证下登录请求更频繁的原因是,由于这些是联合用户,并且正如您在问题中提到的,刷新令牌没有被返回。这是由于AAD用户的 StsRefreshTokensValidFrom 属性未正确更新所致。