Oauth 2.0 Azure AD客户端凭据流权限授予

Oauth 2.0 Azure AD客户端凭据流权限授予,oauth-2.0,azure-active-directory,Oauth 2.0,Azure Active Directory,使用Azure AD客户端凭据流时,如果客户端应用程序未被授予访问请求资源的权限,则(Azure AD的)oauth2端点是否应生成承载令牌?我确信它在这种情况下会出错,但我现在看到了不同的行为(现在提供了有效的承载令牌,即使客户端应用程序没有对资源应用程序的权限)。在使用客户端凭据流时,我们始终允许令牌在两个服务之间出现问题。此场景基本上是守护进程服务之间的S2S 这里需要注意的重要一点是,AAD的内置授权模型利用了SCP和ROLE声明,它们出现在令牌中,可以帮助API了解用户授予它的权限 但

使用Azure AD客户端凭据流时,如果客户端应用程序未被授予访问请求资源的权限,则(Azure AD的)oauth2端点是否应生成承载令牌?我确信它在这种情况下会出错,但我现在看到了不同的行为(现在提供了有效的承载令牌,即使客户端应用程序没有对资源应用程序的权限)。

在使用客户端凭据流时,我们始终允许令牌在两个服务之间出现问题。此场景基本上是守护进程服务之间的S2S

这里需要注意的重要一点是,AAD的内置授权模型利用了
SCP
ROLE
声明,它们出现在令牌中,可以帮助API了解用户授予它的权限


但是,在这种情况下,我们还希望允许您使用自己的授权层。例如,您可以简单地将客户端应用程序的应用程序ID列为白名单,以允许它对您的API进行S2S调用,而不需要在令牌中出现任何
角色
声明。此处的令牌发行行为支持此方案。

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