我正在为需要/common/oauth2/authorize
的多租户应用使用v1 Azure AD身份验证网址(admin_consent
)。
我试图添加新范围Directory.AccessAsUser.All
。这是第一个授权'允许我在我的所有其他范围都是“应用程序”时请求#39等级权限。
当我添加新的委派范围并提示管理员重新同意时,其他范围从返回的AccessToken
和响应scope
参数中消失。 Directory.AccessAsUser.All
access_token
字段中仅显示scp
。
这种行为是否有任何原因发生?我很肯定我们正在推广admin_consent
并且管理员是同意的。
答案 0 :(得分:5)
scp
中指定的范围取决于您用于获取令牌的OAUTH流。对于Delegated 和 Application范围,您不能拥有一个access_token
。
使用客户端凭据流(client_credentials
)时会应用应用程序范围。
使用授权码或隐式流(authorization_code
或implicit
)时会应用委派范围。
更新:我已经撰写了一篇关于此主题的更深入的帖子,可能会帮助面临类似问题的人:Application vs Delegated Scopes。