Azure.MixedReality.Authentication 1.2.0

前缀已预留
dotnet add package Azure.MixedReality.Authentication --version 1.2.0                
NuGet\Install-Package Azure.MixedReality.Authentication -Version 1.2.0                
此命令旨在用于 Visual Studio 的包管理器控制台中,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Azure.MixedReality.Authentication" Version="1.2.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以便引用该包。
paket add Azure.MixedReality.Authentication --version 1.2.0                
#r "nuget: Azure.MixedReality.Authentication, 1.2.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中以引用包。
// Install Azure.MixedReality.Authentication as a Cake Addin
#addin nuget:?package=Azure.MixedReality.Authentication&version=1.2.0

// Install Azure.MixedReality.Authentication as a Cake Tool
#tool nuget:?package=Azure.MixedReality.Authentication&version=1.2.0                

Azure 混合现实身份验证客户端库(适用于 .NET)

诸如 Azure 空间锚点、Azure 远程渲染等混合现实服务使用混合现实安全令牌服务 (STS) 进行身份验证。此包支持通过 STS 交换混合现实账户凭证以获取访问令牌,该令牌可用于访问混合现实服务。

源代码 | 包(NuGet)

Mixed Reality service authentication diagram

入门

安装此包

使用NuGet安装Azure混合现实认证客户端库 (.NET) NuGet

dotnet add package Azure.MixedReality.Authentication

添加包引用

<PackageReference Include="Azure.MixedReality.Authentication" Version="1.0.0" />

必备条件

身份验证客户端

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

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

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

身份验证示例

以下是一些常见认证场景的示例,但更多示例和信息可以在Azure.Identity中找到。

使用账户密钥身份验证进行身份验证

使用接受AzureKeyCredentialMixedRealityStsClient构造函数重载来配置与混合现实STS的账号密钥认证

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

注意:账号密钥认证不推荐用于生产应用程序。

使用 AAD 客户端密钥进行身份验证
TokenCredential aadCredential = new ClientSecretCredential(tenantId, clientId, clientSecret, new TokenCredentialOptions
{
    AuthorityHost = new Uri($"https://login.microsoftonline.com/{tenantId}")
});

MixedRealityStsClient client = new MixedRealityStsClient(accountId, accountDomain, aadCredential);
使用设备代码进行用户身份验证
Task deviceCodeCallback(DeviceCodeInfo deviceCodeInfo, CancellationToken cancellationToken)
{
    Debug.WriteLine(deviceCodeInfo.Message);
    Console.WriteLine(deviceCodeInfo.Message);
    return Task.FromResult(0);
}

TokenCredential deviceCodeCredential = new DeviceCodeCredential(deviceCodeCallback, tenantId, clientId, new TokenCredentialOptions
{
    AuthorityHost = new Uri($"https://login.microsoftonline.com/{tenantId}"),
});

MixedRealityStsClient client = new MixedRealityStsClient(accountId, accountDomain, deviceCodeCredential);

AccessToken token = await client.GetTokenAsync();

有关使用设备代码认证流的信息,请参阅此处

使用 DefaultAzureCredential 进行交互式身份验证

使用具有includeInteractiveCredentials: trueDefaultAzureCredential对象来使用默认交互式认证流

TokenCredential credential = new DefaultAzureCredential(includeInteractiveCredentials: true);

MixedRealityStsClient client = new MixedRealityStsClient(accountId, accountDomain, credential);

关键概念

MixedRealityStsClient

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

从混合现实STS获得的令牌的有效期为24小时

线程安全性

我们保证所有客户端实例方法是线程安全的,彼此独立(《指南》)。这确保了重用客户端实例的建议总是安全的,即使在多线程中也是如此。

其他概念

客户端选项 | 访问响应 | 长时间运行的操作 | 处理失败 | 诊断 | 模拟 | 客户端生命周期}

示例

检索访问令牌

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

AccessToken token = await client.GetTokenAsync();

有关更复杂的认证场景,请参阅上述认证示例。

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

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

// 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.
AccessToken accessToken = await GetMixedRealityAccessTokenFromWebService();

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

注意:上面的 SpatialAnchorsClient 使用是假设性的,可能不反映实际的库。请查阅你使用的客户端库的文档,以确定是否以及如何支持这种做法。

问题排除

后续步骤

支持使用混合现实身份验证进行身份验证的客户端库

支持混合现实身份验证的库即将到来。

贡献

本项目欢迎贡献和建议。大多数贡献需要你同意授予我们使用你贡献的权利的承诺书(CLA)。有关详细信息,请访问 https://cla.microsoft.com

当你提交pull请求时,CLA-bot会自动确定你是否需要提供一个CLA,并适当地装饰PR(例如,标签,注释)。只需遵循机器人提供的说明。你只需在整个使用我们的CLA的仓库中进行一次。

本项目已采用 Microsoft Open Source Code of Conduct。更多信息请参阅 Code of Conduct FAQ 或通过 [email protected] 发送任何额外的问题或评论。

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
有关更多关于 目标框架.NET Standard 的信息。

NuGet 包 (2)

显示依赖于 Azure Mixed Reality.Authentication 的前两个 NuGet 包

下载
Azure Mixed Reality.RemoteRendering

包描述

Azure Mixed Reality.ObjectAnchors.Conversion

包描述

GitHub 存储库 (1)

显示依赖于 Azure Mixed Reality.Authentication 的最流行的 GitHub 存储库

存储库 星级
Azure/azure-sdk-for-net
本仓库用于.NET Azure SDK的活跃开发。对于SDK的用户,我们建议访问我们的公开开发者文档https://learn.microsoft.com/dotnet/azure/或版本化的开发者文档https://azure.github.io/azure-sdk-for-net。
版本 下载 最后更新
1.2.0 77,660 9/9/2022
1.1.0 2,895 7/28/2022
1.0.1 46,233 5/25/2021
1.0.0 26,083 2/23/2021
1.0.0-beta.2 350 2/16/2021
1.0.0-beta.1 202 2/11/2021