我有一个Azure AD租户和几个应用程序注册。使用Postman我使用一个应用程序注册客户ID和秘密访问其他应用程序,例如:
POST /__TENANTID__/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: __POSTMAN__GENERATES__THIS__
grant_type=client_credentials&client_id=__POSTMAN_APPID__&resource=__REQUESTING_APPID__&client_secret=__SECRET__
我是否被授予令牌,无论__POSTMAN_APPID__
是否包括__REQUESTING_APPID__
。我如何限制使用客户ID和客户端秘密的服务可以生成一个令牌?
我所有的应用程序都具有隐式流量设置为true,如果这与此有关。我完全对那的作用完全感到困惑,但是这个答案并不表示与我的问题有关。
一个选项,您可以做的就是将应用程序权限添加到API中。
我发表了一篇有关添加角色和范围的文章:https://joonasw.net/view/defining-permissions-and-permissions-and-roles-in-aad。
然后,您可以将应用程序权限分配给要允许访问的应用程序。这将需要管理员才能授予他们。
现在其他应用程序可能仍然能够获得访问令牌,但它不会包含必要的角色,然后将失败授权。