Abd*_*utt 12 authentication api azure
我正在使用 Azure 应用服务 api 查看服务器详细信息,例如工作进程和区域等,以进行管理。从AuthenticationContext.AcquireTokenAsync方法生成令牌后,我请求以下 URL 以获取服务器详细信息https://management.azure.com/subscriptions/<sub ID>/resourceGroups/<resource group name>/providers/Microsoft.Web/serverfarms/ ?api-version=2018-02-01
在响应中,我收到了AuthorizationFailed错误代码,详细信息如下:
客户端无权在范围“/subscriptions/xxxxxxxx-xxxxxxxx-xxxx/resourceGroups/xxxxxxxxxxx/providers/Microsoft.Web/serverfarms/xxxx”上执行操作“Microsoft.Web/serverfarms/read”或范围无效。如果最近授予访问权限,请刷新您的凭据。
但是,当我使用https://docs.microsoft.com/en-us/rest/api/appservice/appserviceenvironments/get门户尝试相同的验证时,我可以在其中尝试 API 进行测试,请求返回了预期的结果。
那么,还有其他方法可以进行身份验证还是我必须定义一些权限才能实现该功能?
您使用的服务主体在该租户中没有权限。
租户有订阅,服务主体属于租户。Azure 资源管理器还为给定主体公开基于角色的授权,这将授予它对 Azure 资源的权限。服务主体似乎无权读取该订阅。
转到门户网站,找到您subscription,点击Access Control (IAM),然后点击Add role assignment与correspond service principal您可以使用它获得令牌。
成功授予权限后,刷新并重试。
我运行时也遇到同样的错误
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Run Code Online (Sandbox Code Playgroud)
不久之后我就这样做了az login。问题是我没有正确设置我的订阅所以我要做的就是运行,
az account set --subscription your-subscription-id
Run Code Online (Sandbox Code Playgroud)
之后az aks get-credentials工作正常,错误消失,您将得到类似的输出,
Merged "myAKSCluster" as current context in C:\Users\UserName\.kube\config
| 归档时间: |
|
| 查看次数: |
16676 次 |
| 最近记录: |