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
<PackageReference Include="Azure.MixedReality.Authentication" Version="1.2.0" />
paket add Azure.MixedReality.Authentication --version 1.2.0
#r "nuget: Azure.MixedReality.Authentication, 1.2.0"
// 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安装Azure混合现实认证客户端库 (.NET) NuGet
dotnet add package Azure.MixedReality.Authentication
添加包引用
<PackageReference Include="Azure.MixedReality.Authentication" Version="1.0.0" />
必备条件
- 您必须拥有一个Azure订阅。
- 您必须拥有一个Azure混合现实服务账号。
- 熟悉来自Azure.Identity的认证和凭证概念。
身份验证客户端
混合现实服务支持几种不同的认证形式
- 账号密钥认证
- 账号密钥让您可以快速开始使用混合现实服务。但在部署应用程序到生产环境中之前,我们建议您更新应用程序以使用Azure AD认证。
- Azure Active Directory (AD)令牌认证
- 如果您正在构建企业应用程序,并且您的公司使用Azure AD作为其身份系统,您可以在应用程序中使用基于用户的Azure AD认证。您可以通过使用现有的Azure AD安全组来授权访问您的混合现实账号。您也可以直接授权组织内的用户。
- 否则,我们建议您从支持您的应用程序的Web服务中获取Azure AD令牌。我们推荐此方法用于生产应用程序,因为它可以避免将访问混合现实服务的凭证嵌入到客户端应用程序中。
有关详细说明和信息,请参阅此处。
身份验证示例
以下是一些常见认证场景的示例,但更多示例和信息可以在Azure.Identity中找到。
使用账户密钥身份验证进行身份验证
使用接受AzureKeyCredential
的MixedRealityStsClient
构造函数重载来配置与混合现实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: true
的DefaultAzureCredential
对象来使用默认交互式认证流
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 已计算。 |
-
.NETStandard 2.0
- Azure.Core (>= 1.25.0)
- System.IdentityModel.Tokens.Jwt (>= 6.5.0)
- System.Text.Encodings.Web (>= 4.7.2)
- System.Text.Json (>= 4.7.2)
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 |