Azure active directory 如何在不需要管理员同意的情况下在两个应用之间授予Azure AD应用程序权限?
我有两个单一租户Azure广告应用程序A和B。应用程序A代表服务,应用程序B代表客户端。我试图允许B使用使用AAD OAuth2客户端凭据流获得的AAD JWT令牌访问A。我在清单中为A定义了一个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权限 这需要管理员同意,即使我是这两个应用程序的所有者 由于我拥有公开应用程序角色的应
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我查阅了一些文档,微软对此没有做太多解释。您可以在论坛上提出您的建议: