跳转到主要内容

Microsoft Azure Mixed Reality Authentication Client Library for Python

项目描述

Build Status

Azure Mixed Reality Authentication Package客户端库

混合现实服务,如Azure Spatial Anchors、Azure Remote Rendering等,使用混合现实安全令牌服务(STS)进行身份验证。此包支持将混合现实账户凭证交换为STS提供的访问令牌,可用于访问混合现实服务。

Mixed Reality service authentication diagram

入门

当前支持的环境

此包已与Python 2.7、3.5、3.6、3.7、3.8和3.9进行了测试。

先决条件

安装包

安装Azure混合现实认证SDK。

pip install --pre azure-mixedreality-authentication

创建并认证一个MixedRealityStsClient

要创建一个客户端对象以请求混合现实服务的访问令牌,您需要混合现实服务资源的帐户标识符帐户域以及一个凭证

混合现实服务支持几种不同的认证形式

  • 帐户密钥认证
    • 帐户密钥让您能够快速开始使用混合现实服务。但在将应用程序部署到生产环境之前,我们建议您更新应用程序以使用Azure AD认证。
  • Azure Active Directory (AD) 令牌认证
    • 如果您正在构建企业应用程序,并且您的公司正在使用Azure AD作为其身份系统,您可以在应用程序中使用基于用户的Azure AD认证。然后,您可以通过使用现有的Azure AD安全组来授权对您的混合现实帐户的访问。您还可以直接授权组织内的用户。
    • 否则,我们建议您从支持您的应用程序的Web服务获取Azure AD令牌。我们建议在生产应用程序中使用此方法,因为它允许您避免在客户端应用程序中嵌入对混合现实服务的访问凭证。

有关详细说明和信息,请参阅此处

使用帐户密钥认证

使用Azure门户浏览到您的混合现实服务资源,并检索一个帐户密钥

一旦您拥有帐户密钥,您就可以使用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 Identity库通过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 Identity

同步检索访问令牌

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 Identity 的故障排除部分(可在此处找到:[Azure Identity 故障排除](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#troubleshooting))在处理认证问题时可能有所帮助。

下一步

混合现实客户端库

  • 即将推出

贡献

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

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

本项目已采用 [Microsoft 开源行为准则](https://opensource.microsoft.com/codeofconduct/)。有关更多信息,请参阅 [行为准则 FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 或通过 [opencode@microsoft.com](mailto:opencode@microsoft.com) 联系我们,以提出任何额外的问题或评论。

如果您想为此库做出贡献,请阅读 [贡献指南](https://github.com/Azure/azure-sdk-for-python/blob/main/CONTRIBUTING.md),了解更多有关构建和测试代码的信息。

Impressions

发布历史

1.0.0b1 (2021-11-12)

新增功能

  • 首次发布,支持使用混合现实服务进行认证。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多有关 [安装包](https://packaging.pythonlang.cn/tutorials/installing-packages/) 的信息。

源代码分发

azure-mixedreality-authentication-1.0.0b1.zip (53.1 kB 查看散列)

上传时间: 源代码

构建分发

azure_mixedreality_authentication-1.0.0b1-py2.py3-none-any.whl (29.6 kB 查看散列)

上传时间: Python 2 Python 3

支持