Azure AD 和图形

Azure AD and Graph

我有一个使用 Azure AD 的 ASP.NET MVC5 Web 应用程序,使用 Open ID 获取令牌,并尝试使用该令牌访问图形。当用户登录时,他们会收到以下消息:

在 Azure 中,我无法授予应用程序权限,没有办法做到这一点

该应用已在 apps.dev.microsoft.com 注册。

我只是想读取用户的组成员身份。如何将所有权限分配给 Azure Ad 中的每个用户?登录后我的账号就可以用了,其他人可以登录但是无法得到第一提示。其他人在尝试访问包含此代码的页面时登录并被重定向到使用另一个帐户登录:

   var baseServiceUri = new Uri(AuthConstants.ResourceUrl);
        var activeDirectoryClient = new ActiveDirectoryClient(new Uri(baseServiceUri, AuthConstants.TenantId), async () => await AcquireTokenAsync());
        return activeDirectoryClient;

使用 apps.dev.microsoft.com 注册的应用程序称为 V2 应用程序。您可以了解有关 V2 应用程序的更多信息 here.

与 V1 应用程序相比,您不能仅添加 prompt=admin_consent 来触发管理员同意流程。相反,您需要点击一个特殊的管理员同意端点。

看这里:Requesting consent for an entire tenant

这里:Using the admin consent endpoint

总之,您需要将您的正常登录请求发送到此端点 https://login.microsoftonline.com/{tenant}/adminconsent 并包含您通常会传递的普通查询字符串。当然,经历此流程的用户必须是正在努力登录的用户的租户管理员。