适用于 JavaScript 的 Azure 混合现实身份验证客户端库 - 版本 1.0.0-beta.1

混合现实服务(如 Azure 远程渲染)使用混合现实安全令牌服务(STS)进行身份验证。 此包支持交换混合现实帐户凭据,以获取可用于访问混合现实服务的 STS 的访问令牌。

关键链接:

开始

当前支持的环境

先决条件

安装 @azure/mixed-reality-authentication

使用 npm安装适用于 JavaScript 的 Azure 混合现实身份验证客户端库:

npm install @azure/mixed-reality-authentication

创建和验证 MixedRealityStsClient

若要创建客户端对象来请求混合现实服务的访问令牌,需要混合现实服务资源和 credentialaccount identifieraccount domain

混合现实服务支持几种不同的身份验证形式:

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

使用帐户密钥身份验证

使用 Azure 门户 浏览到混合现实服务资源并检索 account key

拥有帐户密钥后,可以使用 AzureKeyCredential 类对客户端进行身份验证,如下所示:

const { AzureKeyCredential } = require("@azure/core-auth");

const { MixedRealityStsClient } = require("@azure/mixed-reality-authentication");

const accountId = "<ACCOUNTD ID>";
const accountDomain = "<ACCOUNT_DOMAIN>";
const accountKey = "<ACCOUNT_KEY>";

const client = new MixedRealityStsClient(
  accountId,
  accountDomain,
  new AzureKeyCredential(accountKey)
);

注意:不建议为生产应用程序 帐户密钥 身份验证。

使用 Azure Active Directory 凭据

大多数示例中都使用了帐户密钥身份验证,但也可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。 这是生产应用程序的建议方法。 若要使用如下所示的 DefaultAzureCredential 提供程序,或 Azure SDK 提供的其他凭据提供程序,请安装 @azure/identity 包:

npm install @azure/identity

还需要[注册新的 AAD 应用程序][register_aad_app],并通过为混合现实服务分配适当的角色授予对混合现实资源的访问权限。

将 AAD 应用程序的客户端 ID、租户 ID 和客户端机密的值设置为环境变量:AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_CLIENT_SECRET

const { MixedRealityStsClient } = require("@azure/mixed-reality-authentication");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new MixedRealityStsClient(accountId, accountDomain, new DefaultAzureCredential());

关键概念

MixedRealityStsClient

MixedRealityStsClient 是用于访问混合现实 STS 以获取访问令牌的客户端库。

从混合现实 STS 获取的令牌的生存期为 24 小时

返回值

成功调用 getToken 的返回值是一个 GetTokenResponse,它是来自 @azure/core-httpAccessToken

例子

检索访问令牌

const { AzureKeyCredential } = require("@azure/core-auth");

const { MixedRealityStsClient } = require("@azure/mixed-reality-authentication");

const accountId = "<ACCOUNTD ID>";
const accountDomain = "<ACCOUNT_DOMAIN>";
const accountKey = "<ACCOUNT_KEY>";

const client = new MixedRealityStsClient(
  accountId,
  accountDomain,
  new AzureKeyCredential(accountKey)
);

const token = await client.getToken();

有关更复杂的身份验证方案,请参阅 Azure 标识

在混合现实客户端库中使用访问令牌

某些混合现实客户端库可能会接受访问令牌来代替凭据。 例如:

// GetMixedRealityAccessTokenFromWebService is a hypothetical method that retrieves
// a Mixed Reality access token from a web service. The web service would use the
// MixedRealityStsClient and credentials to obtain an access token to be returned
// to the client.
const accessToken = await GetMixedRealityAccessTokenFromWebService();

const account = new SpatialAnchorsAccount(accountId, accountDomain);
const client = new SpatialAnchorsClient(account, accessToken);

注意:上述 SpatialAnchorsClient 用法是假设的,可能不会反映实际库。 请参阅用于确定是否支持客户端库的文档及其支持方式。

故障 排除

伐木

启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL 环境变量设置为 info。 或者,可以通过在 @azure/logger中调用 setLogLevel 在运行时启用日志记录:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

有关如何启用日志的更详细说明,可以查看 @azure/记录器包文档

后续步骤

有关如何使用此库的详细示例,请查看 示例 目录。

贡献

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

提交拉取请求时,CLA 机器人会自动确定是否需要提供 CLA 并适当修饰 PR(例如标签、注释)。 只需按照机器人提供的说明进行操作。 只需使用 CLA 在所有存储库中执行此作一次。

该项目已采用 Microsoft开源行为准则。 有关详细信息,请参阅 行为准则常见问题解答 或与 opencode@microsoft.com 联系,了解任何其他问题或意见。

若要参与此库,请阅读 贡献指南 了解有关如何生成和测试代码的详细信息。

印象