是否可以将本地 Python 应用程序连接到 Azure OIDC?

Is it possible to connect a local Python app to Azure OIDC?

我的设置如下:
我使用精彩的 xlwings 从 excel 中激活的 python 脚本进行 API 调用。 这使得复杂的数据提取和转换工作流程能够以漂亮的 python 而不是烦人的 VBA 编码。它还使非编码用户可以通过单击嵌入式按钮使用这些工作流程。

我的问题: 我的 API 调用过去使用硬编码的 API 键。这是一个很大的安全禁忌。现在我的 API 调用需要在 Azure AD 中通过 OIDC (OAuth2) 身份验证。

我的问题:

  1. 是否可以从本地 Python 脚本触发 OIDC 身份验证(在 Azure AD 中)?
  2. 在这样的设置中,我可以在哪里安全地存储我的客户端密码?

是的,你可以做到。你没有说你正在调用哪些 API,但它们中的任何一个的行为都是一样的。

身份验证有两种类型:交互式和非交互式。您需要描述您想要的那个,但由于您担心硬编码键,我们假设您想要交互式。

这意味着当用户想要访问数据时,系统会提示用户在浏览器中输入凭据。访问令牌返回给应用程序,然后用于调用 API。没有使用硬编码密钥,令牌会在一段时间后过期。

您可以参考此文档开始:https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-authenticate