--auth-type login
在Azure CLI中是什么意思?根据文件,它是Indicates whether the operation should auto-derive a policy key or use the current Azure AD session
。
下面的命令是获取IoT Hub中设备列表的示例。但由于授权错误,它失败了。
$ az iot hub device-identity list -n {hub name} --auth-type login
{'Message': '{"errorCode":401003,"trackingId":"trackingIdhere","message":"Principal live.com#myemailaddress@example.com is not authorized for POST on /devices/query due to no assigned permissions","timestampUtc":"2021-05-31T13:16:16.2433062Z"}', 'ExceptionMessage': ''}
但是,在没有--auth-type login
(默认情况下是--auth-type key
(的情况下,它成功地完成了执行。
奇怪的是,--auth-type login
给出授权错误,因为我是以资源所有者的身份登录的。也许我误解了--auth-type login
的目的。
那么--auth-type login
到底是什么意思呢?
您是对的,当您使用--auth-type login
登录时,您使用的是已登录用户主体的令牌。请确保您对IoTHub拥有正确的权限。
这是我在Azure的Github:上的Az-Cli更新中发现的
针对IoT Hub的大多数命令都支持基于Azure AD的访问。用于执行命令的auth的类型可以用"auth"来控制--auth-type";接受值"0"的参数;键";或";登录";。";键";默认情况下设置。当"--auth-type";具有值"0";键";,就像以前一样,CLI在与iothub交互时会自动发现合适的策略。当"--auth-type";具有值"0";"登录";,来自Azure CLI登录主体的访问令牌将用于该操作。
所有者角色应该绰绰有余。如果你最近通过RBAC分配了这个角色,试着先做az logout
,然后再做az login
,看看它是否有帮助。我看到过许多类似的问题,这些问题都与角色传播中的微小延迟有关。然而,你的问题可能会有所不同。看看这篇文章,它对可能发生的事情提供了一些有趣的见解。