你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于 Python 的 Azure 标识代理插件

此包通过提供用于通过身份验证代理进行身份验证的补充凭据来扩展 Azure 标识 库。

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

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

入门

安装包

使用 pip 安装适用于 Python 的 Azure 标识代理插件:

pip install azure-identity-broker

关键概念

此包启用中转站支持,通过 InteractiveBrowserBrokerCredential 中转站是 Azure 标识库的 子类 InteractiveBrowserCredential

父窗口句柄

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

Microsoft 帐户 (MSA) 直通

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

重定向 URI

Microsoft Entra应用程序依赖于重定向 URI 来确定在用户登录后将身份验证响应发送到何处。 若要通过 WAM 启用中转身份验证,应将匹配以下模式的重定向 URI 注册到应用程序:

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

示例

使用 InteractiveBrowserBrokerCredential 进行身份验证

此示例演示如何使用 InteractiveBrowserBrokerCredential 作为启用了中转站的凭据,以使用 BlobServiceClientazure-storage-blob 库中的 进行身份验证。 此处, 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=default_credential)

故障排除

有关如何诊断各种故障方案的详细信息,请参阅 Azure 标识 故障排除指南

后续步骤

客户端库支持

Azure SDK 发布页上列出的支持Microsoft Entra身份验证的客户端和管理库接受来自此库的凭据。 有关使用这些库的详细信息,请参阅从发布页链接的文档。

已知问题

此库不支持 Azure AD B2C

有关其他未解决的问题,请参阅库的 GitHub 存储库

提供反馈

如果遇到 bug 或有建议, 请提出问题

贡献

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

提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。

此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。