【发布时间】:2020-07-30 18:39:10
【问题描述】:
现在,我的公司运行一个 java 应用程序,它使用 IMAP 和 SMTP 来读取/发送电子邮件,而无需用户交互。我们使用的身份验证协议是基本身份验证。 Microsoft 已宣布终止对基本身份验证的支持,它将被 Oauth2 取代。不幸的是,他们没有为没有用户交互的应用程序提供明确的解决方案。 https://docs.microsoft.com/en-gb/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth
我的一个想法是让用户在他们第一次启动服务时只进行一次身份验证(使用 Oauth2 授权代码流)。然后,刷新令牌将用于在无需用户交互的情况下获取访问令牌。连接不会因为到期日期短或撤销而中断,这一点非常重要。如果应用无法获取新的访问令牌,可能没有人可以重新进行身份验证。
我似乎找不到任何有关这些令牌到期日期的信息(如果可以设置的话)。理想的情况是它们永不过期……
有人知道更多吗?了解我的想法是否可行对我有很大帮助。
【问题讨论】:
-
看看docs.microsoft.com/en-us/azure/active-directory/develop/…,看起来他们的示例响应是 3599 秒,这意味着您需要:(1)将 currenttime+3599 与刷新令牌一起存储,并在之前刷新它请求 (2) 尝试请求,获取失败并刷新/重试。您不能修改或请求以任何不同的方式过期令牌,您只能使用提供的信息来预/后刷新令牌。
标签: java oauth-2.0 azure-active-directory