gpt4 book ai didi

C# Azure DeviceUpdateClient 403 禁止使用 ClientSecretCredential

转载 作者:行者123 更新时间:2023-12-03 06:10:51 26 4
gpt4 key购买 nike

我正在尝试使用 DeviceUpdateClient (Azure.IoT.DeviceUpdate) 查询 IoT 中心的设备更新。

MS SDK Doc

Hello World Example

我使用基本的 hello world 示例和 ClientSecretCredential 来获取用于身份验证的 token 。

我已在 Azure AD 中注册了一个客户端应用程序,然后授予该帐户贡献者对 IoT 中心设备更新和 IoT 中心本身的访问权限。

Azure 的 token 身份验证工作正常。

当我按照示例查询提供程序时,遇到 403 错误。代码和详细信息如下。

代码

Uri endpoint = new Uri("https://xxx-xxx-xxx-xx.api.adu.microsoft.com");

string instanceId = "xxx-xxx-Devicexxx-POC";

TokenCredential credentials = new ClientSecretCredential("xxx-xxx-xxx-xx-xxx", "xxx-xx-xx-xx-xx", "xx~xx.xx.xx-xx");

DeviceUpdateClient client = new DeviceUpdateClient(endpoint, instanceId, credentials);

Pageable<BinaryData> providers = client.GetProviders();

foreach (var provider in providers)
{
JsonDocument doc = JsonDocument.Parse(provider.ToMemory());
Console.WriteLine(doc.RootElement.GetString());
}

Console.Read();

错误

Service request failed.
Status: 403 (Forbidden)

Headers:
api-supported-versions: REDACTED
traceparent: xxx
Content-Length: 0
Date: Wed, 02 Aug 2023 10:28:58 GMT


This exception was originally thrown at this call stack:
Azure.Core.HttpPipelineExtensions.ProcessMessage(Azure.Core.Pipeline.HttpPipeline, Azure.Core.HttpMessage, Azure.RequestContext, System.Threading.CancellationToken)
Azure.IoT.DeviceUpdate.DeviceUpdateClient.GetProvidersImplementation.__CreateEnumerable|0(string, int?)
Azure.Core.PageableHelpers.EnumerableWithScope<T>.Enumerator.MoveNext()

我做错了什么?

最佳答案

对于遇到此问题的其他人

与应用注册关联的角色需要是设备更新管理员

关于C# Azure DeviceUpdateClient 403 禁止使用 ClientSecretCredential,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76818993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com