跳转到主要内容

Python的Microsoft Azure身份代理插件

项目描述

Python的Azure身份代理插件

此软件包通过提供通过身份验证代理进行身份验证的补充凭据来扩展Azure Identity库。

身份验证代理是一个在用户机器上运行的应用程序,它管理连接帐户的认证握手和令牌维护。目前,仅支持Windows身份验证代理,Web帐户管理器(WAM)。

源代码 | 软件包(PyPI) | API参考文档 | Microsoft Entra ID文档

入门

安装软件包

使用 pip 安装Azure Identity Broker插件

pip install azure-identity-broker

关键概念

此软件包通过 InteractiveBrowserBrokerCredential 启用代理支持,它是Azure Identity库中的 InteractiveBrowserCredential 的子类。

父窗口句柄

当通过InteractiveBrowserBrokerCredential进行交互式身份验证时,需要父窗口句柄以确保身份验证对话框正确显示在请求窗口上方。在设备上的图形用户界面上下文中,窗口句柄是操作系统分配给每个窗口的唯一标识符。对于Windows操作系统,这个句柄是一个整数值,用作特定窗口的引用。

Microsoft帐户(MSA)透传

Microsoft帐户(MSA)是由用户创建以访问Microsoft服务的个人帐户。MSA透传是一种旧配置,允许用户获取通常不接受MSA登录的资源令牌。此功能仅适用于第三方应用程序。使用配置为使用MSA透传的应用程序进行身份验证的用户可以在InteractiveBrowserBrokerCredential内部将enable_msa_passthrough设置为True,以允许这些个人帐户被WAM列出。

重定向URI

Microsoft Entra应用程序依赖于重定向URI来确定在用户登录后发送身份验证响应的位置。为了通过WAM启用代理身份验证,应将匹配以下模式的重定向URI注册到应用程序

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

示例

使用InteractiveBrowserBrokerCredential进行身份验证

此示例演示了如何使用InteractiveBrowserBrokerCredential作为启用代理的凭据,通过azure-storage-blob库的BlobServiceClient进行身份验证。在此,使用win32gui包获取当前窗口。

import win32gui
from azure.identity.broker import InteractiveBrowserBrokerCredential
from azure.storage.blob import BlobServiceClient

# Get the handle of the current window
current_window_handle = win32gui.GetForegroundWindow()

credential = InteractiveBrowserBrokerCredential(parent_window_handle=current_window_handle)
client = BlobServiceClient(account_url, credential=credential)

要绕过帐户选择对话框并使用默认代理帐户,将use_default_broker_account参数设置为True。凭据将尝试静默使用默认代理帐户。如果使用默认帐户失败,凭据将回退到交互式身份验证。

credential = InteractiveBrowserBrokerCredential(
    parent_window_handle=current_window_handle,
    use_default_broker_account=True
)

故障排除

有关诊断各种故障场景的详细信息,请参阅Azure Identity 故障排除指南

下一步

客户端库支持

Azure SDK发布页面上列出的客户端和管理库支持Microsoft Entra身份验证,并接受此库中的凭据。您可以在其文档中了解更多有关这些库的信息,这些信息链接在发布页面上。

已知问题

此库不支持Azure AD B2C

有关其他开放问题,请参阅库的GitHub存储库

提供反馈

如果您遇到错误或有所建议,请提交问题

贡献

此项目欢迎贡献和建议。大多数贡献都需要您同意一份贡献者许可协议(CLA),声明您有权利并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.microsoft.com

在提交拉取请求时,CLA-bot将自动确定您是否需要提供CLA,并适当修饰PR(例如,标签,注释)。只需遵循机器人提供的说明即可。您只需在整个使用我们的CLA的存储库中做一次。

此项目采用了Microsoft开源行为准则。有关更多信息,请参阅行为准则常见问题解答或联系opencode@microsoft.com以获取任何额外的问题或评论。

发布历史

1.1.0 (2024-04-09)

新增功能

  • InteractiveBrowserBrokerCredential 现在支持一个 use_default_broker_account 属性,允许使用当前登录的操作系统账户进行身份验证,而不是提示输入凭据。
  • 已将 enable_support_logging 添加为 InteractiveBrowserBrokerCredential 的关键字参数。这允许进行额外的支持日志记录,这些日志可能包含 PII。

其他更改

  • 不再支持 Python 3.7。请使用 Python 版本 3.8 或更高版本。
  • azure-identity 的最低依赖项提升到 1.15.0

1.0.0 (2023-11-07)

新增功能

  • 如果运行在 Windows 上,则 enable_broker 总是开启。如果在 MacOS 或 Linux 上运行,则自动回退到非代理模式。

重大变更

  • 已删除 UsernamePasswordBrokerCredential

1.0.0b1 (2023-10-12)

新增功能

  • 添加了具有代理支持的 azure.identity.broker.InteractiveBrowserBrokerCredentialazure.identity.broker.UsernamePasswordBrokerCredential

项目详情


下载文件

下载适合您平台的自定义文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码分发

azure-identity-broker-1.1.0.tar.gz (12.4 kB 查看哈希值)

上传时间 源代码

构建分发

azure_identity_broker-1.1.0-py3-none-any.whl (9.6 kB 查看哈希值)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面