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.InteractiveBrowserBrokerCredential
和azure.identity.broker.UsernamePasswordBrokerCredential
。
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。