你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Python 的 Azure 混合现实 身份验证包客户端库 - 版本 1.0.0b1
混合现实服务(如 Azure 空间定位点、Azure 远程渲染等)使用 混合现实 安全令牌服务 (STS) 进行身份验证。 此包支持从 STS 交换混合现实帐户凭据,该令牌可用于访问混合现实服务。
入门
目前支持的环境
此包已经过 Python 2.7、3.5、3.6、3.7、3.8 和 3.9 的测试。
先决条件
- 一个 Azure 订阅。
- 必须具有 Azure 混合现实服务的帐户:
- 熟悉 Azure 标识库中的身份验证和凭据概念。
- 使用此包需要 Python 2.7 或 3.5 或更高版本。
安装包
安装 Azure 混合现实 身份验证 SDK。
pip install --pre azure-mixedreality-authentication
创建 MixedRealityStsClient
并对其进行身份验证
若要创建客户端对象以请求混合现实服务的访问令牌,需要account identifier
混合现实服务资源的 和 account domain
以及 。credential
混合现实服务支持几种不同形式的身份验证:
- 帐户密钥身份验证
- 使用帐户密钥可以快速开始使用混合现实服务。 但是,在将应用程序部署到生产环境之前,我们建议你将应用更新为使用 Azure AD 身份验证。
- Azure Active Directory (AD) 令牌身份验证
- 如果你正在生成企业应用程序,并且你的公司使用 Azure AD 作为其标识系统,则你可以在应用中使用基于用户的 Azure AD 身份验证。 然后,使用现有的 Azure AD 安全组授予对混合现实帐户的访问权限。 还可以直接向组织中的用户授予访问权限。
- 否则,我们建议从支持你的应用的 Web 服务获取 Azure AD 令牌。 建议将此方法用于生产应用程序,因为它可避免在客户端应用程序中嵌入用于访问混合现实服务的凭据。
有关详细说明和信息,请参阅 此处 。
使用帐户密钥身份验证
使用 Azure 门户浏览到混合现实服务资源并检索 account key
。
拥有帐户密钥后,可以使用 AzureKeyCredential
类对客户端进行身份验证,如下所示:
from azure.core.credentials import AzureKeyCredential
from azure.mixedreality.authentication import MixedRealityStsClient
account_id = "<ACCOUNTD ID>"
account_domain = "<ACCOUNT_DOMAIN>"
account_key = "<ACCOUNT_KEY>"
key_credential = AzureKeyCredential(account_key)
client = MixedRealityStsClient(account_id, account_domain, key_credential)
注意: 不建议 将帐户密钥身份验证用于生产应用程序。
使用 Azure Active Directory 凭据
大多数示例中都使用帐户密钥身份验证,但也可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。 这是建议用于生产应用程序的方法。 若要使用如下所示的 DefaultAzureCredential 提供程序或 Azure SDK 提供的其他凭据提供程序,请安装包 @azure/identity
:
还需要注册新的 AAD 应用程序,并通过将混合现实服务的相应角色分配给服务主体来授予对混合现实资源的访问权限。
from azure.identity import DefaultAzureCredential
from azure.mixedreality.authentication import MixedRealityStsClient
account_id = "<ACCOUNTD ID>"
account_domain = "<ACCOUNT_DOMAIN>"
default_credential = DefaultAzureCredential()
client = MixedRealityStsClient(account_id, account_domain, default_credential)
关键概念
MixedRealityStsClient
MixedRealityStsClient
是用于访问 混合现实 STS 以获取访问令牌的客户端库。 可以通过对MixedRealityStsClient
实例调用get_token()
来检索访问令牌。
从混合现实 STS 获取的令牌的生存期为 24 小时。
令牌结果值
成功调用 的get_token
azure.core.credentials.AccessToken
返回值为 。
有关更复杂的身份验证方案,请参阅 上面的 身份验证示例或 Azure 标识 。
同步检索访问令牌
from azure.core.credentials import AzureKeyCredential
from azure.mixedreality.authentication import MixedRealityStsClient
account_id = "<ACCOUNTD ID>"
account_domain = "<ACCOUNT_DOMAIN>"
account_key = "<ACCOUNT_KEY>"
key_credential = AzureKeyCredential(account_key)
client = MixedRealityStsClient(account_id, account_domain, key_credential)
token = client.get_token()
异步检索访问令牌
from azure.core.credentials import AzureKeyCredential
from azure.mixedreality.authentication.aio import MixedRealityStsClient
account_id = "<ACCOUNTD ID>"
account_domain = "<ACCOUNT_DOMAIN>"
account_key = "<ACCOUNT_KEY>"
key_credential = AzureKeyCredential(account_key)
client = MixedRealityStsClient(account_id, account_domain, key_credential)
token = await client.get_token()
示例
这些代码示例演示了 Azure 混合现实 身份验证客户端库的常见方案操作。
示例的异步版本 (追加 _async
的 python 示例文件) 显示异步操作,并且需要 Python 3.5 或更高版本。
在运行示例代码之前,请参阅先决条件
创建资源,然后设置一些环境变量
set MIXEDREALITY_ACCOUNT_DOMAIN="<the Mixed Reality account domain>"
set MIXEDREALITY_ACCOUNT_ID="<the Mixed Reality account identifier>"
set MIXEDREALITY_ACCOUNT_KEY="<the Mixed Reality account primary or secondary key>"
pip install azure-mixedreality-authentication
python samples\client_sample.py
python samples\client_sample_async.py
疑难解答
排查身份验证问题时,Azure 标识的 故障排除 部分非常有用。
后续步骤
混合现实客户端库
- 即将推出
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com 。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。
若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈