没有客户凭证流的合并范围

我可以定义自定义范围并在Azure AD中使用client credential flow时返回它们吗?


在我的实验中,我配置了2个Azure AD应用程序,一个用于Web API,一个用于客户端(Web API客户端A)。我向Web API添加了一个范围,但是当通过client credential flow请求访问令牌时,该范围未返回。 ?

此外,它仅允许我在将.default用于范围(即api://web-api-client-credential-flow/.default)时请求访问令牌。

没有客户凭证流的合并范围

没有客户凭证流的合并范围

我遇到了以下UserVoice项:V2.0 Client Credentials Implement Scopes,因此在客户端凭据流下,Azure AD中似乎不支持作用域吗?

如果没有返回我的Web API客户端A应用程序权限,那有什么意义呢? Web API如何知道守护程序应用程序是否具有执行必要操作的范围?

似乎我必须使用application permissions

liufangxin 回答:没有客户凭证流的合并范围

是的,您必须使用应用程序权限。

范围(也称为委托权限)仅在用户参与登录过程时适用。 它们使您可以代表用户行事。

应用程序权限是赋予应用程序本身的一种角色。 它们仅在不涉及用户的情况下进行客户端凭据身份验证时适用。 您可以通过应用程序注册中的清单来定义应用程序上的应用程序权限。 然后可以将这些分配给客户端应用程序。 获取令牌时,必须使用.default,因为您不能动态更改应用程序权限。 您总是会得到已经被授予的东西。 在令牌中,权限将在角色声明中。

,

是的,您需要使用api://web-api-client-credential-flow/.default进行客户端凭据流。

应用程序权限将以角色而不是范围的形式返回。

enter image description here

,
  

在Azure AD中使用客户端凭据流时,我可以定义自定义范围并返回它们吗?

否,但是您可以定义application permission(s) via the manifest(绝对不如委托作用域的UI那样好),并通过客户端凭据流返回它们:

manifest config screenshot

然后,您可以提供客户端应用权限:

client permission grant screenshot

现在,当请求范围为api://web-api-client-credential-flow/.default的令牌时,将在roles声明中返回“作用域”。 Sample JWT

jwt screenshot of roles

本文链接:https://www.f2er.com/3163767.html

大家都在问