Azure AAD应用程序可以访问Admin App而无需使用令牌授予权限

时间:2019-05-17 04:34:26

标签: azure azure-active-directory

我有两个Azure广告应用:

1)守护我的webapi的Admin / BackendApp

2)消费者APP,它将消耗我的webapi

当我尝试使用通过以下URL创建的令牌访问我的Web API时,传递所需的ClientID,ClientSecret,Resource和grant_type = client_credentials

https://login.microsoftonline.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/oauth2/token

我从url上方获取访问令牌,并将该令牌作为Authorization标头传递给我的webapi,我获得了成功的响应,而无需授予对admin / backendapp的任何访问权限。

2 个答案:

答案 0 :(得分:3)

需要检查令牌中的有效范围/角色!

在Azure AD中定义API的委托/应用权限,并在您的API中实施它们。最好对令牌至少包含一个有效许可进行全局检查。

任何租户中的应用程序都可以获取您API的令牌,只要他们知道您的租户ID和客户端ID。 如果不检查权限,则您的API容易受到攻击!

我有一篇文章介绍如何在ASP.NET Core中定义和实施范围:https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-1

答案 1 :(得分:1)

根据您的查询,将创建JWT令牌来调用API,该API已经具有足够的权限来调用资源。这看起来像是正常情况