我有一个天蓝色的AD租户和几个App注册。使用邮递员我使用一个应用程序注册客户端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和客户端密钥为哪些应用生成令牌?
我的所有应用都将Implicit flow设置为true,如果这与它有关。我对确切的内容完全感到困惑,但this answer表明它与我的问题有关。
答案 0 :(得分:1)
您可以执行的一个选项是向API添加应用程序权限。
我发表了一篇关于添加角色和范围的文章:https://joonasw.net/view/defining-permissions-and-roles-in-aad。
然后,您可以将应用程序权限分配给您要允许访问的应用程序。它需要管理员授予他们。
现在其他应用可能仍然可以获取访问令牌,但它不会包含必要的角色,然后会失败授权。