当使用Azure AD客户端凭据流时,如果未向客户端应用程序授予访问所请求资源的权限,是否应该在oauth2终结点(Azure AD)生成持有者令牌?我确信以前在这种情况下会出现错误,但是我现在看到了不同的行为(即使客户端应用程序没有权限访问资源应用程序,仍然会提供有效的承载令牌)。
我们一直允许在使用客户端凭据流时,在两个服务之间发行令牌。这种情况基本上是守护程序服务之间的S2S。需要注意的重要事项是,AAD的内置授权模型利用了SCP和ROLE声明,这些声明出现在令牌中,并可以帮助您的API了解用户授予的权限。然而,在这种情况下,我们还想允许您使用自己的授权层。例如,您可以简单地将客户端应用程序的App ID加入白名单,以允许其向您的API发起S2S调用,而不需要在令牌中包含任何ROLE声明。此处的令牌发行行为使得该场景成为可能。