保护服务OAuth身份验证

时间:2018-02-26 13:40:35

标签: oauth-2.0 azure-active-directory

我有一个天蓝色的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表明它与我的问题有关。

1 个答案:

答案 0 :(得分:1)

您可以执行的一个选项是向API添加应用程序权限。

我发表了一篇关于添加角色和范围的文章:https://joonasw.net/view/defining-permissions-and-roles-in-aad

然后,您可以将应用程序权限分配给您要允许访问的应用程序。它需要管理员授予他们。

现在其他应用可能仍然可以获取访问令牌,但它不会包含必要的角色,然后会失败授权。