Azure active directory 如何在不需要管理员同意的情况下在两个应用之间授予Azure AD应用程序权限?

Azure active directory 如何在不需要管理员同意的情况下在两个应用之间授予Azure AD应用程序权限?,azure-active-directory,Azure Active Directory,我有两个单一租户Azure广告应用程序A和B。应用程序A代表服务,应用程序B代表客户端。我试图允许B使用使用AAD OAuth2客户端凭据流获得的AAD JWT令牌访问A。我在清单中为A定义了一个appRole,并通过App registrations->API Permissions->Add A permission->My API->A->Application Permissions将其添加为B的API权限 这需要管理员同意,即使我是这两个应用程序的所有者 由于我拥有公开应用程序角色的应

我有两个单一租户Azure广告应用程序A和B。应用程序A代表服务,应用程序B代表客户端。我试图允许B使用使用AAD OAuth2客户端凭据流获得的AAD JWT令牌访问A。我在清单中为A定义了一个
appRole
,并通过
App registrations->API Permissions->Add A permission->My API->A->Application Permissions将其添加为B的API权限

这需要管理员同意,即使我是这两个应用程序的所有者

由于我拥有公开应用程序角色的应用程序,是否有方法在不需要管理员干预的情况下授予此权限?在授予访问可能包含敏感用户数据的目录的权限时,我理解管理员同意要求,但在这里,这纯粹是我所拥有的两个应用之间的权限

应用程序A清单中的应用程序角色如下所示:

{
    "allowedMemberTypes": [
        "User",
        "Application"
    ],
    "description": "...",
    "displayName": "MyPermission",
    "id": "00000000-aaaa-bbbb-cccc-ddddddddddddd",
    "isEnabled": true,
    "lang": null,
    "origin": "Application",
    "value": "MyPermission"
}

不幸的是,这是不可能的!向客户端应用程序授予应用程序权限时,必须授予管理员同意。否则,当您使用访问令牌访问api应用程序时,它将提示您“权限不足”

您可以看到,当您向客户端应用程序授予自定义应用程序权限时,
所需的管理员同意
显示为
,这表明AAD强制执行此操作,您无法绕过此步骤

此外,还可以通过解析令牌来查看。只有管理员同意应用程序权限,令牌中才会有
角色
声明,否则不会显示声明


谢谢!从安全的角度来看,我是两个应用程序之间的权限,而不是目录资源之间的权限,你有什么想法吗?@mmajis我查阅了一些文档,微软对此没有做太多解释。您可以在论坛上提出您的建议: