首页 > 解决方案 > 授予对第三方应用程序的访问权限

问题描述

我是一名开发人员,正在开发将通过 Graph API 访问 O365 数据的应用程序。我已经在我的公司帐户下注册了一个应用程序。我有基于每个用户的身份验证。现在我正试图让它工作,以便租户管理员可以授予我的应用程序在组织范围内访问数据的权限。我也有这个工作 - 我使用 /adminconsent 端点将管理员带到他同意的页面。

我想知道的是文档中的一行“您可以依靠管理员在 Azure 门户授予您的应用程序所需的权限”。我试图弄清楚该程序是什么,以便我可以为管理员用户记录它。我想也许是去应用程序注册 - 我看到一个创建新注册的选项。但这有它自己的客户端 ID。难道我不必以某种方式给它我自己的应用程序的客户端 ID 吗?还是租户管理员将其应用程序的客户端 ID 提供给我的应用程序的想法?还是我完全在错误的区域?

顺便说一句,如果它是相关的,我没有使用任何身份验证库,只是从 Windows 桌面上运行的 C++ 程序直接进行 http 调用。

标签: azure-active-directorymicrosoft-graph-api

解决方案


据我了解,您的应用程序是一个多租户应用程序。只有您或您租户中的管理员可以向您的应用程序授予权限。其他租户的管理员可以同意使用您的应用程序,但他们无法控制权限。

更新:

您可以通过调用管理员同意端点来授予管理员同意。

https://login.microsoftonline.com/common/v2.0/adminconsent?
  client_id={your_tenant_client_id}
  &state=12345
  &redirect_uri=http://localhost/myapp/permissions
    &scope=
    https://graph.microsoft.com/.default

如果您想通过 Azure 门户授予管理员同意。应用程序必须已在您的租户中预配。例如,如果至少有一个用户已经同意该应用程序,则可以在您的租户中预配该应用程序。


推荐阅读