【问题标题】:How do you handle expired client secrets in a deployed desktop application?您如何处理已部署的桌面应用程序中过期的客户端机密?
【发布时间】:2022-01-24 22:54:05
【问题描述】:

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

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

【问题讨论】:

    标签: .net-core oauth-2.0 azure-active-directory microsoft-graph-api azure-authentication


    【解决方案1】:

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

    您现在的大多数应用程序至少每年更新一次?

    【讨论】:

    • 是的,这是我能想到的最直接的解决方案。但感觉就像我在整个身份验证管道中遗漏了一些东西。对我来说,在应用程序中刷新客户端密码听起来很奇怪并且几乎没有附加价值,但这可能是预期的方法。顺便说一句,该软件是免费的,因此升级不应强迫任何用户购买任何东西——只需下载升级即可。 :-)
    • 是的,我们只需要接受事情想要有更多的时间限制(比如 azure 中的 2 年秘密)或 90 天让我们加密证书......随时接受我的回答或做哟想要我在我的答案中添加一些东西吗?
    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2022-08-02
    • 2013-06-01
    • 2010-09-14
    • 2021-07-19
    相关资源
    最近更新 更多