Azure AD客户端凭据流权限授权

3
当使用Azure AD客户端凭据流时,如果未向客户端应用程序授予访问所请求资源的权限,是否应该在oauth2终结点(Azure AD)生成持有者令牌?我确信以前在这种情况下会出现错误,但是我现在看到了不同的行为(即使客户端应用程序没有权限访问资源应用程序,仍然会提供有效的承载令牌)。
1个回答

4
我们一直允许在使用客户端凭据流时,在两个服务之间发行令牌。这种情况基本上是守护程序服务之间的S2S。
需要注意的重要事项是,AAD的内置授权模型利用了SCPROLE声明,这些声明出现在令牌中,并可以帮助您的API了解用户授予的权限。
然而,在这种情况下,我们还想允许您使用自己的授权层。例如,您可以简单地将客户端应用程序的App ID加入白名单,以允许其向您的API发起S2S调用,而不需要在令牌中包含任何ROLE声明。此处的令牌发行行为使得该场景成为可能。

谢谢回复。您说的“始终允许颁发令牌”,是指Azure AD在原始的/oauth2/token端点中对客户端凭据流的行为没有改变,对吗?我与一组架构师合作,他们记得Azure AD不会为应用程序没有访问权限的资源提供承载令牌。添加和要求角色将起作用,但由于我们的大多数IT员工不是目录的全局管理员或用户管理员(需要分配应用程序角色),这增加了一定的复杂性。 - Kevin
据我所记,我们总是发出仅适用于应用程序的令牌,与为应用程序选择的权限无关。只有当用户与登录体验进行交互时,我们才会抛出错误。 - Shawn Tabrizi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接