您如何处理已部署的桌面应用程序中过期的客户端机密?

How do you handle expired client secrets in a deployed desktop application?

我正在开发的桌面应用程序(C#/.NET、WPF)使用的功能需要连接到用户的 IMAP 和 SMTP 服务器。我为此使用了一个名为 MailKit 的包。我们的一些用户正在使用 Microsoft365,将来需要现代身份验证,而不是他们现在使用的基本身份验证。 MailKit 支持这一点,我可以使用 OAuth2.0 进行身份验证。

但是,这需要一个客户端密码,该密码在 Azure 中创建后一定时间(例如两年)后会过期。此客户端密钥与应用程序一起编译,然后分发应用程序。这是否意味着用户需要至少每两年更新一次他们的安装,这样我才能提供一个新的客户端密码?这对我们的用户来说是不可取的。对我来说最好的解决方案是,如果我可以在用户无需执行任何操作的情况下刷新过期的客户端机密。

也许两年后强制用户升级软件是个好主意?比如强迫他们购买升级(商业机会)或作为向应用程序分发修复和更新的一种方式?

今天的大多数应用程序你至少每年更新一次吗?