【问题标题】:Authorization failing with 401,while trying to access azure rest apis授权失败,出现 401,尝试访问 azure rest apis
【发布时间】:2020-11-06 21:58:06
【问题描述】:

我正在尝试通过生成不记名令牌来调用内置的 Azure API。不记名令牌是使用“https://login.microsoftonline.com/{tenantID}/oauth2/token”生成的;并使用此令牌,我正在尝试从 IoT 中心访问获取设备 API。我为 REST API 调用提供的标头是内容类型和授权(带有不记名令牌)。但它返回如下错误消息:

Message;:;ErrorCode:IotHubUnauthorized;3cc43d2f-def7-4a3e-a2ue-eb367467ab90 is not valid;

谁能帮我解决这个问题?

【问题讨论】:

  • 嗨,Rakesh,我的回答对您有帮助吗?如果没有,请告诉我是否需要进一步澄清。

标签: azure azure-iot-hub


【解决方案1】:

要连接到 IoT 中心的服务 API,您需要共享访问令牌,而不是 oauth2 令牌。您可以通过az cli生成您需要在标头中设置的令牌

az iot hub generate-sas-token -n {iothub_name}

如果您喜欢更直观的方法,可以使用Device Explorer。您只需使用 service connect 或 iothubowner 权限输入您的 IoT Hub 连接字符串并生成令牌。

然后您可以使用 IoT 中心的服务端点,这是一个 curl 请求示例:

curl --request GET \
https://<hub-name>.azure-devices.net/devices?api-version=2018-06-30 \
--header "Authorization: SharedAccessSignature sr=<hub-name>.azure-devices.net&sig=KSobATNRdkFtd999999990v7NYU4hitkTA3ts%3D&se=1626508840&skn=iothubowner"

【讨论】:

  • @Rakesh S 请接受有用的回复作为“答案”,这也会对其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-09-15
  • 2013-05-17
  • 1970-01-01
  • 2016-12-14
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多