Azure AD Graph 与 MS Graph Application.ReadWrite.All

Azure AD Graph vs. MS Graph Application.ReadWrite.All

我有一个为我的 DevOps 管道设置的服务主体,我用它来创建服务 principals/apps 供我通过 Azure CLI 部署的服务使用,如下所示:

az ad sp create-for-rbac --name TestAccount1 --skip-assignment

如果我将以下权限分配给我的 DevOps 服务主体,它将完美运行:

然而,这显然会触发弃用警报,但如果我将权限更改为:

我得到以下信息:

Directory permission is needed for the current user to register the application. For how to configure, please refer 'https://docs.microsoft.com/azure/azure-resource-manager/resource-group-create-service-principal-portal'. Original error: Insufficient privileges to complete the operation.

当谈到 Azure AD Graph 与 Microsoft Graph 时,我是否遗漏了一个微妙之处,它们不只是将新旧 API 集成到同一个 Azure AD 租户中吗?

显然此 cmd az ad sp create-for-rbac 正在后台调用 Azure AD Graph API。

AAD Graph 和 Microsoft Graph 的端点不同。

AAD 图形端点:https://graph.windows.net/

Microsoft Graph 端点:https://graph.microsoft.com/

而当你在Azure portal上分配Application.ReadWrite.All权限时,你会发现这个权限其实是在它对应的端点下。

因此,如果您在 Microsoft Graph 下添加 Application.ReadWrite.All 权限,它将不允许您调用 Azure AD Graph。