无法获取自定义AD应用程序的访问令牌

时间:2018-12-07 16:33:57

标签: azure powershell azure-active-directory azure-cli

使用az account get-access-token --resource '<APP ID Uri>'尝试获取自定义AD应用程序的访问令牌时,出现以下错误:

AADSTS65001: The user or administrator has not consented to use the application with ID '04b07795-8ddb-461a-bbee-02f9e1bf7b46' named 'Microsoft Azure CLI'. Send an interactive authorization request for this user and resource.

04b07795-8ddb-461a-bbee-02f9e1bf7b46不是我的应用程序ID,并且我的应用程序已获得管理员同意。我尝试将这个ID放在交互式登录请求中,但行为没有改变。

当资源是已定义的MS端点(例如get-access-tokenhttps://database.windows.net

时,

https://vault.azure.net/可以正常工作

我的目标是使具有托管服务身份的Azure应用服务通过短暂的AD承载令牌彼此进行身份验证。每个服务都有与AD App对应的已配置受众。

2 个答案:

答案 0 :(得分:1)

如果我使用用户帐户登录cli,我可以用--resource '<APP ID Uri>'重现您的问题。

enter image description here

如果我使用服务主体登录,则可以正常工作。

enter image description here

您可以尝试使用服务主体登录azure cli,请参阅此link

答案 1 :(得分:0)

从本地CLI运行az account get-access-token --resource '<APP ID Uri>',您正尝试使用Azure CLI(其客户端ID恰好为'<APP ID Uri>')从04b07795-8ddb-461a-bbee-02f9e1bf7b46获取令牌。

要处理此问题,您可以转到: Azure Active Directory→应用程序注册→{您的应用程序}→公开API→添加客户端应用程序

  

ID 04b07795-8ddb-461a-bbee-02f9e1bf7b46

     

授权范围:选中'<APP ID Uri>'

要确保您拥有正确的ID,可以运行az account get-access-token将令牌粘贴到jwt.io并找到"appid"的值。