【问题标题】:How to safely handle client id on open source project如何安全地处理开源项目中的客户端 ID
【发布时间】:2022-06-27 22:04:18
【问题描述】:

我的问题

所以我想做的是使用 minecraft-launcher-lib 库创建一个用 python 编写的 minecraft 启动器。该库要求我使用 Azure Active Directory 登录用户 Microsoft 帐户。

问题在于,要登录,我需要将客户端 ID 和密码传递给库以执行登录。出于显而易见的原因,我不能对这些 id 进行硬编码,因为它是一个开源项目。

我已经尝试过的

我搜索了整个 google 以找到解决方案,并偶然发现了 Azure Managed Identities。由于我只使用 Azure 进行应用注册,因此我没有使用这些选项的选项。

我遇到的另一件事是使用证书,但我找不到任何关于如何将证书用于我的用例的信息。

最后是问题:

我有什么方法可以安全地检索、保存或以任何其他方式处理这些 ID,以便我可以共享我的项目的源代码?

【问题讨论】:

  • 您可以在不共享凭据的情况下共享项目的源代码。如果其他人想使用您的代码,他们将需要注册自己的应用程序并使用自己的客户端 ID 和密码。
  • @larsks 这是个好主意,我现在就这么做。问题是我希望用户能够自己从源代码构建应用程序,并且必须注册应用程序并不完全是用户友好的。

标签: python azure authentication azure-active-directory


【解决方案1】:

按照larsks的建议是正确的。

  1. 您可以将凭据存储在单独的文件中,并且在为您的项目公开时不要共享凭据文件。
  2. 如果其他人想要使用您的代码,他们需要注册自己的应用程序并使用自己的客户端 IDsecret
  3. 另一个替代解决方案是为了更安全,您可以使用 Azure keyvault 将您的凭据存储在那里,您可以在登录时直接从 Azure 密钥库中检索凭据。

有关更多详细信息,您可以使用此Link 在存储 Client_IDClient_secret 的 Azure keyvault 中进行身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2013-07-14
    • 2014-07-13
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多