使用azure-cli

时间:2017-10-12 12:48:44

标签: azure azure-active-directory

我在Azure App Service上有一个需要Azure Active Directory身份验证的Web应用程序。我可以使用OAuth 2.0 flow for service-to-service communicationManaged Service Identity (MSI)连接从其他应用中接收受保护应用的访问令牌。

对于MSI,Microsoft提供了一个用于身份验证的库Microsoft.Azure.Services.AppAuthentication,该库还支持使用azure-cli工具中的凭据。

但是,该库目前处于预览状态,并且在我的系统上无效,但我设法找到了它source code on github

relevant part似乎打电话

$ az account get-access-token <resource>

但是,当我尝试使用我尝试访问的应用程序的资源名称时,我收到以下错误:

Get Token request returned http error: 400 and server response: {"error":"invalid_grant","error_description":"AADSTS65001: The user or administrator has not consented to use the application with ID <application id> named <application name>.

对于资源名称,我尝试了App ID URI和Client ID。

是否有人设法使用azure-cli在类似的情况下获取访问令牌?

1 个答案:

答案 0 :(得分:0)

该错误表示您需要同意该应用程序(CLI)访问该API(范围/资源)。

最快的方法是为URL建立一个同意的URL,让您同意CLI访问您的应用程序。 cli应用程序ID为04b07795-8ddb-461a-bbee-02f9e1bf7b46

类似这样的东西。

https://login.microsoftonline.com/<your-tenant-name-or-id>/oauth2/v2.0/authorize?response_type=code&client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&scope=<the scope of the target app/api>